Assignments

There will be two programming projects and four written homework assignments.

All homework is to be done individually. The programming projects will be done in groups of two students.

The projects are done in groups for two reasons. The first is the size of the class. The second and more important reason is that this is an opportunity to experience the joys and frustrations of working with others. It's a skill you only get better at with practice.

Since 15-441 fulfills the project-class requirement of the CS degree, you will be expected to learn and practice good software engineering, as well as demonstrate mastery of the networking concepts. Both partners in a project group will need to fully understand the project and your solution in order to do well on those exam questions relating to the projects. For example, a typical question might be: "When you implemented X, you came across a particular situation Y that required some care. Explain why this simple solution Z doesn't work and describe how you solved it." We'll pick questions such that it will take some effort to figure out Y. If you didn't take the time to work the problem yourself and just relied on your partner, you won't have enough time during the test to figure it out. Be careful, the insights you'll need will come only from actually solving the problem as opposed to just seeing the solution.

Homework/Projects

Topic Assigned Due Other Info Solutions
P1: IRC Server and Routing Daemon 21 Jan 2005 24 Feb 2005   Stand Alone Server
Server and Router
Homework 1 27 Jan 2005 3 Feb 2005 See bboard Solution 1
Homework 2 10 Feb 2005 17 Feb 2005   Solution 2
Homework 3 14 Mar 2005 29 Mar 2005 hw3.trace.txt
tcptrace.c
Solution 1
P2: UDP-based File Distribution Protocol 22 Mar 2005 21 Apr 2005
24 Apr 2005
   
Homework 4(Optional) 19 Apr 2005 28 Apr 2005 See bboard Solution
Homework 3 solution from 2004.