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.
| 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 | 24 Apr 2005 |
||
| Homework 4(Optional) | 19 Apr 2005 | 28 Apr 2005 | See bboard | Solution |