Teaching | Prof. Douglas Thain at Notre Dame

Prof. Douglas Thain at Notre Dame

Teaching

My courses focus on the design of computer systems, encompassing low-level operating system details, programming languages and compilers, and distributed systems consisting of thousands of machines. I teach students how to build real working systems from end-to-end, taking into account not just performance, but also reliability, completeness, usability, maintainability, and beauty.

Recent courses taught at the University of Notre Dame include:

I also create a variety of free online materials for teaching computer systems. Take a look at my free online compilers textbook:

Introduction to Compilers and Language Design
by Douglas Thain
2nd edition, 2020.
compilerbook.org

You can also take an online course in Data Intensive Scientific Computing hosted by me and my colleague, Prof. Paul Brenner:

Prior Courses

  • CSE 40822/60822 - Cloud Computing
  • CSE 40677 - Open Source Software Development
  • CSE 66771 - Foundations of Distributed Systems
  • CSE 20211 - Fundamentals of Computing
  • CSE 60641 - Graduate Operating Systems