Teaching software
This page was created because I suspect that there will be a long list of such software.
Introduction
Teaching Software refers to applications whose primary goal is to deliver educational content. In the western world this is often very poorly implemented in CBT (Computer Based Training) modules or tedious drill and practice software. These approaches will not work in the OLPC environment. Drill and practice would demotivate the kids and CBT does not have the depth of information needed. External Developers will produce the bulk of this software.
CBT and D&P are not educational software. They are for "being taught". See also the concept of "learned helplessness" researched by Martin Seligman and many others
Tools are educational software. Tools are for doing. This is equally true whether the tool is a drawing program, a programming language interpreter or compiler, a program for creating documents or Web pages, a Voice over Internet communications program, a program for composing music, a robot or fabrication tool control program, an accounting program, or a pure math program.
General
Software that does not fit into a single subject area, for instance an application that teaches children how to solve detective mysteries.
Word processing
Drawing
Image processing
Programming languages and tools
Music
Financial analysis
Mathematics
Geometer's Sketchpad
Macsyma and its derivatives, such as Maxima
APL
LISP
StatGraphics
Crystallography software
Finite group software
Linear programming software
Operations research software
Games (see Conway's On Numbers and Games and the rest of the literature and software that has followed)
Semi-automated construction of formal proofs
Science
The journals are online! You can operate a real telescope over the Web! Scientists are willing to talk to you personally and answer questions!
Geography
Google Earth
Astronomy Picture of the Day
Mailing lists
Penpals
Language Skills
This is the kid's native language.
Free collections of literature along the lines of Project Gutenberg in dozens of languages.
Blogging tools
Foreign Languages
These are languages like English, Japanese, etc.
Voice chat, VoIP
The combination of audio recordings with lyrics and opera librettos online.
Podcasts and downloadable audio with online text or glossaries (see for example Deutsche Welle's Nachrichten, on their Audio on Demand page, accessible from http://www.dw-world.de/dw/. They provide versions in 30 languages.
Online dictionaries
Free literature as above
Software
The English word for a person who speaks more than one language is 'polyglot'.
The English word for a person who speaks only one language is 'American'.
But it is not only in America that one can become a "software engineer" knowing only one computer language. This writer considers the minimum for genuine computer literacy to be five languages: LISP (or SCHEME), APL (or better still, J), FORTH, Smalltalk (well, Java), and your choice of sequential scalar language (C, Pascal, Python, anything like that, but not BASIC, FORTRAN, or COBOL). Mathematicians know well that the choice of notation or syntax strongly affects what you can think, even though linguists still hotly debate the notion (the Sapir-Whorf Hypothesis).
Daniel P. Friedman & Matthias Felleisen, The Little Lisper or the Little Schemer, followed by The Seasoned Schemer (This writer reviewed the first edition of The Little Lisper in Byte Magazine in 1978, calling it the best first textbook on programming in any language. It has gotten better.)
Gerald Weinberg, The Psychology of Computer Programming
Fred Brooks, The Mythical Man-Month
Agile programming, including Extreme Programming
Edsger Dijkstra, A Discipline of Programming