Tuesday, August 17, 2010

Ready for Fall

Yesterday, the course descriptions for my two Fall courses received their final edits, and I am quite happy with the results. Here are links for the curious:
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.
I anticipate an exciting semester's teaching. I plan to keep using this blog for reflective practice with the goal of one quality post per week.

1 comment:

  1. Paul I found your effort/info via Adam's entity system blog post. I attempted to email you at your pvg/bsu email address, but it bounced. I am releasing a comprehensive Java middleware platform called TyphonRT for real time app & game dev that is based on component oriented programming including a well tested component based entity system. TyphonRT runs across the desktop and Android and can utilize LWJGL, JOGL, and Android OpenGL ES bindings, so you can leverage existing LWJGL/Slick efforts and perhaps expand into teaching Java/Android game dev which is a hot area where ROI with Java game dev is actually possible. I am interested in providing TyphonRT to any educational efforts for Java game dev at no cost, so drop me an email at the contact address here: www.typhonrt.org

    TyphonRT is launching imminently and is actually an open core project. The plan is to get up a comprehensive tutorial suite with copious demo code covering similar topics to what you are doing with your efforts over the upcoming Q4/Q1 time frame. Best of luck with the course and I'll keep tabs on your blog.. :)