Difference between revisions of "languages for learning programming"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
(→‎Links: very quick comparison...)
(→‎Languages for Kids: Scratch animation language)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=={{hide|navbar}}==
 
=={{hide|navbar}}==
 
[[computing]]: [[software]]: [[programming]]: [[programming languages|languages]]: [[languages for learning programming|for learning]]
 
[[computing]]: [[software]]: [[programming]]: [[programming languages|languages]]: [[languages for learning programming|for learning]]
 +
==Related Pages==
 +
* Flawed as it is, [[BASIC]] remains the classic "language for teaching programming" (especially for kids); several free, full-featured versions are now available (some with source code).
 
==Overview==
 
==Overview==
 
There is a need for a programming language and environment that is suitable for teaching beginners – including children – to program.
 
There is a need for a programming language and environment that is suitable for teaching beginners – including children – to program.
Line 6: Line 8:
 
Some key features:
 
Some key features:
 
* (Ideally) Available pre-installed on all popular [[operating systems|OSs]]; next-best would be availability for free on the internet, in versions pre-compiled for all popular OSs
 
* (Ideally) Available pre-installed on all popular [[operating systems|OSs]]; next-best would be availability for free on the internet, in versions pre-compiled for all popular OSs
* BASIC-like in certain ways:
+
* [[BASIC]]-like in certain ways:
 
** must have an "interactive" mode, where you type a line and the computer immediately executes your instructions
 
** must have an "interactive" mode, where you type a line and the computer immediately executes your instructions
 
** must have simple graphics ability readily available (where "readily" can be defined as "you can plot a pixel in a single line of code, where lines which include external libraries count as additional lines of code")
 
** must have simple graphics ability readily available (where "readily" can be defined as "you can plot a pixel in a single line of code, where lines which include external libraries count as additional lines of code")
Line 15: Line 17:
 
See also Wikipedia's [http://en.wikipedia.org/wiki/Educational_programming_language Educational Programming Languages] page, which has a few more choices than mentioned below.
 
See also Wikipedia's [http://en.wikipedia.org/wiki/Educational_programming_language Educational Programming Languages] page, which has a few more choices than mentioned below.
  
==Links==
+
==Resources==
* '''2003-10-14''' [http://weblogs.java.net/blog/joshy/archive/2003/10/how_do_kids_pro.html Teaching Kids to Program] by [[Joshua Marin]]
+
* [http://www.quitebasic.com/ QuiteBasic]: BASIC on the web; created in response to [[David Brin]]'s "Why Johnny Can't Code" article
* '''2005-2-20''' [http://pluralsight.com/blogs/dbox/archive/2005/02/20/6009.aspx Teaching My Kids to Program] by [[Don Box]]
+
* [http://hacketyhack.net/ Hackety Hack]: tutorial aimed at 13 and up, teaches how to write your own [[blog]] software in a handful of minutes
** discussion: [http://lambda-the-ultimate.org/node/543 lambda the ultimate]
 
* '''2005-2-26''' [http://pluralsight.com/blogs/dbox/archive/2005/02/26/6181.aspx It's Down to Scheme or Logo] by [[Don Box]]
 
* '''2006-09-14''' [http://www.salon.com/tech/feature/2006/09/14/basic/ Why Johnny can't code] by [[David Brin]]
 
** discussion: |[http://developers.slashdot.org/article.pl?sid=06/09/14/0320238 slashdot]| |[http://davidbrin.blogspot.com/2006/09/see-your-favorite-author-on-salon-and.html#comments Contrary Brin]|: the latter includes a suggestion to use Python in a particular configuration; perhaps this configuration could be preconfigured and packaged?
 
* [http://www.ariel.com.au/a/teaching-programming.html A Very Quick Comparison of Popular Languages for Teaching Computer Programming]
 
* [http://www.kidsprogramminglanguage.com/ Kid's Programming Language]: free, but requires [[Microsoft Windows]]
 
* [http://www.computerbrains.com/ccs64/ Commodore 64 emulator] (eventually, create [[Commodore 64 emulators]] page and link with [[emulators]])
 
  
 
==Languages for Kids==
 
==Languages for Kids==
 
* [http://www.alice.org/ Alice]
 
* [http://www.alice.org/ Alice]
 +
* [http://kidbasic.sourceforge.net/ BASIC-256] (formerly KidBASIC), also inspired by "Why Johnny Can't Code"
 
* [http://el.media.mit.edu/Logo-foundation/ Logo]
 
* [http://el.media.mit.edu/Logo-foundation/ Logo]
 
** references: [http://www.tedfelix.com/cs4kids/ CS for Kids]
 
** references: [http://www.tedfelix.com/cs4kids/ CS for Kids]
Line 36: Line 32:
 
* [http://www.scheme.org/ Scheme]
 
* [http://www.scheme.org/ Scheme]
 
** references: [http://www.drscheme.org/ Dr. Scheme] | [http://www.htdp.org/ How to Design Programs] | [http://www.teach-scheme.org/ Teach Scheme Project]
 
** references: [http://www.drscheme.org/ Dr. Scheme] | [http://www.htdp.org/ How to Design Programs] | [http://www.teach-scheme.org/ Teach Scheme Project]
 +
* [http://scratch.mit.edu/ Scratch]: animation language. Free downloads for Windows and Mac as of 2008-10-04.
 
* [http://www.squeak.org/ Squeak Smalltalk]
 
* [http://www.squeak.org/ Squeak Smalltalk]
 
** references: [http://www.squeakland.org/ Squeakland] | [http://www.ofset.org/freeduc-cd FreeDuc LiveCD with Squeak]
 
** references: [http://www.squeakland.org/ Squeakland] | [http://www.ofset.org/freeduc-cd FreeDuc LiveCD with Squeak]
 +
 +
==Links==
 +
* '''2003-10-14''' [http://weblogs.java.net/blog/joshy/archive/2003/10/how_do_kids_pro.html Teaching Kids to Program] by [[Joshua Marin]]
 +
* '''2005-2-20''' [http://pluralsight.com/blogs/dbox/archive/2005/02/20/6009.aspx Teaching My Kids to Program] by [[Don Box]]
 +
** discussion: [http://lambda-the-ultimate.org/node/543 lambda the ultimate]
 +
* '''2005-2-26''' [http://pluralsight.com/blogs/dbox/archive/2005/02/26/6181.aspx It's Down to Scheme or Logo] by [[Don Box]]
 +
* '''2006-09-14''' [http://www.salon.com/tech/feature/2006/09/14/basic/ Why Johnny can't code] by [[David Brin]]
 +
** discussion: |[http://developers.slashdot.org/article.pl?sid=06/09/14/0320238 slashdot]| |[http://davidbrin.blogspot.com/2006/09/see-your-favorite-author-on-salon-and.html#comments Contrary Brin]|: the latter includes a suggestion to use Python in a particular configuration; perhaps this configuration could be preconfigured and packaged?
 +
* '''2002-08-15''' [http://www.bricklin.com/wontprogram.htm Why Johnny can't program] by [[Dan Bricklin]]
 +
* [http://www.shlomifish.org/philosophy/computers/education/introductory-language/ Thoughts about the Best Introductory Language] by Shlomi Fish: list of fallacies, with a final opinion. [[Creative Commons]] license.
 +
* [http://www.ariel.com.au/a/teaching-programming.html A Very Quick Comparison of Popular Languages for Teaching Computer Programming]
 +
* [http://www.kidsprogramminglanguage.com/ Kid's Programming Language]: free, but requires [[Microsoft Windows]]
 +
* [http://phrogram.com/ Phrogram]: free version; also a commercial version that supports add-in libraries, requires [[Microsoft Windows]], same team that created Kid's Programming Language
 +
* [http://www.computerbrains.com/ccs64/ Commodore 64 emulator] (eventually, create [[Commodore 64 emulators]] page and link with [[emulators]])

Latest revision as of 14:52, 4 October 2008

navbar

computing: software: programming: languages: for learning

Related Pages

  • Flawed as it is, BASIC remains the classic "language for teaching programming" (especially for kids); several free, full-featured versions are now available (some with source code).

Overview

There is a need for a programming language and environment that is suitable for teaching beginners – including children – to program.

Some key features:

  • (Ideally) Available pre-installed on all popular OSs; next-best would be availability for free on the internet, in versions pre-compiled for all popular OSs
  • BASIC-like in certain ways:
    • must have an "interactive" mode, where you type a line and the computer immediately executes your instructions
    • must have simple graphics ability readily available (where "readily" can be defined as "you can plot a pixel in a single line of code, where lines which include external libraries count as additional lines of code")
    • simple, non-picky syntax (syntax error messages should be informative and on-target, to reduce the learning curve)

This need has been brought up in different contexts and discussed a fair amount; for now, I'm just going to post some links. --Woozle 21:27, 14 September 2006 (EDT)

See also Wikipedia's Educational Programming Languages page, which has a few more choices than mentioned below.

Resources

  • QuiteBasic: BASIC on the web; created in response to David Brin's "Why Johnny Can't Code" article
  • Hackety Hack: tutorial aimed at 13 and up, teaches how to write your own blog software in a handful of minutes

Languages for Kids

Links