Software Engineering -- CS511
Boston University -- Fall 2001

Team Programming Projects

Team Roles

Each team should assign people to the following responsibilities:

The project leader should send me an email with the name of each member, their ID#, and team role. (Please use a clear subject line, so I can find it later.)

Option #1 -- Connect Four Game

This project implements the Connect Four game, a more complex version of tic-tac-toe.

The game board is seven squares across and six squares tall. The winner is the first person to get four of their markers in a row (vertical, horizontal, or diagonal).  The wrinkle is that the board is standing upright and you can only add markers from the top. (So a marker only can be placed at the bottom of a column, or directly on top of an existing marker.)

You will write a program that plays this game against a human user. The two main parts of the program are the user interface and strategy algorithm. The program needs to play reasonably well (it cannot make random moves), but does not have to be provably optimal or play without errors.

Option #2 -- Appointment Book

This project implements a simple appointment book for one person.

The user should be able to:

Each appointment contains the following information:

Optional features:

Option #3 -- Contact List

This project implements a simple name and address book for one user.

The user should be able to:

Each contact contains the following information:

Optional features:

General Notes

Because it is quite a bit of work, the design and programming will be done by two people. Divide the program into two logical sections (such as front-end UI and back-end processing). Each programmer will do their part of the program, plus a driver or stubs to allow the code to run on its own. The two programmers will then integrate their code into a single program.

(The reason each part should run on its own is in case the other programmer does not do their work; you may turn in just your own code if necessary. This is a fall-back position though. I expect all teams to turn in a single integrated program.)

The entire team should review each deliverable before it is handed in, since you will share in its grade.

Project deliverables are due at the start of class on the due date. 

The functional spec, design spec, test plan, and user guide should be submitted in both printed and electronic forms. Hand in two printed copies on the due date. Also send me an electronic version -- this can be PDF, HTML, or Microsoft Word.

The executable program and source code should be submitted electronically via email -- to both the instructor and grader. Send a single ZIP file with everything in it, including a readme to explain what the pieces are.

The user interface for these programs can be either simple (character mode) or sophisticated (colored GUI). The quality of the code is more important than the fanciness of the interface however. 

Much of the work can occur in parallel. For example, the person writing the test plan can begin this as soon as the functional specification is solidified. The user guide can also be sketched out from the functional specification. The people writing the code can begin a prototype (or high-level shell) alongside the technical design document.

You may write the source code in any common language that I can read on Windows -- such as C, C++, Visual Basic, Java, HTML/Javascript. The executable program must run on Windows, a standard BU Unix system, or from a standard browser. (Send a small "hello world" test early in your development to verify this.)

We should not have to load additional software (such as a new windowing system or a special interpreter) in order to run your program.

If you use Visual Basic, export the code to a format I can read, since I do not have the VB system.

Use a programming language / environment that you already know. Do not try to teach yourself a new system at the same time you are doing the project.

All members of the team should assist each other, since you will be sharing the grades for all the deliverables. However, you should not do someone else's work for them.

Please let me know about significant problems on your team and I will help you find a solution. Significant problems include someone not coming to team meetings or not meeting their deadlines.

Use a grammar-checker and spell-checker for all written work. The easiest way to do this is with Microsoft Word.

Grading

Grading criteria for functional specification:

Grading criteria for design spec:

Grading criteria for test plan:

Grading criteria for installation guide, user guide, reference:

Grading criteria for program code:

 

Copyright 2001 by Charles H. Connell Jr.