Archive for March, 2000

Teaching fellow: Computer Networks

Posted on the March 10th, 2000 under Teaching by

I welcomed this opportunity to help teach my favorite subject.  As most teaching assistant-type jobs, this was mostly behind-the-scenes, but I did hold semiweekly office hours and help many students, and was happy to fill in for Prof. Byers for a few lectures (lectured about CIDR as I recall).

One notable thing I did here had to do with grading the final project, which was an application-level implementation of a  TCP-like reliable stream protocol. We provided the code for the receiver and the protocol specification; the students had to create the code for the sender.  The protocols were then used by a client/server application, and packets were sent through a simulated network with various kinds of problems: various patterns of packet loss and reordering.

Evaluation of the project submissions was tremendously difficult, because of the wild differences in implementation and wide ranges of troubles in the submitted code. So I wrote an extensive protocol verifier and project evaluator, which was then tested to be rock-solid correct and even able to handle infinite loops and segfaults in the programs being evaluated. Then I let it loose on the directory of student submissions — and voila, two days later the students received auto-generated reports with grades and test breakdowns, and I got an auto-generated spreadsheet with the numbers. It was awesome.