In addition to the reliable transport protocol, students have also implemented one or more applications, including a file transfer, a multi-participant conferencing system and a talk program.
A key feature of the project is the requirement that students work in teams of two or three. For many students this is their first experience working in teams. Their first task is to formulate a plan for completing the project including appointment of a team leader, division of responsibility and agreement on programming conventions.
There are a number of project reviews. The first involves submission of a preliminary design document. The design must include protocol features such as flow control procedures (e.g., window procedures), error control procedures (e.g., checksum, retransmission strategy), connection setup and tear-down and details such as header and packet formats. The design must also describe implementation details such as buffer allocation strategies, timer handling mechanisms and programming interface specifications. The preliminary design is critiqued after which it is modified and resubmitted.
The second project review usually involves demonstration of some protocol functionality such as establishment and tear-down of a connection. The third project review occurs several weeks before the end of the semester. At this time, significant functionality must be demonstrated. At the final demonstration, students submit a final design document and fully documented code. To receive an A on the project, they must first demonstrate required functionality. The instructor is then allowed to try out the code and it must not break. In addition, such features as run-time status information and quality of user interface are considered.
It is worth noting that performance is generally not considered important in evaluating projects. Projects are written at the user level. Furthermore, all data generally resides on file servers. Hence, except within very wide bounds, performance differences are not very meaningful.
The project has been remarkably successful. Most groups complete the project and many are outstanding.