It’s finals period here at Carleton, and while I’ve spent most of my day so far wrestling with Moodle, tracking down missing grades, writing rubrics, cursing my large class sizes, and questioning my decision to not give a multiple-choice exam in the bigger of the two classes, I’m in a great mood overall. Why? Because my Intro students presented their final projects yesterday, and their projects rocked!
I’ve taught intro more times than I can count since I’ve been here, and every time I give the same project: write a game or a simulation. This project does a really nice job of requiring the students to synthesize and utilize everything they’ve learned, from specific programming concepts to design, implementation, and testing. It also allows them a great deal of creativity—they get to select the game or simulation, and thus they get to explore their own passions and interests. The one downside is that the students never got to see each others’ projects, except if they happened to be working in the lab at the same time.
A few years ago, a student emailed me after the class was over, asking if I could post the projects on Moodle. I realized then that I was missing out on a great learning opportunity here! Having students present their projects would give them valuable technical speaking experience, plus they would be able to see what their classmates had done (and possibly pick up some tips and tricks as a result).
So I started, last year, requiring students to present their projects during the scheduled finals period for our class.
The presentations run “science fair” style: everyone sets up their projects on one of the lab computers, and then everyone walks around the lab, playing the other games and running the other simulations. Students take turns walking around and answering questions about their own projects. Each student fills out an evaluation sheet for every other project: they have to mention one thing the project does very well and one thing that can be improved. The class also votes on the best projects in various categories.
This little experiment has been more successful than I ever imagined. The students get a real kick out of seeing each others’ projects. They have to be prepared to answer questions from me and from their peers—they have, in a short time, become experts of their own projects, and enjoy showing off what they know and what they’ve learned. It lends a celebratory atmosphere to finals, and ends a class on a high note.
But more importantly, there are conversations that occur among the students: give-and-take on programming styles and choices, implementation details, and aesthetics. As I went around the room yesterday, interviewing the students, they mentioned how they were going to incorporate suggestions from their peers—“I never thought of doing it that way until someone else suggested it” was a common phrase. The peer feedback has in the past, and no doubt will this time, lead to better submitted projects overall.
What I really enjoy, though, is the obvious pride the students exhibit in their projects. Students who barely said 2 words to me all term enthusiastically discussed their projects and the inspirations for their games and simulations. They eagerly walked me through their code, pointing out things they were especially proud of in their designs.
Requiring presentations is definitely more work for me, logistically and time-wise. But it’s definitely worth the expenditure in both areas. And having better projects and happier, more engaged students is worth the relatively small investment. I can’t imagine going back to the pre-presentation days!