These are listed in reverse-chronological order.

Assignment 12 – due Wed Oct 24.

  1. prepare 4-week development plan to build a prototype of your game. Prototypes

Assignment 11 – Yegge Article - Due Wed. Oct 17. or Friday, Oct 19.

  1. Just read it. There's no need to write anything. But you still gotta read it.
  2. Here's a Local Copy.
  3. You don't need to read the hundreds of replies to this article at the bottom. Most of them are silly anyway.

Assignment 10 – Cusumano article – due Mon, Oct 15

  1. Read 4-page article, “Extreme Programming Compared with Microsoft-Style Iterative Development,” Michael A. Cusumano, Communications of the ACM, October 2007.
  2. Write 1 page of reflections comparing three of the 12 “key XP practices” identified by Cusumano to your experiences at your present or past company (or closest relevant experience).
  3. Turn in on paper.

Assignment 9 – Game Concept Video Presentation – due Wed, Oct 10

  1. This is a 3-5 minute video that explains your game concept.
  2. Deliver DVD ready to play or other normal media file (e.g., WMV, MP4, etc.).
  3. Camera will be set up in OS 306 -- your keycards will work to get in.

Assignment 8 – Design Patterns – due Fri, Oct 5.

  1. Read the introduction to design patterns on WikiPedia.
  2. You have selected/been assigned 2 patterns to investigate (see Lecture Blog for details). Students who were not in class: pick two items that have not been assigned.
    • Read about the patterns that you are working with.
    • Think about how they might apply to your game concept.
    • Prepare approx. 1 page writeup (link to it below) that summarizes your thinking.
    • Include code snippets if at all possible.
    • You can quote explanatory material, but provide citations to your sources.
  3. Link to your pattern write-ups at the Design Patterns page.

Assignment 7 – Game Concept Sketch – due Wed, Oct 3.

  1. decide if you are working on a group for your game project. If yes, determine your partner.
  2. converge on an idea for your game.
  3. produce an approx 2-page long description of your concept which should include at least 1 drawing. Link to it below:
    • "Shatter!" Game Concept Group: Will -- Desc: Snood-like clone with shattering panes of glass. Should be colorful, full of sound, and fun!
    • The Oregon Trail... in Space! Group: Jonah -- Description: An updated version of the Oregon Trail featuring the pioneers of tomorrow, space travelers.
    • Jigsaw Tor -- Jigsaw puzzles with difficulty levels, sounds and user images.
    • Ryan -- Music and picture based game.
    • Matt and Jim - Tanks -- Simplified battle tanks game.
    • Daniel Gabriel - here

Assignment 6 – due Friday, September 28.


  1. Create the code extensions you volunteered for / were assigned from class on Mon Sep 24. See the Lecture Blog for details.
  2. Turn in Assignment 6 code by creating links below:
    1. Will -- NetBalls (Networking/High Score List): I don't have access to a publicly-viewable PHP-enabled web server, so a public demo isn't possible right now.
    2. Justin -- javadoc comments: you can run javadoc from the cmd line
    3. Jim -- images comments quit browser to reload new applet (don't just refresh); picture too large for the screen took a long time to load; maybe have some way of waiting while resources load (& display status msg to user and yourself)
    4. Ryan -- refresh comments this is the simpler version of throttling; a more advanced version would keep track of global time, and then after drawing all stuff, would delay until the next scheduled refresh.
    5. Tor - Sound comments maybe there is an easier way
    6. Jeff - Applet
    7. Jeff - Graphics jar file
    8. Daniel -
      1. Source 1 -
      2. Source 2 -
      3. comments if you are using threading, don't update your data structure (Linkedlist or Vector) while some other part of your code is iterating through it
    9. Matt -- drawing shapes
    10. Jonah -- Source:

Assignment 5 – due Friday, September 21.


  1. Finish the iJava material up to and including Chapter 12, “Graphics and the Event Model,” and Chapter 13, “More Graphics: The Mouse, and Layout Styles.”
  2. Set up an environment on your machine so that you can build stand-alone Java applications and run them.
  3. Extend the last examples in Chapter 13 so that you have some kind of graphical object (e.g., an image icon or a drawn oval) moving around while you're not moving the mouse or otherwise generating UI events.
  4. To really complete the job, further extend this demo so that you have more than one visual object “doing its thing” (that is, moving around on its own) simultaneously.
  5. Put your code online so it can be run in class on Friday.
  6. Write up a 1-page description of what you did and how you did it. Bring this to class on Friday. Make sure there is a URL to your code on the printed page.
  7. Turn in Assignment 5 code by creating links below:
    1. Listing of fredm's assn 5 code directory
    2. Matt O
    3. Justin
    4. Jeff Albert
    5. Jeff Albert Version 2--Better physics, different size balls, and size effects weight so momentum is implemented. Completely rewrote collision detection, simpler, clearer, and faster. Improved multithreading.
    6. (Applet!!) Jeff Albert My code running as an applet. Version 3--in 3d, right click to place stationary ball.
    7. Bouncy.jnlp launcher, application shoudl run on any system, ranted it has java runtime environment of course. PLEASE TEST.
    8. Ryan Buckley
    9. Tor
    10. Daniel


  1. Read chapters 3, 4, and 5 of The Mythical Man-Month.
  2. Readings questions:
    1. Do you agree with Ch 4's assertion that architecture work and implementation work both have rich creative challenges (aka, “form is liberating”)?
    2. In Ch 5, Brooks declares the Second System is “the most dangerous system a man ever designs.” Have you had this experience yourself?


  1. For those going to the SDExpo: learn about a product to support software development, and add a link to it and a 2-paragraph description of what it does and why it's useful to this page: SDExpoProducts
  2. For those not going: same assignment, but use the web or a software professionals' magazine to do your research. Add your product to the SDExpoProducts page.

Code Links - William Brendel

Assignment 4 – due Monday, September 15.

Make sure your name is in the author field when you contribute to the wiki.

  1. Add at least 3 game links to the GameLinks page. Include a few words about what's there at each link.
  2. From your thoughts prepared for Assignment 3, contribute to the GameTaxonomy page.

Assignment 3 – Wednesday, September 12.

  1. There is no reading assignment.
  2. Play several games and describe taxonomy of gaming -- e.g., real time, strategy, types of interfaces, # players, etc. Bring in <= 1 page of notes describing your thoughts.

Assignment 2 - Monday, September 10

  1. Read the first two chapters (chapters 0 and 1 :-) of Dreaming in Code.
  2. Continue with iJava, completing Chapter 4 (Looping and Conditions) and Chapter 5 (Methods). Do the programming problems, too.

Assignment 1 - Friday, September 7

  1. From The Mythical Man-Month, read the two prefaces and chapters 1 and 2—“The Tar Pit” and “The Mythical Man-Month.” As you read, keep in mind that these essays were written about work done 40 years ago, when the IBM System 360 was being developed in the 1960s.

    From “tar pit”—do you agree with the description of the character / personal mood of programmers? Does this describe you?

    As to the “mythical man-month”—what is the largest software project you have worked on (in terms of the number of people involved)? How did you handle the coordination costs?

    Write 2 to 3 paragraphs on each of these questions, to be turned in at end of class on Friday.
  2. Log into your iJava account and complete the first four chapters. That is, chapters 0 through 3. Do the programming problems in chapters 1 through 3.
  3. Set up some kind of environment where you can compile and run Java programs. This could be a simple as logging into your Mercury account, compiling files with javac, and running them with java.