Google Android's Teaching Platform Built on Scheme

[W]e hope to do the following:
* Make mobile application development accessible to anyone.
* Enhance introductory learning experiences in computing through the vehicle of Android’s open platform.
* Encourage a community of faculty and students to share material and ideas for teaching and exploring.

Part of our development environment is a visual programming language similar to Scratch. The visual language provides a drag-and-drop interface for assembling procedures and event handlers that manipulate high-level components of Android-based phones.

We parse the visual programming language into an S-expression intermediate language, which is a domain-specific language expressed as a set of Scheme macros, along with a Scheme runtime library.

(via Google[2] via Google[1] via PLT)

R6RS Chez Scheme 7.4D and TSPL4 Now Available

A R6RS conformant Chez Scheme 7.4D and TSPL4 now available.
Surprised?! I was. I hadn’t heard anything either. Anywhere. From anyone.
Yesterday though, I saw Aaron (dedicated Chez user) posting about R6RS ports here and Eduardo mentioned TSPL4’s availability here here.
Addendum: 08/04/09
The TSPL4 link is broken, but was not at the time of posting. Since the hardcopy hasn’t been released yet, I suspect that the link will be down until the hard copy is released.
Addendum: 08/08/09
The link is back up.
FWIW: I didn’t think it was worth bothering Kent by asking about why it was down in the first place.

A Brief Review of PragProg's Becoming Productive in Xcode Screencasts

I just finished watching the first 2 episodes of this screencast series. It has a pleasant tone and a lot of helpful information in it. You might imagine it as sitting down with another developer already familiar with Xcode and having him show you the very best features and highlights of the IDE. The author doesn’t play up Xcode too much, but by demoing all of the specific features he did, the viewer will find that ultimately they all make for a very powerful and pleasant to use IDE.
This is a great screencast to combine with reading the vendor documentation (here). The screencast gives you a jumpstart by highlighting the best features and getting you productive with the IDE while the vendor documentation gives you some important details that wouldn’t make sense to include in a screencast like this.
The author presented with a pleasant tone and a good meter, and the content was perfect for showing off Xcode. Apple should thank him as the documentation doesn’t come anywhere close to selling the great features that Xcode provides as the author does in these screencasts.

A Brief Review of PragProg's Coding in Objective-C 2.0 Screencasts

I just finished watching the first 3 episodes of this screencast series. The videos have sort of an odd tone in that the content seems to be tailored to beginning programmers, but at times details are added that would only make sense to an experienced programmer. For example, “the debugger is cool” versus “sending the autorelease message causes the runtime to register the receiver with the most recent pool on the stack” (caveat, he did follow that by commenting that you don’t need to know what is the stack, the most recent pool on the stack, or how the runtime finds it, but nonetheless). The result is that for beginners it is distracting, and for experienced programmers it is disappointing because you never get the depth that you want.
Additionally, the author has the habit of making statements explaining the current operation that he is demonstrating, and then ending the explanation with “or whatever”. For example, “the program counter steps over the instructions of the generated assembly code… or whatever”. The result of such an approach leaves the viewer wondering whether or not he should believe what the author just explained to him.
I feel like the author did something of a “rush job” to get these screencasts out. The downside is that the time you spent watching them could have been better spent doing something else, like reading Programming in Objective-C 2.0 for example.
My gut feeling is that the author is very knowledgable on the topic, and that the screencasts don’t represent his expertise. I am interested to see how the screencasts compare to his soon to be released book.

Why MIT switched from Scheme to Python

Costanza asked Sussman why MIT had switched away from Scheme for their introductory programming course, 6.001. This was a gem. He said that the reason that happened was because engineering in 1980 was not what it was in the mid-90s or in 2000. In 1980, good programmers spent a lot of time thinking, and then produced spare code that they thought should work. Code ran close to the metal, even Scheme — it was understandable all the way down. Like a resistor, where you could read the bands and know the power rating and the tolerance and the resistance and V=IR and that’s all there was to know. 6.001 had been conceived to teach engineers how to take small parts that they understood entirely and use simple techniques to compose them into larger things that do what you want.
But programming now isn’t so much like that, said Sussman. Nowadays you muck around with incomprehensible or nonexistent man pages for software you don’t know who wrote. You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts. This is a fundamentally different job, and it needed a different course.
So the good thing about the new 6.001 was that it was robot-centered — you had to program a little robot to move around. And robots are not like resistors, behaving according to ideal functions. Wheels slip, the environment changes, etc — you have to build in robustness to the system, in a different way than the one SICP discusses.
And why Python, then? Well, said Sussman, it probably just had a library already implemented for the robotics interface, that was all.

(via wingolog)

The contentment of content

A few weeks on a PBS television show hosted by Alan Alda the scientists being interviewed were talking about the “Contentment of Content”. They said the the research shows that most humans learn the bulk of their knowledge (in particular their approach for all sorts of problem solving) younger in life and never learn any new approaches later on because it would just show them how much they don’t know. In other words; it would require the act of learning and that takes work. They go on to explain that in fact, this approach not only happens at the macro level in life but also in the macro level for particular areas of expertise. For sake of discussion, I would focus on programming.
The idea is that once you learn how; you are very, very unlikely to learn “new ways of doing it”, and why would you? It makes you feel bad since it makes you look like you don’t know what you are doing. It is also very, very unpopular to admit that you don’t know everything (I wonder if it has always been this way?). This is unfortunate because most of us really never learned how to program well and in fact seems to be the complete antithesis of the behavior and approaches that are likely to have made you successful as a programmer in the first place.