Teaching

Previous to Spring 2025 ...

  • CS 445 Internet-scale Experimentation: A seminar exploring the challenges with measurement and evaluation of large Internet-scale systems.
    Winter '12 | Winter '15 | Winter '16 | Winter '17 | Winter '19 | Winter '20 | Winter '21 | Winter '23 | Winter '24 | Winter '25
  • >CS 345 Distributed Systems: Basic principles behind distributed systems (collections of independent components that appear to users as a single coherent system) and 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 401 Introduction to Graduate Studies in Comptuer 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.
    | Fall '18 Fall '19 | Fall '20 | Fall '21
  • CS 340 Introduction to Computer Networking: This course introduces the basics of networking, ranging from sending bits over wires to the Web and distributed computing. We focus on the networking ground between these two extremes, particularly focusing on the engineering of the Internet.
    Fall '19
  • 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
  • EECS-395/495 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
  • >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 213 Introduction to Computer Systems: This course provides a programmer's view of how computer systems execute programs, store information, and communicate.
    Spring '07 | Spring '10 | Spring '11 | Spring '12
  • MSIT-491 Peer-to-Peer Computing: A short course for the Masters of Science on Information Technology.
    Winter '08
  • ECI 2017 Internet-scale Experimentation (Argentina): Un seminario sobre los desafíos de la medición y experimentacóon con sistemas en red de escala Internet.
  • Sistemas Distribuidos de Gran Escala (Argentina): A short-course on large-scale distributed systems as part of the Visiting Faculty Pogram in the Department of Computer Science at the Universidad de Buenos Aires.
    June-July 2012
  • CS-395/495 Autonomic Computing Systems: A seminar reviewing new ideas and developments in a new research area aiming at delivering computing systems that can manage themselves given high-level objectives from administrators.
    Winter '06
  • 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