This syllabus is under construction! The content and links are subject to change.
EECS 557 develops the mathematical foundations needed to model, analyze, and design communication networks, connecting Internet protocols with optimization, queueing, routing, switching, scheduling, congestion control, and resource allocation.
Announcements
Schedule
| Day | Lecture Topic/Lab | Homework | Project | |
|---|---|---|---|---|
| Week 1 Mon Aug 31 |
1. Internet Overview | HW1 | ||
| Wed Sep 2 | 2. Application Layers | HW2 | ||
| Week 2 Mon Sep 7 |
Labor Day Holiday | |||
| Wed Sep 9 | 3. Transport Layers | HW3 | ||
| Week 3 Mon Sep 14 |
4. Convex Optimization | HW4 | ||
| Wed Sep 16 | 5. Lagrangian Duality | HW5 | ||
| Week 4 Mon Sep 21 |
6. Resource allocation as utility maximization | HW6 | Project 1 - Internet Mockup | |
| Wed Sep 23 | 7. Primal Solution for Utility Maximization | HW7 | ||
| Week 5 Mon Sep 28 |
8. Dual Solution for Utility Maximization | HW8 | ||
| Wed Sep 30 | 9. TCP Reno and Primal Solution | HW9 | ||
| Week 6 Mon Oct 5 |
10. TCP Vegas and Dual Solution | HW10 | ||
| Wed Oct 7 | 11. Network Layer - Data Plane | Exam 1 (6-8pm) | ||
| Week 7 Mon Oct 12 |
12. Routing Algorithms | HW12 | ||
| Wed Oct 14 | 13. Markov Chains | HW13 | ||
| Week 8 Mon Oct 19 |
Fall Study Break | |||
| Wed Oct 21 | 14. Discrete-Time Queues 1 | HW14 | ||
| Week 9 Mon Oct 26 |
15. Discrete-Time Queues 2 | HW15 | ||
| Wed Oct 28 | 16. Fair Queues | HW16 | ||
| Week 10 Mon Nov 2 |
17. Switching Algorithms | HW17 | ||
| Wed Nov 4 | 18. Low Complexity Switch Scheduling Algorithms | HW18 | ||
| Week 11 Mon Nov 9 |
19. Link Layer | HW19 | ||
| Wed Nov 11 | 20. Scheduling in Wireless Networks | HW20 | ||
| Week 12 Mon Nov 16 |
21. Scheduling in Wireless Networks 2 | HW21 | ||
| Wed Nov 18 | 22. Scheduling in Wireless Networks 3 | HW22 | ||
| Week 13 Mon Nov 23 |
23. A Joint Formulation of the Transport, Network and MAC Problems | HW23 | ||
| Wed Nov 25 | Thanksgiving Holiday | |||
| Week 14 Mon Nov 30 |
24. Continuous-Time Markov Chains | HW24 | ||
| Wed Dec 2 | 25. Continuous-Time Queues | HW25 | ||
| Week 15 Mon Dec 7 |
26. Network Calculus | HW26 | ||
| Final Exam: TBD, 4-6PM | ||||
Logistics
Recordings
Admin Requests
- Exam 1 ConflictReport a conflict and request alternate scheduling for the first exam.
- Exam 2 ConflictReport a conflict and request alternate scheduling for the second exam.
If there is something not on these forms, contact vyl@umich.edu.
Instructors
Platforms: Linux, Vim, Emacs, VS Code
Interests: swimming, running, skiing, coffee
Syllabus
EECS 557 studies communication networks through the mathematical principles that govern their design, performance, and control. The course connects Internet protocols with the models used to reason about congestion, routing, scheduling, queueing, switching, and resource allocation.
The first part of the course introduces Internet architecture, protocol layers, TCP, adaptive window flow control, routing, and network planning. The second part develops the analytical foundations needed to study network behavior, including convex optimization, utility maximization, Markov chains, queueing theory, packet switching, fair queueing, wireless scheduling, and network calculus. The course also discusses modern networked systems such as peer-to-peer networks, data-center load balancing, and cross-layer resource optimization. By the end of the course, students should be able to model communication networks mathematically, analyze their performance, conduct simulation and measurement for verification, and understand how protocol and algorithmic choices shape efficiency, fairness, stability, and scalability.Course Topics
- Internet architecture and protocol layers,
- Adaptive window flows control and TCP protocols,
- Routing algorithms and network planning,
- Queueing theory and Markov chains
- Network calculus,
- Fair queueing,
- Scheduling in wireless networks,
- Peer-to-peer networks,
- Load balancing in data centers,
- Convex optimization and resource optimization
Textbooks
R. Srikant and Lei Ying, Communication Networks, An Optimization, Control, and Stochastic Networks Perspective, Cambridge University Press (February 17, 2014).
- Slides and pdf files of some of the chapters can be found on the book website.
- Ebook is available at UM library here
- Jim Kurose and Keith Ross, Computer Networking - A Top-Down Approach, 9th Ed. Pearson, 2025.
- Book website.
- Additional materials for convex optimization
- Lecture recordings from Winter 2021 can be found under Media Gallery
Projects
You will complete a set of projects through the semester. In these projects, you will design and implement various communication network scenarios to understand the concepts discussed in the lectures. The projects should be independent to each other. For further details on the projects, please refer to the Projects Overview page.
Grading
Your final grade will be determined based on the following components: The 5 lowest quizzes will be dropped from your final grade calculation. The 2 lowest lab grades will also be dropped.
| Component | Weight |
|---|---|
| Attendance and Quizzes | 20% |
| Homework | 40% |
| Exam 1 | 20% |
| Exam 2 | 20% |
Your final letter grade will be determined based on your overall percentage in the course, according to the following scale:
| Percentage | Letter Grade |
|---|---|
| 100% - 95% | A+ |
| 95% - 90% | A |
| 90% - 85% | A- |
| 85% - 80% | B+ |
| 80% - 75% | B |
| 75% - 70% | B- |
| 70% - 60% | C |
| below 60% | E |
Academic Integrity
We encourage collaboration, especially on concepts, tools, specifications, and strategies. However, all submitted work must be your own. If you are unsure about what constitutes collaboration versus copying, please ask a member of the teaching staff for clarification.
| Encouraged Collaboration | Unacceptable Collaboration |
|---|---|
| Sharing high-level design strategies, e.g., module organization | Walking through a design or module step-by-step, sharing pseudocode, sharing comments |
| Helping others understand the spec or project nuances | Providing your code as a reference |
| Helping someone debug | Debugging someone's code for them |
| Explaining a synthesis error to someone | Fixing a synthesis error for someone |
| Discussing test strategies | Sharing test code to verify someone else's design, even if test cases are not submitted |
| Brainstorming edge cases for testing | Discussing specifics about what tests exposed instructor bugs on the autograder |
| Using starter code provided with a project or based on examples shown in lecture | Copying code in whole or in part, even if the code is modified \n Writing original code for someone else, or paying someone to write your project |
| Sharing your code in a way that could be copied, e.g., sending code over email or taking a picture of code |
Code Reuse
Reusing code (your own or other students') from previous semesters is not permitted.
Publishing Code
Any code you write for this course must not be published in any way or form, including posting on public repositories (e.g., GitHub, GitLab) or personal websites.
Generative AI Policy
The use of generative AI tools is not permitted for writing code or completing assignments in this course.
Attendance Policy
In-person attendance is highly encouraged. If you must miss class for any reason, recordings of the lectures can be accessed through this link no later than a few hours after the lecture. Lectures cannot be attended remotely via Zoom. Lab sessions require attendance, and labs are graded.
Pop quiz policy
You receive zero point if missing 50% or more pop quizzes. You are not allowed to take the quiz if you are not present when the quiz is distributed. You have five free absences (medical and non-medical) and will receive no penalty for missing a quiz if the instructor receives the absence note by 10am on the lecture day. You have unlimited excused absences for traveling due to university business. These absences need to be preapproved before you travel. The final grade of attendance and pop quizzes is based on the average.