Syllabus
Overview
Computer communication networks are among the most important and influential global infrastructures that humanity has created. CS 538 will explore the guts of the systems that have given rise to so much innovation, how networking is continuing to evolve to support new environments, and challenges in building networked systems that are simultaneously highly robust, efficient, flexible, and secure.
The course provides a foundational and current view of communication networks in order to enable students to perform high-quality research in the area. Topics will include Internet architecture and core protocols for congestion control, forwarding, naming, and routing; approaches to achieve reliability, scalability, and security; and design of hyperscale cloud networks, data centers, content delivery networks, enterprise networks, and more. Material will range from the classics to the latest results, and from analytical foundations to systems design and real-world deployment.
Class sessions will combine lectures, discussions of reading, and presentations of recent research papers by students. Students will carry out a research project with the goal of publication in a conference.
The course consists of:
Each of these components of the course is discussed below, along with several other administrative issues.
Class sessions
Class sessions combine lectures, discussions of reading, and presentations by students.
In all cases, the class is focused around discussion. Please comment, question, and interact! I ask that you do not use laptops during class. This way, we'll all be maximally engaged.
Readings and reviews
Most classes will have one or two assigned readings, which we will all read prior to class and discuss during the class. Reading the papers is essential to get the most out of this course!
You must submit (on the class discussion site) a paper review for each of the assigned readings. A one-paragraph review is sufficient (longer is usually not better!). Your reviews should not summarize the paper or repeat the abstract; we all read the paper already. Instead your review should comprise at least two comments on the paper. Your comments should supply information that is not in the paper itself. For example, a comment might be:
- a criticism of the paper
- an advantage of the paper's design that was not discussed in the paper
- a suggestion of a way to extend or build on the paper in future work
- a response to another student's comment
Here is an example of a review that is not good:
The paper introduces Inter-Galactic Networking, or IGN, which solves the problem of sending messages between galaxies. The authors introduce a novel protocol that can send packets long distances via a distributed array of wormhole actuators. The paper evaluated the design with a simulation and showed a 57% improvement over IP. Then the authors analyzed the delivery probability of messages and tradeoffs between delivery time and cost of replication along multiple paths. Also, on page 7 the authors misspelled "ambidextrous". The first author's mother was a hamster and his father smelt of elderberries.
That review is unhelpful because it summarizes the paper (old news: we already read the paper!) and gives no interesting new thoughts or information. Worse still, it's long. Here is an example of a review that is good:
(1) The simulation was relatively realistic, but didn't measure the total round-trip latency including wormhole setup time for a new destination. So it was hard to know the range of distances at which IGN works better than traditional Inter-Planetary Networking. If most communication is local, IGN would help for only a minority of traffic. (2) The theoretical analysis is particularly valuable because their statistical techniques can probably be applied to terrestrial delay-tolerant and underwater networks too.
Submit your review by 11:59 pm the night before the lecture for which the paper was assigned, by posting it on the class discussion site.
You are encouraged to read, think about, and comment on the other students' reviews, so that our time will be productive when we are all together discussing the papers. However, it would be prudent to at least jot down notes on your own thoughts independently, before you read the other students' comments. Your reviews should contain material that doesn't appear in the other students' reviews. (If you independently produce the same idea and write it in your own words, that's fine. Copying other students' reviews, however, is obviously plagiarism.)
You may skip any 2 paper reviews over the course of the semester without affecting your grade. You may find this useful if you attend a conference, have a qualifying exam, etc. Except in extreme cases, the instructor will not grant additional free passes on the reviews.
Reviews that are submitted on time and meet the guidelines above will be given full credit. The overall review grade for the course may be determined based on a random sample of reviews over the semester.
Research project
The research project is one of the highlights of the course. The goal is to conduct novel research related to networking that, by the end of the semester, would be publishable as a short paper in a top quality workshop like HotNets, and when expanded to a full paper would be publishable in a top-quality conference.
Past projects in this class have been quite successful. Here are some projects that went on to be published (this list shows only the CS 538 student author for each publication; click the link for full citation showing all authors):
- Saurabh Jha et al., Measuring Congestion in High-Performance Datacenter Interconnects, USENIX NSDI 2020
- Ali Yekkehkhany et al., GB-PANDAS: Throughput and heavy-traffic optimality analysis for affinity scheduling, ACM IFIP Performance, 2017
- Hilfi Alkaff et al., CrowdWatch: Enabling In-Network Crowdsourcing, Second Mobile Cloud Computing (MCC) Workshop, 2013
- Haohui Mai et al., Debugging the Data Plane with Anteater, SIGCOMM 2011
- Giang Nguyen et al., Slick Packets, SIGMETRICS 2011
- Shen Li et al., TAPA: Temperature Aware Power Allocation in Data Center with Map-Reduce, 2nd International Green Computing Conference, 2011
- Ashish Vulimiri et al., Resilient Routing in the Pathlet Architecture, demo at 9th GENI Engineering Conference, 2010
- Md. Yusuf Sarwar Uddin et al., RELICS: In-network Realization of Incentives to Combat Selfishness in DTNs, ICNP 2010
The steps in the research project are as follows:
- Team formation: During the first two weeks of the course, you should think about projects you might like to do. The instructor will suggest some topics, but it's even better if you have ideas of your own. As you are considering projects, find collaborators who are interested in the topic. We recommend you work in groups of 2-3; larger or smaller groups should discuss with the instructor first.
- Project proposal: The specific deadline and method of submission will be posted on the course schedule. The proposal should be at most a half page of text, describing each of the following:
- the problem you plan to address
- what will be your first steps to attack the problem
- what is the most closely related work, with at least 3 full academic paper citations (title, authors, publication venue, year) plus paper URLs, and why your proposed problem is different than those or why your proposed solution is better. You should actively search for related work, not just cite papers that the instructor mentions.
- if there are multiple people on your project team, who they are and how you plan to partition the work among the team
- Midterm presentation: Give a brief presentation in class describing what problem you are solving, why existing approaches will not solve your problem, your solution approach, and your progress in your solution. You must demonstrate progress in your solution and the midterm presentation is worth 10% of your final course grade, so it would be good to start work on the project early! This presentation will be in PK format: 20 slides for 20 seconds each, auto-advanced.
- Final presentation: At the end of the course, during the final exam period, we will have project presentations. This will be an opportunity for the instructor to ask questions about your project, and also for other students and faculty in the department to see the work that you've done. The format of the presentation will be either a slide presentation or a poster (to be announced later in the course).
Dates for the above steps will be announced on the class schedule. In general, you are encouraged to meet with the instructor and seek advice on the project as often as you like.
Can a project be shared with another course's project or independent research? It is OK, and often a good idea, to work on a class project that complements your other ongoing projects and has a related topic. However, you should identify the piece of the larger project that you are working on for 538, with separate pieces for other courses. Check with your other instructors as well.
Presentations for online students. Students in the online section of the course may give midterm and final project presentations over videoconferencing software. If your schedule permits, you may join during the regular on-campus lecture time and present to the whole class, or you may even join us physically. Otherwise, we will arrange a time that works for your schedule.
Assignments
There will be two assignments during the semester. Assignment 1 introduces several tools for experimental networking research. Assignment 2 asks questions with written answers covering roughly the first 2/3 of the course's lecture and reading material. There will be no final exam, but we do have project presentations during the final exam period.
Grading
- Project (40%)
- Proposal (5%)
- Midterm presentation (10%)
- Final presentation (25%)
- Paper reviews (40%)
- Assignment 1 (10%)
- Assignment 2 (10%)
The overall score will be converted to a letter grade. The minimum score needed for each grade will be at most the following values:
- 93: A
- 90: A-
- 87: B+
- 83: B
- 80: B-
- 77: C+
- 73: C
- 70: C-
- 67: D+
- 63: D
- 60: D-
- 0: F
Textbook
There is no required textbook. If you haven't taken an undergraduate networking course, or if you need a refresher, you might take a look at:
- Peterson and Davie, Computer Networks: A Systems Approach (open source as of August 2018)
- Kurose and Ross, Computer Networking: A Top-Down Approach
- Tanenbaum and Wetherall, Computer Networks
There are two recent graduate-level books focusing on mathematical aspects of networking:
- R. Srikant and Lei Ying, Communication Networks An Optimization, Control and Stochastic Networks Perspective (draft available free online)
- S. Keshav, Mathematical Foundations of Computer Networking
Academic honesty and cheating
The author of all writing, ideas, and other work must be clearly credited. For example, if your presentation of a past paper uses some slides from the author, you must credit the author. Please note that even a single sentence, or fragment of a sentence, directly copied from another work without being a clearly attributed quotation can constitute plagiarism.
The standard penalty for a first instance of cheating is a grade of zero on the assignment in question, plus a reduction of one full letter grade in your final course grade.
For details, please see the departmental honor code.