The CS222 description is straightforward. The more interesting part is the course design, which is not apparent from the course description but is reflected in it. The class meets twice a week for 75 minutes per meeting, and my plan is to have a pre-course reading, in-class activity, and assignment for every day. I have planned out the first two weeks and have sketches beyond. This should carry us to the ninth week of the semester, at which point we will change gears into a six week project, delivered in two three-week sprints. This will give the students the opportunity to perform a formal estimation and make commitments based on it, run a sprint, and then re-estimate and re-promise based on that experience. For most of the students, this will be their first opportunity to work in teams on a software project that includes any kind of formal milestones. We will be spending significant time discussing methodology and "soft skills" before the start of the project.
I have written extensively here about the planning for CS315. In the final version of the course description, I made a few editorial changes but only one change in content: I augmented the evaluation rubric to incorporate non-code contributions. Previously, the rubric had the headings "Quality of Code" and "Commitment". I changed the first to "Contributions", which has a nicer poetic parallel with "Commitment," and it captures the kinds of non-code activities that will be required of some students, such as checking copyrights on media and managing quality assurance testing.
The CS315 course description is complemented by the plans for the first 1.5 weeks. Clearly, CS222 is designed to produce students who can succeed in project-oriented experiences such as CS315, but since CS222 is new, I don't have the luxury of fully-prepped students. (Fortunately, many in the class are coming from my CS345 class last Spring, where they got experience in agile development.) The first 1.5 weeks will be the training at the beginning of a new job, getting the students the bare minimum skill set to start the first sprint. CS315 meets three times per week, and these are the plans for our first three meetings:
- Monday: Demonstrate Eclipse and Mercurial using the MercurialEclipse plugin
- Wednesday: Introduce Scrum, Entity Systems, and Test-Driven Development by completing a very small but legitimate slice of the project: pulling a task off the backlog, grabbing a partner for pair programming, writing tests, writing a solution, refactoring, committing, and updating the sprint backlog.
- Friday: Form teams for the first sprint and bid on the first sprint's tasks.