CS 330 - Computer Networking - Fall 2023

Description

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.

Details

When/Where:
TR 1:10-2:25pm / CNS E210
Instructor: Mark Liffiton
Office: CNS C207B   (2nd floor CNS, in middle of building over atrium)
Office Hours:
  • Monday 10-12am (by appointment — ask a day in advance)
  • Tuesday 10-10:40am; 2:30-4:30pm
  • Wednesday 10-11am; 2-3pm
  • Thursday 2:30-3:30pm
During my office hours, I will be in my office as well as available 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 office hours you can attend, 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.

Textbook

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
ISBN978-0128182000
Authors' site"Systems Approach" Books (w/ links to purchase)

Grading

The final grade will be based on the following breakdown:

Labs20%
Exam 110%
Exam 215%
Exam 320%
Project25%
Pre-Class Responses10%

Labs

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, send me an email 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.

Exams

There will be three in-class exams during the semester.

Curving/Scaling

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."

Regrading

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.

Project

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.

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; Using External Resources

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 showing your solutions or code to another student, or looking at theirs, is not allowed.

This has two goals: 1) ensure that grades are 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.

Submitting code generated by a large language model as your own is plagiarism. Copying code found online and submitting it as your own is plagiarism as well. You may include or adapt small snippets of code found on a site like stackoverflow if you clearly and accurately cite the source of the code in a comment nearby (including a URL and a clear description of what was used/adapted). Code with a citation will not be reported as an academic honesty violation, but if the code you've copied is a substantial portion of the problem you were supposed to solve, you may still lose points.

For details on the university's policies regarding academic honesty, please read the sections of the student handbook on conduct, cheating, and plagiarism. Academic misconduct can result in failing the course and a report to the associate provost. If you are ever unsure of whether something might be crossing that line, please err on the side of caution. You can also just ask me, and I'll be happy to provide guidance.

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.

Accommodations

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 self-disclose and provide documentation to the Office of Student Accessibility Services. Please note that accommodations are not retroactive and accommodations cannot be provided until I receive an email from Student Accessibility 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 Student Accessibility Services by e-mailing accessibility@iwu.edu or stopping by their office in Holmes Hall.

Diversity

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 Associate 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 28, 2023