Education Team/Curriculum/Learning Programming

This article is a stub. You can help Sugar Labs by expanding it.

Teaching programming in early grades is a well-established practice. We need to create teacher training materials for all of the appropriate languages, showing among other things how to transition from one to another. Then we need to integrate programming into every subject at every grade level.

OLPC XOs provide several programming languages:

  • Turtle Art
  • Python (Pippy activity)
  • Smalltalk (Etoys activity)
  • Perl (no Sugar activity)
  • FORTH (Open Firmware, alternate boot)

Other programming languages that are not provided as activities can be installed using yum in Terminal, and run from the command line. These include

  • UCBLogo
  • J (a version of APL)
  • clisp (Common LISP)
  • gforth (GNU FORTH)

and many more, generally of less interest to children. There are also mathematics languages including programming capability, which are addressed elsewhere in this Wiki.

Tony Forster and Mokurai have been writing and programming tutorials on Turtle Art, including linking TA to Python and generating and running Logo code. Mokurai intends to write tutorials on transitioning from TA to Python, Logo, Etoys/Smalltalk, J, and FORTH. He is of the opinion that you don't understand programming if you do not know how to use at least three or four of these different approaches, so that you can select the right tool for the job. Otherwise you are like the proverbial person whose only tool is a hammer, to whom everything looks like a nail. Or conversely, the person who only pounds nails all day long, to whom everything looks like a hammer. He also believes that you don't understand Computer Science if you don't understand how these languages are implemented.

You can certainly write code if you know only one language, but you can't understand what you are doing, like the legendary COBOL programmer who claimed 20 years experience on his resumé, but turned out to have two years experience repeated 10 times over.

"You don't understand anything until you learn it more than one way."—Marvin Minsky, quoted in Rebecca Herold, "Managing an Information Security and Privacy Awareness and Training Program" (2005), 101.

The standard English word for a person who speaks more than one language is "polyglot". The standard English word for a person who speaks only one language is "American".—Anonymous

Turtle Art

Python

Smalltalk

Perl

FORTH

Open Firmware and FORTH

Activities#UCBLogo

J

J under GPL announcement APL & J

LISP

OLPC:LISP