Course Materials

Online resources

This course has a piazza page primarily used for discussions and questions, and a Canvas page primarily used for posting and submitting problem sets.


Sections include exercises on what we learn in class and in some cases help set up new concepts that we will learn in lecture. Sections are not mandatory, but we strongly encourage you to participate.

Regular section times:

  • Wednesdays, 4-5pm, SC 309A [filmed]
  • Wednesdays, 5-6pm, SC 309A
  • Thursdays, 7-8pm, Quincy Innovation Space
  • Thursdays, 8-9pm, Quincy Innovation Space


Lecture Notes

Due to copyright material from the textbooks, we can’t publicly post many of the lecture notes on this website. They’ll be available in Canvas instead.


Each problem set will include programming assignments. The programming will be relatively light, where the idea is to use simple scripts to analyse real world network data sets and apply some of the algorithm you learn in class. You’re expected to have taken CS50 or have similar background and experience.  In this course will use python for instruction in sections.  While we will not teach python or programming related material, we will have a coding lab on the first week of class, and generally support programming-related questions during sections and office hours.