Programming in Education: OLPC Case Studies

Ben blogged here about some stories about OLPC case studies. They are all worth checking out.
Listen to the following NPR articles (both found here):

And read this article One Laptop Per New York City Student a Success and report.
The company WavePlace, mentioned in the story, can be found here. Be sure to have a look around the site!

Analogies are a bridge

Analogies are often used to introduce folks to new ideas, introducing them not directly, but through comparison and inference. This seems to work well in all areas, including technical. The risk in using them in technical matters, though, is that person will never move past the analogy and into the realm of accurately understanding the subject matter.
For a long time, I very much disliked analogies. Perhaps this was due to bad personal experiences in my study path with them, or alternately, hearing other folks go on and on about how “such and such is just like such and such” when that is simply not the case. In the past year, though, three interesting things have happened.
The first is that I’ve chatted with someone, who is very level headed and takes the time to talk through his point of view, who is a proponent of analogies.
The second is that I’ve taken a much closer look at how people teach, and, they certainly don’t do it by throwing their students into the deep end.
The third is that I visited a foreign country where it was clear to me that it wasn’t just the language, but just about everything, that I didn’t understand. On the trip I had the experience of analogies about “how things work” in the country just keep popping into my head. It was the strangest thing, but it was interesting, too, because I finally realized the role of analogies:
Analogies are a helpful bridge, that you must cross. If you stay there, you will never get to where you really want to be.

TeachScheme, ReachJava

A silent revolution has changed the way computer science is understood and taught. The modern curriculum no longer focuses on the constructs of a language and the state changes in the machine. Instead, programming is taught as a problem-solving process that starts from a thorough understanding of classes of data and objects. The TeachScheme! Project has been at the vanguard of this revolution; the new series is its natural extension to cover a seamless transition to object-oriented design using Java.

Teaching is hard, and getting people to change how they teach is even harder. TeachScheme! (read Teach Scheme, NOT!)

wants to turn Computing and Programming into an indispensable part of the liberal arts curriculum.

There are truly world class folks involved in this effort whom I trust. Though I do not yet understand the depth of this project, I find it fascinating, and inspiring.

Why Computer Science Doesn’t Matter

Why Computer Science Doesn’t Matter is an essay about the lack of computer science in the educational curriculum today, and what can be done about it. They’ve come up with an interesting, and successful, approach.

[I want] to place computing where it belongs: in the hearts and minds of every single student.

Here here!

On Functional Programming in Education

Regarding my last post, you should definitely read all of the comments. It is pretty interesting to get everyone’s perspective on the topic (even if it is simply something to the effect of “Sounds like a great idea!”). Take, for example, Dan Friedman‘s comment:

Since I have been teaching functional programming in my undergraduate programming languages course since 1967, I am thrilled that at long last I might be teaching the sanctioned material.

Functional Programming in Education

On May 28-29, 2008 SIGPLan held a workshop on Programming Languages in the Curriculum at Harvard.

to discuss the role of Functional Programming in Education. The results of their efforts are here.
Please have a look, and, per Matthias’ comment, please consider posting your comments (under the “Programming Languages” section)!

Programming the Sony AIBO in Scheme

This post on the PLT discussion list shares some research into programming the Sony AIBO with Scheme, with this followup post providing additional details on a Scheme interpreter (STk) that provides a foreign function interface for the Sony AIBO C++ API.

Perhaps one day those STk libraries will be ported to PLT!

Writing the next great Java book

At JavaOne 08, the presentation “Writing the next great Java book” looked to be pretty exciting. It was originally billed as an introduction to a couple of authors, a QA session, and then primarily a review of great books in Computer Science history so I was pretty excited. In reality, it was very disappointing.
The authors blabbed about the same “Authoring 101” that you can pick this up on any “Intro to Authoring” website. In other words: it is really difficult, it will take four times as long as you think, and your family will hate you. The rest of the session was exhausted by the “Head First” authors Kathy Sierra and Bert Bates giving the same, canned presentation that they’ve been giving since at least 2006 (the first time I saw it).
Now don’t get me wrong; Sierra and Bate’s presentation is awesome. It is a lot of fun, and you learn a lot. The problem is that you learn a lot about selling; not about writing. Take the tenets for example:

  • Passion: Enable people’s passion
  • Experience: Provide a no-suck experience
  • Feeling: Don’t make people feel stupid; make them feel like they kick-ass

Very, very cool ideas. One problem, though; Computer Science is hard. You will feel stupid. Self-reflection is part of learning, and saying to your self “Darn, I don’t get this. It is only 5 sentences and I don’t get it. I feel stupid”. The next step is to press on and learn it. Books don’t make you feel stupid, you do; it is part of learning!
Now, if you truly find a book that sets out to make you feel stupid, be amazed, because such books are sure not to sell any copies. Contrast that with the classics of Computer Science that are works of art, and may involve you feeling stupid, but surely don’t set out with the intention to make you feel stupid, but to teach!
To wrap up the presentation, no time was given to classic Computer Science books.