Teaching Software refers to applications whose primary goal is to deliver educational content. External developers are expected to produce the bulk of this software.
It is important that software be neither boring nor uneducational. As demonstrated by the awful educational software that is so common, it is easy to accidentally create software that is demotivating or merely entertainment.
Software that does not fit into a single subject area, for instance an application that teaches children how to solve detective mysteries.
Teach2000 is a freeware program which integrates images, words, and sound in a flash card based teaching system. It has a friendly import/export structure allowing for content development/sharing on a large scale. It also has the option to export the content into an html test structure. (HO-070602)
In my experience, teaching Tibetan refugees and children in Nepal, Ethiopia, Pakistan and India it works very well to have flash based teaching modules which allow the child to progress at her/his own speed regardless of the availability of a teacher. These examples work indepdent of a specific operating system and do not require a fast processor. I have posted many examples in the forum section of computer.help123.net/forum (HO-070602)
Drupal is an open source content management system which can allow for easy deployment/maintenance of web content. This empowers the local people to develop their own websites and share with the world easily. It gives a method for direct interaction skipping all layers of beuarcracy and creating a means for project tracking/evaluation and financial transparency. With web based language translation tools such as the FoxLingo add-on, it provides a means of language independent communication. (HO-070602)
OpenOffice is an open source solution compatible with MS Office which would provide the children with a free way to obtain skills for direct employment and integration with the developed world. This would allow for revenue generation and self sufficiency and sustainability. (HO-070602)
Knoppix is a free open-source linux based operating system integrated with application software which is bootable from a CD. It provides many examples of software that could be useful-portable. It also provides a way to utilize older local PCs without needing technical expertise. It might also provide a bridge to those who wish to help but are trapped in the MS Windows world. (HO-070602)
 Programming languages and tools
Children in the third world live in an environment where finance and business is more important to their daily lives than in the developed world. They do not have a lot of money but the family needs to wisely manage and invest the money that they do have. This means that the family is often more like a business than a Western family. Software targeted towards helping teach children the basics of finance and investment will be very useful to both the children and their families.
Ideally we would see something that teaches double-entry bookkeeping in a way that children can understand. Also simulations of investment, interest, profit, etc. The focus must be on using language that a child can understand in order to communicate the fundamental concepts. Most current texts and software does not meet this need because it is filled with confusing jargon and targetted at adult learners.
On  there is a list of financial IQ games. A good place to get ideas if someone like to write a computer game.
The ideal software in this category will not use any language at all, and therefore will instantly be usable in all countries. The application should allow a specific font to be configured so that countries with non-arabic numeral glyphs can change the font to be instantly compatible. Numerals should be non-kerned in a monospace font.
 Data Collection and Analysis
The OLPC audio input port can be used with sensors that provide inputs in the range from 0 to 1 VDC. We need software that supports calibration of sensors, data collection, and graphing. In addition, software that guides children through a progressive series of experiments that they can do will be useful. You need to think like George Washington Carver in order to create software that is useful in the developing world.
In addition to any DJVU maps that country teams will assemble, it will be good to include some basic world and regional maps. Ideally this would be in the form of a GIS application that allows selection of various overlays, i.e. demographic, economic, etc.
Since the OLPC could be used with a USB GPS (or Bluetooth GPS using a USB-Bluetooth module), we need an application that supports map creation using SVG format and the SQLite database for data storage.
 Language Skills
Programs to promote language skills must be adaptable to multiple languages with varying scripts. They must also have easily adaptable graphical material. For instance, an image of an apple is meaningless to children in tropical countries and the word apple will never be used in conversation there. However, fruit as a topic is relevant everywhere. If an application shows pictures of fruits with the names under them it must allow local people to easily change the images and names. Ideally, this information will be held in an XML file with all the words and names of SVG and PNG image files.
 Foreign Languages
Learning a foreign language can be made easier with support of well-designed application software.
One application would display written text synchronised with audio. There are many websites that offer audio and accompanying text such as 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 are not only useful standalone but can be integrated into other applications. To that end an application that usessdictionary format and integrates with D-BUS will enable other applications to do lookups.
More generally, helping students learn foreign languages through the use of technology has been explored, and web searches on keywords like CALL (computer assisted language learning) will yield interesting results.
 Classroom software
Basically chat (text and/or video) software with a "whiteboard area" for drawing pictures/pasting text, etc. that can then be manipulated by relevant people. This is useful when one student/teacher wants to share with/tutor another student, or when the teacher wants to write on a blackboard and have students interact with the blackboard. It allows this process to occur remotely e.g. a teacher could tutor all the students in their homes after hours, or students could collaborate together remotely.