Last night was the third Cool Stuff in Computer Science session of the year. It was, by any metric I can think of, a miraculous success.
Last week, everyone sorted the LEGO bits into kits, so each group would have it’s own box of pieces to work with–this cuts down on traffic around a crowded room. This week, we had two goals:
- Build a robot capable of motivating itself (as well as possibly steering), and
- Program it in
occam.
This may not seem like much, but it actually filled a 21/2 hour session. We started ten minutes late (people dribbling in, etc.), and then I provided a quick mini-lecture on the basics of what we were doing that day (31 minutes). This mini-lecture briefly introduced concurrency (as a concept), and the five occam language constructs the students would encounter today (indention, SEQ/PAR, local variable declaration, procedure calls, and sending data down a channel). The material (an extensive outline, at best), can be found on the Moodle site we’ve set up for managing the educational content of CSCS this term. The PDF of the notes should be accessible as a “Guest” user entering the course.
After the introductory material, we started to play. The students were turned loose with their Mindstorms kits and the IDE Christian built for the occam programming language. Actually, he wrote a plug-in for jEdit, a free/open-source text editor written in Java. The plug-in adds a few buttons to the interface, allowing the students to compile their code and then send it to the Mindstorms; soon, we hope to have our simulator fully tied in as well.
For the last week or two, we’ve been working hard and fast on a lot of things, and getting all the IDE and back-end interaction to work from jEdit was fairly tedious. However, CLJ came through, and for a solid two hours students banged away on the IDE, writing occam code, compiling it, and downloading their programs to the LEGO. At no point did the IDE fall over, and nothing untoward came from the Mindstorms: it was a flawless run, I think.
It was a real joy to see students engaged and excited; it felt like I was “back home” teaching A290 at Indiana Univeristy. While they were engaged in a variety of tasks (building, programming), at no point was anyone complaining about the fact that they were learning. When they couldn’t figure out why things didn’t work, they asked questions, either of us (and I’m no occam expert!), or of each other–CSCS has a good number of second-year students, all of whom are studying occam as part of their second-year course. So, we had a dynamic, interactive session going, all throughout students were engaged and, dare I say, having fun?
In a word, last night was excellent. People left the session wondering what we’re going to do next week–and that is what I think it is all about.
Which makes me wonder… what are we going to do next week…
Now we are actually into the Lego, CSCS is great fun–we should have stuck at it more last year.
Hey – it was only you mentioning the L word that I realised: we are actually learning at the same time as enjoying ourselves! The problem is that Steve and Patrick are learning not to let me touch the lego any more…..
.
Yeah, that’s kinda a bummer. When I was at IU, students eventually learned not to let me touch what they had built—because I almost always broke their creations.
Ah well. It’s a curse.