Well, the course has come and go. It was truly a great experience in my completely unbiased opinion ;-). Should anyone wonder what we covered in 4 days, we managed to work through topics in the first 4 chapters of the book ending with with the implementation of the metacircular evaluator.
Overall, I’d say the focus was probably a bit different than what you would find in a typical “intro” college course. Everyone attending had prior programming experience. As such, we didn’t spend so much time working through tricky programming puzzles (i.e., solving 8-queens puzzles and stuff). We spent much more time on the programming language semantics. For example, the difference between different evaluation models and getting to the core of some central ideas in functional programming. We also did a brief half-day diversion into lambda calculus and how that related to the material.
As part of the course, everyone implemented a Scheme interpreter in Python. That was an interesting approach as it required everyone to think much more about the computational model earlier than what is presented in the text. A number of people also tried making some customization features not part of standard Scheme. One unanticipated effect of writing Scheme in Python first is that when we got to the final project of writing the metacircular evaluator (Scheme in Scheme), everyone had already written one Scheme interpreter. Thus, a number of us decided to accept a new challenge and give it a go from scratch without looking at the solution given in SICP. On the whole I’d say that was an interesting exercise, punctuated by difficult debugging, and the realization that none of us were particularly graceful Lispers. Nevertheless, I certainly learned a lot by doing that. I think everyone else did too.
In any event, look for this course to run again in January. It will probably be even more insane!