languages for learning programming: Difference between revisions

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Languages for Kids: Scratch animation language
 
(9 intermediate revisions by 3 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.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]
* [http://www.python.org/ Python]
* [http://www.python.org/ Python]
** references: [http://www.python.org/community/sigs/current/edu-sig/ Python for Educators] | [http://coweb.cc.gatech.edu/mediaComp-teach Python: A Multimedia Approach] | [http://knuth.luther.edu/~bmiller/python_bib.html Python Bibliography]
** references: [http://www.python.org/community/sigs/current/edu-sig/ Python for Educators] | [http://coweb.cc.gatech.edu/mediaComp-teach Python: A Multimedia Approach] | [http://knuth.luther.edu/~bmiller/python_bib.html Python Bibliography] | [http://www.pyrorobotics.org/?page=PyroLiveCD PyroLiveCD]
* [http://www.ruby-lang.org/en/ Ruby]
* [http://www.ruby-lang.org/en/ Ruby]
** references: [http://pine.fm/LearnToProgram/ Learn to Program in Ruby] | [http://www.visibleworkings.com/little-ruby/ A Little Ruby, A Lot of Objects]
** references: [http://pine.fm/LearnToProgram/ Learn to Program in Ruby] | [http://www.visibleworkings.com/little-ruby/ A Little Ruby, A Lot of Objects] | [http://tryruby.hobix.com/ Try Ruby in your Browser]
* [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

computing: software: programming: languages: for learning

  • 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