Teaching
Courses I have taught at Northwestern and elsewhere.
- CS 213 Introduction to Computer Systems:
A programmer's view of how computer systems execute programs, store information, and communicate.
Spring '07 |
Spring '10 |
Spring '11 |
Spring '12
- CS 340 Introduction to Computer Networking:
The basics of networking, ranging from sending bits over wires to the Web and distributed computing,
focusing on the engineering of the Internet.
Fall '19
- CS 343 Operating Systems:
An overview of fundamental operating systems concepts.
Fall '02 |
Fall '03 |
Fall '04 |
Fall '05 |
Fall '06 |
Fall '07 |
Fall '08 |
Fall '09 |
Fall '10 |
Fall '11 |
Fall '12 |
Fall '13 |
Fall '14 |
Fall '15 |
Fall '16 |
Fall '17
- CS 345 Distributed Systems:
Basic principles behind distributed systems — collections of independent components that appear to
users as a single coherent system — and the main paradigms used to organize them.
Winter '04 |
Winter '05 |
Winter '08 |
Winter '10 |
Winter '13 |
Winter '14 |
Spring '15 |
Spring '16 |
Spring '17 |
Spring '18 |
Spring '19 |
Spring '20 |
Spring '21 |
Spring '22 |
Spring '24 |
Spring '25
- CS 395/495/497 Distributed Systems in Challenging Environments:
A seminar reviewing cool ideas and ongoing projects that are pushing distributed systems into new and
challenging domains.
Spring '08 |
Winter '11 |
Spring '13 |
Spring '14 |
Winter '18 |
Winter '22
- CS 395/495 Autonomic Computing Systems:
A seminar reviewing new ideas and developments in a research area aiming at delivering computing systems
that can manage themselves given high-level objectives from administrators.
Winter '06
- CS 440 Advanced Networking:
The Internet is a continuously evolving, loosely controlled, and highly uncooperative infrastructure of
impressive scale and complexity. This seminar is intended to help students understand its evolving design,
and some of the forces behind it, through active discussions and investigative projects on state-of-the-art
networking research.
Fall '22 |
Fall '24
- CS 443 Advanced Operating Systems:
A graduate-level course on operating systems and software computer systems in general.
Winter '03 |
Spring '05 |
Winter '07 |
Winter '09
- CS 445 Internet-scale Experimentation:
A seminar exploring the challenges with measurement and evaluation of large Internet-scale systems.
Earlier offerings were numbered CS 395/495 and CS 497.
Winter '12 |
Winter '15 |
Winter '16 |
Winter '17 |
Winter '19 |
Winter '20 |
Winter '21 |
Winter '23 |
Winter '24 |
Winter '25
- CS 401 Introduction to Graduate Studies in Computer Science:
An introduction to graduate studies in CS@Northwestern for incoming graduate students. I started this
course, the first of its kind at Northwestern and now a requirement, in 2018. Earlier offerings were
numbered CS 496.
Fall '18 |
Fall '19 |
Fall '20 |
Fall '21
- MSIT-491 Peer-to-Peer Computing:
A short course for the
Master of Science in Information Technology.
Winter '08
- ECI 2017 Internet-scale Experimentation (Argentina):
Un seminario sobre los desafíos de la medición y experimentación con sistemas en red
de escala Internet.
Julio 2017
- Sistemas Distribuidos de Gran Escala (Argentina):
A short course on large-scale distributed systems as part of the Visiting Faculty Program in the
Department of Computer Science at the
Universidad de Buenos Aires.
June–July 2012