CS595 Designing Large-Scale Networked Systems (Spring 2022)
Instructor:Dr Nik Sultana, Department of Computer Science, Illinois Institute of Technology
Lecture Time: MW 11:25-12:45 CT
Lecture Location: Online
Content: BlackboardAnnouncements, Communication and Q&A: Mailing listGrading:
Participation (10%),
Presentation (30%),
Mid-term Project (20%),
Final Project (40%).
Books and material:
There is no required textbook. The course will rely on select research articles
and tool documentation.
Cross-list: This course is cross-listed with the ITM department as ITM-595.
Course description
Many important services—including Internet services many of us use—rely on
large-scale, high-performance networked systems to carry out a rich variety of
data processing. This course provides a comprehensive overview of the design of
such systems. It will teach practical skills and cover a wide range of topics as it
connects low-level to high-level features. Topics include network architecture,
routing, software-defined networking, traffic patterns, monitoring, distributed
data models, security, failure modeling, and in-network computing. This course
will involve lectures, seminars, and project work.
Objectives
The main learning goals of this course are the following:
Get exposure to state-of-the-art ideas and research in this domain.
Understand decisions and trade-offs when designing a large-scale network.
Understand main routing algorithms used in large-scale networks.
An introduction to the P4 language, and experience using its toolchain.
Several advanced examples of Software-Defined Networking
Workload
Present and discuss recent or influential research papers from the course
syllabus.
Prepare and present two projects. Each project involves implementing
a switch extension in P4. Students can propose their own project ideas
based on their interests. The instructor will help scope the proposals.
Prerequisites
This will be a "hands-on" course that requires active implementation. Knowledge
of networking, Python and basic OS features is needed for students to make
the most out of this course. This knowledge includes the ability to write
and understand shell scripts, and use network-related shell commands such as
ifconfig and ping. In terms of Illinois Tech's CS curriculum, this is roughly captured
by "CS351 or CS450 or CS455 or CS542". Contact the instructor if in doubt.