I returned home from a fantastic two-week vacation and formalized my ideas for this Fall's Game Programming course. The course is CS315/515—a cross-listed course for Computer Science undergraduates and graduate students. Although I have taught game programming many times and in many forms, this is my first time teaching it as a "regular" course with full enrollment. I have previously either had low enough enrollments to treat the course as a seminar, or I have had special projects by which I was able to restrict enrollments or require an application process. This Fall, I will have a full room of about thirty students. This is too many to run a seminar or studio model, and so I needed to set up something more structured.
The undergraduates have CS222 as a prerequisite and so will come in knowing a bit about working in teams, code quality standards, human-computer interaction, version control, and requirements analysis. I decided to build on this by borrowing from the structure of CS222 itself: I will have the students doing individual work the first few weeks as we work through the basics, and then the majority of the semester will be spent on team projects built in multiple iterations.
For each of the first five weeks, I will use Monday as a day for me to share new ideas, Wednesday to workshop with the students, and Fridays will be their day to show off what they did. The sequence of topics is image manipulation, animation, collision detection and processing, user interfaces and interaction, and finally, a quick introduction to the entity system architecture for game development. With so many students, we won't have time for each person to give a formal presentation to the class, so instead it will run like a poster session. I decided to award some course credit for completing peer evaluations during this time in order to foster communication. I anticipate that this interaction will help the students find teams with similar interests for the major semester project.
The project itself will be to recreate a game for HTML5 using PlayN, which has recently been my platform of choice. We won't be spending any significant time on game design, and so I am pushing students toward classics from the golden age of arcade games. Of course, few of these students will have lived through the arcade era or the 8-bit era. To get around problems of over-ambitious designs, I am requiring the students to submit both a game concept and a game proposal. These will be in Tim Ryan's format, which I have used many times in the past for game concept documents but never for game proposals. I expect I may get proposals drawn from more modern casual genres, such as match-three, but I need to ensure that they don't think they can create Chrono Trigger in ten weeks.
I wanted to include peer evaluations during the project portion, but I was afraid of creating a mountain of paperwork. Blackboard's peer assessment support is insufficient for what I want, which is to take my peer evaluation rubric and automate it. In my search for any useful Blackboard tool support, a conversation thread informed me of TEAMMATES, which looks like it will fill the bill. My account was activated this morning and I tinkered with it for a few minutes. It looks like it will easily let me input my groups, enter my rubric, and then assign it for both self-evaluation and group-peer-evaluation. Students do not need to register on the site: they are sent emails with individualized URLs for their forms, based on the schedule specified for the assessment. I will try TEAMMATES in CS315/515 as well as CS222, and I'll be sure to write something about the experience once I get it rolling. As in CS222, I am planning to give each team member a grade for each iteration, and this grade will be the minimum of the increment evaluation and their peer evaluation—an approach that I hope will ensure all team members are contributing and that the work is of high quality.
This finishes my series of summer course revisions (Part 1, Part 2), and I feel ready for the semester. Having my planning done gives me some time to catch up on my painting and do a few more fun summer activities with the family—both of which are good things. Interested readers are welcome to take a look at the CS315/515 course description, and as always, I welcome your comments.