CS 330 - Computer Networking - Fall 2021


If I had to rank technologies that are currently having the largest impact on the shape of society, networking would be somewhere around the top of the list. The telegraph, telephone, and radio opened the door for nearly instantaneous transmission of information. Networking — everything we will study in this course — has broadened that to make unbelievable amounts of information available to people around the world. Networks connect people to information and other people with unprecedented ease.

The cost of communication has been driven so low and the spread of networks reaches so far that one person can reach a worldwide audience of millions for minimal cost or even free (think youtube, wordpress, or, well, spam). In the other direction, one person, for a similarly minimal cost, can access information on practically any topic, realtime updates from anywhere on earth, and enough videos of cats to keep them busy for years decades (13.5 million videos as of August, 2014, the last time it gave me a count of search results (and if you're curious, it reported 306,000 in August, 2011 and 891,000 in August, 2009)).

In this course, we'll explore how it is that we can instantly access millions of videos of cats (and other even more impressive things): the technology that makes all of this possible. Networking, in the scope of this class, will cover the field from directly connected networks (running a wire between two computers – essentially the modern equivalent of the telegraph) to the structure of the global internet and the applications built on top of it. Along the way, we'll cover not only the current technologies but also their context: history, forces shaping the design, drawbacks, potential successors, etc.

At the end of the course, you will have a much deeper understanding of what happens when you click on a link in a web browser. You will have tools to investigate the events caused by that action and the resulting data transmission across various links and through several different computers to and from your own. You will have hands-on experience with networks at several levels, including a substantial coding project of your own design. And you will be able to assess current and future technologies in terms of their suitability for solving problems and enabling communication.

For an idea of the specific topics covered in the course, see the rough schedule for the semester.

Other Pages

Semester schedule — tentative - see Moodle for up-to-date details.

Moodle — assignments, quizzes, announcements, and other online resources will be here.

CS Codex resources for CS330 — collected resources and readings for this course.


TR 1:05-2:20pm / CNS E210
Instructor: Mark Liffiton
Office: CNS C207B   (2nd floor CNS, in middle of building over atrium)
Office Hours:
  • Tuesday 10-11am; 2:30-3:30pm
  • Wednesday 1-2pm
  • Thursday 10-11am; 2:30-3:30pm
During my office hours, I will be in my office as well as available in the #cs330 channel on Discord (see link on Moodle).
And generally, feel free to drop in any time if my door is open.
If your schedule prevents you from attending my set office hours or you would like to meet sooner than the next set time you are free, I will often be available on Discord, and I'm very happy to set up alternate meetings. Just ask.
Contact (you→me): We will use Piazza (see link on Moodle) for most course- and content-related questions. For anything specific to you, feel free to talk to me before or after class, meet me in office hours, stop by my office, catch me on Discord, or email (for email, please start the subject with "CS 330:").
Contact (me→you): I will post course announcements through Moodle, and they will be sent to your IWU email accounts. Check your IWU email frequently or have it forwarded to an address you do check.

In-person Classes

In-person classes will be held in CNS E210. Everyone in the classroom will be expected to follow the Titans Caring for Titans Pledge. In particular, this means everyone, students and instructor alike, will wear a mask over their mouth and nose at all times.


There is no required textbook. I will provide free, online resources for all of the concepts covered in this course.

For anyone who prefers a physical textbook, there is a print version of the "Peterson and Davie" textbook from which we'll be using many sections. This book covers most of the course's concepts well, and we will be roughly following its organization:

TitleComputer Networks, Sixth Edition: A Systems Approach
AuthorsPeterson & Davie
Authors' site"Systems Approach" Books (w/ links to purchase)


The final grade will be based on the following breakdown:

Exam 115%
Exam 215%
Pre-Class Responses15%


The labs will be hands-on explorations of networking concepts. They are designed to give you experience with common networking tools and protocols while learning about the underlying concepts.

Lab assignments will be posted on the course's Moodle site. We will go over each lab in class, and we may use time in class to begin working on the lab. Reports should be submitted online in the form of plain text or PDF*. The desired format of the reports will be specified in the assignments. I will aim to get them graded and returned to you by the following week.

Late Policy

Lab reports and other assignments will be due at set times; they will be considered late at any point after that time. A report will lose 10% of the total possible points for every day it is late, and after five days it will not be accepted.

Grace Tokens

Every student has two "grace tokens" that they may use for extensions in instances where they are unable to complete work by the assigned deadline. To use a grace token on an assignment, contact me before the assignment deadline, explain why you need an extension, and we will determine an appropriate extension, which will be granted with no grade penalty. Some assignments may not be eligible for grace tokens due to immediate use of or feedback on the submitted work, but most will be.


There will be two exams during the semester. There is no final exam.


As you may have heard from other teachers: If everyone does well, that's great! I'm not going to lower anyone's grade to fit some predetermined grade distribution. However, scores given on individual quizzes and exams (especially exams) may not translate directly into a letter grade on the traditional scale. As explained quite well here:

"A percentage shows how much of a particular exam was dealt with successfully, but what test is so perfect that it could completely determine extent of knowledge or ability? If a student gets a grade of 90%, it does not mean they know 90% of everything in the subject. Wise students will begin to look at scores as a place on a continuum of achievement rather than analysis carved in stone."


If you would like to request a regrade, submit a request to me in writing (via email) within one week of receiving the graded lab, exam, etc. Indicate exactly which part you believe deserves a different score and why.


The project will be a coding project in which you develop a substantial program that involves some aspect of networking that we cover during the semester. These projects may be done individually or in groups of two. Groups will be expected to tackle correspondingly larger problems than individuals. For the first half of the semester, explore potential topics and gather ideas for your project. Feel free to discuss ideas with me as you have them. I will also provide ideas for projects. Part way through the semester, each project team will schedule a meeting with me to discuss ideas and choose one.

Several documents will be written during the project:

Detailed descriptions of each of these documents will be provided when they are assigned.

During our final period, we will have a presentation session. Every project will get a presentation slot, in which the team will present the project to the class. We may hold some presentations earlier if needed.

The final grade for the project will be based on the initial proposal, progress reports, the final report (including an assessment of the code itself), and the final presentation.

Engagement / Attendance

Class time will be complementary to the reading, and you will need both in order to learn all of the material in this class. Many class sessions will involve material and/or practice that you will not be able to find or make up elsewhere. Furthermore, each student benefits from the engagement of all others in the class. Part of your final grade will be based on that engagement. Attending every class period on time and prepared will earn a base of 70%; points can be gained by constructive participation, in class or out, such as asking questions, answering them, responding on Piazza or Discord, sharing insights or useful/interesting resources with the class (posting on Discord, for example), investigating concepts beyond the requirement in class, working on small independent learning projects, and in many other ways. Points can be lost for excessive (more than 3) unexcused absences, disrupting class (e.g., regularly showing up late), poor participation in group exercises, and the like.

Absences can be excused with documentation from health services or the Dean of Students' office, or if arrangements are made with me more than a week in advance. In general, if you know you will be missing a class, let me know as soon as you can.

Pre-Class Responses

A set of questions will be posted on the course Moodle along with certain days' reading assignments. You should complete the reading and answer these questions before each class. Answers will be due the night before class.

The questions will invite your reaction to the reading(s) and check your understanding of the material with small problems. Each day's response will be be worth one point if it shows solid effort. If you cannot solve a problem, write a brief paragraph describing what you understand of it and how far you got or where you are stuck. I may assign extra credit for exceptional responses.

The goal of these questions is to prepare you for class, gauge how difficult each topic is, and let us focus our attention in class on the more challenging or unclear concepts. Because I will use your responses to guide our time in class, late submissions won't be accepted.

Working with Others

I strongly encourage you to form study groups with your classmates, compare notes, explain concepts to one another, and generally help each other learn the material in this course.

Any material turned in for a grade must be your own individual work, though. You may work on concepts with other students, but I ask that you not discuss assigned problems until after the work has been turned in. Giving or even showing your solutions or code to another student is not allowed.

This has two goals: 1) let the grades be a reflection of each student's own work, and 2) avoid situations where one person solves a problem and another records the answer as their own work without really learning. I understand that the line between discussing concepts and solving problems can be vague, so I ask that you use your own judgement with those two goals in mind and ask me if a situation is unclear.

For details on the university's policies regarding academic honesty, please read the sections of the student handbook on conduct, cheating, and plagiarism. Cheating in any form can result in failing the course and a report to the associate provost.

For group submissions (e.g., project documents), I will ask each individual to submit a brief statement indicating how the work was divided and roughly how much of each part was done by each person in the group.


Illinois Wesleyan University strives to make all learning experiences as accessible as possible. If you anticipate or experience academic barriers based on a disability (including mental health and chronic or temporary medical conditions), it is your responsibility to register with Disability Services. Please note that accommodations are not retroactive and accommodations cannot be provided until I receive an email from Disability Services. Once the email is sent, please make arrangements with me as soon as possible to discuss your accommodations confidentially so they may be implemented in a timely fashion. For more information contact Disability Services by visiting 110 Holmes Hall, calling 309-556-3231, or emailing cshipley@iwu.edu.


Our university's mission statement includes, "The University through our policies, programs and practices is committed to diversity [...]" Our school and this course are made stronger by the mix of people that come into it bringing a diversity of ideas, experiences, and backgrounds. I expect everyone in this course — instructor, TA, and student — to contribute to an inclusive atmosphere that respects the diversity of all others in it. Dimensions of diversity can include sex, race, age, national origin, ethnicity, gender identity and expression, intellectual and physical ability, sexual orientation, income, faith and non-faith perspectives, socio-economic class, political ideology, education, primary language, family status, military experience, cognitive style, and communication style. The individual intersection of these experiences and characteristics must be valued in our community. If you have related concerns about the class environment or behavior of any in it (including me), you are welcome to raise them with me, and I will do my best to address them. If you are not comfortable speaking with me about them, you may also bring concerns to the Provost or the Office of Diversity and Inclusion.

End-of-Syllabus Advice

Own it. Own what? Own this course. This is a high-level course, and you have enough experience now to help shape it. You have the opportunity to guide individual class sessions, you will design your own project, and toward the end of the semester, I'll ask for suggestions on what topics you would like to cover for the last few classes. Take advantage of those chances to shape the class, and let me know if you have any other ideas throughout.

page last updated Aug 24, 2021