Archive for March 3rd, 2010

How to Teach a Programming Class

Wednesday, March 3rd, 2010

So, I’ve been having some crazy ideas on how to teach a programming class. First, I’d used a spaced repetition selection for homework and potentially quiz questions.

Each homework would be cumulative, with the majority of the questions coming from the current chapter and the previous chapter, but with problems selected from even earlier chapters either weighed so that they increase in difficulty over time or based on what students had trouble with. To aid in this, certain classes of problems would be randomly generated from a homework question bank, which would be a database that ran on my desktop.

Tests would work similarly, potentially with questions randomly selected from the bank for each test, so that each student got an individualized problem. Problems would be identified using a hashcode and solutions to the problems would also be automatically generated.

Tests would include a live coding part done in a lab. Homework assignments would be turned in to subversion.

Engineering Challenge — Networked

Wednesday, March 3rd, 2010

So, the basic idea for a contest with Engineering Challenge is to have the student teams working at computers with software to create robot AIs. These computers act as clients to a central server which displays results and matches between the AIs. This is the core of the competition.

This networked setup can also be used during the training/warmup session. Each client has a number of simple directions and scenarios built in that it auto grades. As students complete the automatic training, a status message is sent to a different server that allows the facilitators to see which students are behind and need help.

These scenarios are built in a constructivist manner to guide the students through all the features necessary for the competition.

Before the students begin, they input their names, team name, school and possibly seating position so that this information shows up in the necessary displays.

This is more complicated, but it should make running the contest a snap.