Peter, a friend from my time at IUB (and author of the most excellent Data Structures and Algorithms in Java, plug-plug), will be teaching his department’s CS0 next term. He was curious about the NXT, and more generally, about teaching with the LEGO Mindstorms. Here’s the email I sent back his way, with small edits.
The LEGO route is the path of mavericks and people who like to yell loud, incoherent things while leaping off high surfaces. There are not, I do not believe, a lot of materials pre-packaged to get you rolling. I haven’t looked lately, however. (I have a bunch of stuff, but it isn’t polished. It might even be rough around the edges.)
That said, there are a number of tools out there that you can reach for that have a lower startup cost, where “cost” isn’t measured in $, but instead in time/effort (by far, the more important metric).
- Python/Alice
Alice is a programming environment that I’ve not worked with much, but it provides an OO/actor-based approach to programming that lets students do experiments in a 3D world with all kinds of nifty objects. There’s a book available from Prentice Hall, which may make it appealing.
I forget if Alice uses it’s own bogolanguage, or if it uses Python.
1b. Having just seen the Alice site, you could probably build a course around scripting within a game environment. For example, you could probably equip them all with The Sims, and teach them about programming through scripting the Sims universe. This, probably, involves few transferable skills, and lots of students letting their Sims burn to death in bitterness over the assignment you gave them last week.
- NetLogo
Another “simulation” environment, this exposes students to modelling (again) from an agent-based perspective. They work in a dialect of LOGO, and write the code for one agent (be it a turtle, or a person, sheep, whatever), and can easily release thousands of them into the world. I do not believe there is a supporting text, per se, but you’ll find a good deal of supporting material available from the website.
- Greenfoot
Like NetLogo, but a bit more freeform, and in Java. I don’t know if it will be ready for primetime by next semester. From the creators of BlueJ, and as it turns out, my housemate. It should/will be cool, and personally, I look forward to teaching with it.
- Scheme
Just teach them Scheme. Oh, wait, sorry, I thought I was someone else for a moment…
Then again, the second hit in a Google search for “CS0″ is this link:
- Squeak/Media computing
You might look at the work Mark Guzdial is doing at Georgia Tech. I’m not sure if the media computing approach is too much or not, but I’ve heard him talk about it in the context of both CS0 and CS1.
http://www.gvu.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
- You can search in the ACM DL for “CS0″, and get back oodles of hits. Pick and choose based on what looks interesting. I recommend most papers by “Jadud, M.”, as his writing is typically brilliant, witty, and self-aggrandizing.
I know I started off by suggesting that the LEGO route isn’t easy, but I think that’s true. However, it depends on how you sell it to the students, and whether you’re prepared for things to go wrong from time-to-time. If you treat it as an experiment, have a clear direction/goal (I can help with brainstorming based on previous experience there), and your department is cool with the experiment, you probably can’t go wrong. Or, put another way, the worst you can do is engage in an educational experiment with your students, and *all* of you will learn something along the way.
Hm. That didn’t sound very supportive/positive either. I guess my point is that you have to be prepared to let go. I wrote a bunch of stuff under the rubrick of “TeamStorms” a few years ago. It captures a lot of how I approached/felt/thought about teaching with the LEGO Mindstorms in the classroom. You might check that out.
http://www.jadud.com/people/mcj/files/2000-SMC-teamstorms.pdf
http://www.jadud.com/people/mcj/files/1999-R626-teamstorms.pdf
The first is a “short version,” which I presented at SMC2000 (they must let anyone in). The second is the R626 paper it was distilled from. I don’t claim either is great, but they were written at the time I was actively teaching A290 at IUB, and reflect my thoughts at the time.
That’s some material to kick you off, anyway.