languages for learning programming

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

 * Alice
 * BASIC-256 (formerly KidBASIC), also inspired by "Why Johnny Can't Code"
 * Logo
 * references: CS for Kids
 * Python
 * references: Python for Educators | Python: A Multimedia Approach | Python Bibliography | PyroLiveCD
 * Ruby
 * references: Learn to Program in Ruby | A Little Ruby, A Lot of Objects | Try Ruby in your Browser
 * Scheme
 * references: Dr. Scheme | How to Design Programs | Teach Scheme Project
 * Scratch: animation language. Free downloads for Windows and Mac as of 2008-10-04.
 * Squeak Smalltalk
 * references: Squeakland | FreeDuc LiveCD with Squeak

Links

 * 2003-10-14 Teaching Kids to Program by Joshua Marin
 * 2005-2-20 Teaching My Kids to Program by Don Box
 * discussion: lambda the ultimate
 * 2005-2-26 It's Down to Scheme or Logo by Don Box
 * 2006-09-14 Why Johnny can't code by David Brin
 * discussion: |slashdot| |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 Why Johnny can't program by Dan Bricklin
 * Thoughts about the Best Introductory Language by Shlomi Fish: list of fallacies, with a final opinion. Creative Commons license.
 * A Very Quick Comparison of Popular Languages for Teaching Computer Programming
 * Kid's Programming Language: free, but requires Microsoft Windows
 * Phrogram: free version; also a commercial version that supports add-in libraries, requires Microsoft Windows, same team that created Kid's Programming Language
 * Commodore 64 emulator (eventually, create Commodore 64 emulators page and link with emulators)