Teaching Programming
Sugar and its Activities is written in the Python programming language, and the XO laptop comes bundled with the Python source code. There are facilities for allowing the students to tinker with the source code, to modify the applications, and to write activities of their own.
One can also run the Terminal activity to do more general-purpose software development in Python.
For quite a long time now I've had the idea of going overseas to teach programming, as a way to bootstrap local software industries in countries that don't have any. I've had this idea for many years without actually acting on it, but One Laptop Per Child will make my idea much more practical, by supplying the computing infrastructure to the students.
I began to explore this in a more serious way after a recent discussion on Slashdot.
While Python is in many ways an ideal first programming language, some of its concepts may be difficult to understand through self-exploration. Also a great deal more than just knowledge of a programming language is required to work as a software engineer; experienced software engineers willing to volunteer as teachers at XO-equipped schools can close that gap.
I plan to work out a practical curriculum in part by teaching "testbed" classes where I live now in Silicon Valley, and by posting lesson plans, perhaps in this Wiki, or in any case in a way that they are readily accessible online.
But it will take a lot more than just lesson plans to get me, and those willing to join me as teachers, to the schools where we will teach. I'll be researching this in the coming weeks, and invite others who have any tips to post them here.
This is also my first post to this Wiki, and my first involvement in the One Laptop Per Child project. I look forward to working with you! Michael Crawford 23:40, 4 March 2008 (EST)
Electronic Textbooks
A Kuro5hin member named Morally Infexible suggested that I should write books on programming. In fact I do like to write on that topic, and have published many technical articles. For use by OLPC, I would write electronic textbooks as discussed in Book reader feature set.
All of the technical books I know about are aimed either at working software engineers or college students; they're not really suitable for children. Even Guido von Rossum's Python Tutorial and Mark Lutz' Learning Python assume the reader already knows some other programming language.
I have had the idea for a while of writing an article to be called "Python as a First Programming Language". Once I get Sugar running on my Mac, I could write it in a way that explains how to do it on the XO.