This page lists the weekly milestones for the semester project.
For details on how to organize your solutions to the weekly assignments,
see the Read Me tab. For the design and code review process, see
the —Reviews tab.
The side bar also provides links to requirements analyses and general
You will build a distributed implementation of a board game over the course
of this semester. The project will include planning, setting milestones,
specifying interfaces, and designing code. To make sure that you do not
veer off a reasonable path, we will post solutions to your assignments so
you can compare, contrast, and reflect on the differences between
your approach—and why it is unlikely to work—and that of the
you will code according to the instructor’s solutions and plans.
This chance to reflect on intermediate milestones is precisely how you will
learn to understand the big picture behind software projects.
Most project assignments will consist of several different tasks: planning,
specifying, coding. As in the real world, the project assignments will
become available only a short time before they are due. As you
rush to complete your projects, don’t forget the fundamental lesson
of the prerequisite courses:
Performing tasks systematically and according to a plan increases
the likelihood of producing properly working software that you can read
and improve four weeks later.