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.

The 90 Minute Scheme to C compiler

90 minute video presentation from Marc Feeley, along with accompanying PowerPoint slides and source code, for a Scheme to C compiler. Good discussion of continuations and closures, as well as some dipping into the area of compiler construction.

I didn’t work through this but it looks like it might be a fun project to undertake (I’ll add it to the list).
(via LtU)

Advice on writing teachpacks

Here is some advice on writing teachpacks for PLT’s DrScheme.
About teachpacks:

Teaching languages are small subsets of a full programming language. While such restrictions simplify error diagnosis and the construction of tools, they also make it impossible (or at least difficult) to write some interesting programs. To circumvent this restriction, it is possible to import teachpacks into programs written in a teaching language.
In principle, a teachpack is just a library written in the full language, not the teaching subset. Like any other library, it may export values, functions, etc. In contrast to an ordinary library, however, a teachpack must enforce the contracts of the “lowest” teaching language into which it is imported and signal errors in a way with which students are familiar at that level.

XO Critical Configuration 1

Until a recent trip, I hadn’t used the XO very hard, or configured it at all. Before heading out, I read Bill’s article and found some real gems that, along with my own preferences, make using the XO a much more pleasurable experience. They follow: