CS 395 Assignments

  1. Assigned 9/8, due 9/11. Read RFC 1602, RFC 1780, RFC 1288, and chapter 1 of Shay.
  2. Assigned 9/11, due 9/13. Read section 3.5 of Shay. If you have nothing else to do, start reading chapter 2.
  3. Assigned 9/15, due 9/20. Again, working in groups is okay. Especially on part 1, there are many ways to approach this assignment. Think about it before diving in--is there some faster way to do what you are trying to do?
    1. Use the text of RFC 1121 as data to determine character frequencies. Construct a Huffman code based on these frequencies. (Don't forget to include all printing ASCII codes, including <CR>, <LF>, <space>, <tab>, and <form feed>, in your Huffman code. If a character ('{', for example) doesn't appear in RFC 1121, treat it as though it occurred once in the file.) Use your Huffman code to determine the compressed size of other files, including, say, another RFC, and the source of a moderate sized C program. YOU DO NOT NEED TO ACTUALLY COMPRESS THE FILES--JUST DETERMINE HOW LONG THEIR COMPRESSED VERSIONS WOULD BE.

      You might find the Unix commands "tr -cd A < textfile" and "tr -cd A < textfile | wc -c" of some value. Or maybe not.

    2. Use the Lempel-Ziv-Welch approach presented in class to decompress this transmission. assuming each line represents a single 12-bit dictionary index.
  4. Assigned 10/6, due 10/13. Write cnet code to implement either a Go-Back-n or a Selective Repeat data link protocol. Collect data on the efficiency of your protocol, and collect similar data on McDonald's "stopandwait.c". To compare these protocols fairly, you'll need to alter McDonald's source to make stopandwait.c send frames in both directions--see his comments in the source to see how. If possible, hook your group up with another group that is implementing the protocol that you are not implementing, so you'll have data from three protocols to compare. This is an open-ended assignment. Your data collection and interpretation of those data are important.
  5. Assigned 10/20, due 10/27. Write a cnet program to implement a distance vector routing algorithm. See here for details.
  6. Assigned 11/1, due 11/8. Submit by e-mail to jondich. Write a client and a server implementing the MFTP protocol. You should test your client and server separately by seeing whether they work with other people's clients and servers. Let me know if you detect any ambiguities in the protocol.




Jeff Ondich, Department of Mathematics and Computer Science, Carleton College, Northfield, MN 55057
(507) 663-4364, jondich@carleton.edu