This course is offered as 15-388 A (a 9-unit course for undergraduates with live lectures), and 15-688 A/B (a 12-unit course for masters with choice between live lectures (section A) and no meetings (section B)).

Both courses have the same lectures, but the latter will have additional advanced problems in their assignments.


This course meets every Monday and Wednesday 3:00pm–4:20pm in Doherty Hall 2210.


Programming experience is necessary for the course, all assignments are in Python. For undergraduates, either 15-112 or 15-122 is required.

Experience with linear algebra, probability, and statistics is recommended, but not strictly required (courses like 21-240/241/242 for linear algebra or 36-201 for probability/statistics are more than sufficient). Students concerned about whether they have a proper background should contact the course instructors to discuss.


  • 50% homework
  • 15% tutorial
  • 25% final project
  • 10% class participation


If you are in section A, then your participation grade comes from your participation in polls administered during class. Speaking up during class and participating in the class forums may help your grade.

If you are in section B, then you will have a week after some lecture videos are released to complete a short quiz relating to the lecture. Not all lectures will have corresponding quizzes. Participating in the class forums may also help your grade.