Home Page

Umut A. Acar
Associate Professor
Computer Science Department
Carnegie Mellon University

Office: GHC 9101
Executive assistant: Jessica Packer, jpacker@cs.cmu.edu, 412-268-2565, GHC 9006


Diderot Project

The Diderot Project aims to develop algorithms and software for increasing the quality and accessibility of education by creating a platform for people to learn and to share their knowledge.  Diderot has two pillars---people and knowledge---and revolves around a highly interactive book, tools for creating content, and discussions.   The underlying techniques draw from several fields of computer science (e.g., algorithms, AI, programming languages, and systems).  Diderot runs fully on the cloud and requires no on-site resources, other than personal computing devices for users.   Diderot is rapidly evolving and is now being used by more than thousand students at Carnegie Mellon on a day to day basis.

basic (and a very incomplete) guide to Diderot is available.


  • August 2019: With the start of the Fall semester, we welcome many new courses to Diderot community. 
    • 10715: Advanced Introduction to Machine Learning
    • 15122: Principles of Imperative Computation
    • 15210: Parallel and Sequential Algorithms
    • 15251: Great Theoretical Ideas in Computer Science
    • 15388/688: Practical Data Science
    • 15455: Undergraduate Complexity Theory
    • 15819: Foundations of Quantitative Program Analysis
    • 21228: Discrete Mathematics
  • July 2019: Imperative Computation(15122) switches to Diderot for their Summer 2019 edition. 
  • March 2019: Diderot has been recognized by the Carnegie Mellon Teaching Innovation Award.
  • January 2019: Algorithms (15210), Great Ideas (15251), and Grad AI (15781) start using Diderot for their Spring 2019 edition.   


Faculty and Staff
Umut Acar (CS)
Anil Ada (CS)
Alex Glikson (CS)
Aaditya Ramdas (Statistics)
Nihar Shah (CS+ML)
Rohan Yadav (CS)

Nil-Jana Akpinar (Statistics)
Shreya Bali (CS)
Alex Friedman (CS)
Maryia Oreshko (CS)
Erik Sargent (CS)
Andrew Singh (CS)
Yang Yang (CS)

Kai Lung (ECE)
Jeremy Leung (ECE)
Jason Mah (CS)
Chakara Owarang (ECE)
Medha Potluri (CS)
Ryan Sablosky (Developer, 01/2019-08/2019)
Uday Shankar (CS)

Funding and Acknowledgments 
Diderot is generously supported by Amazon Web Services. In the past, the project was supported by Google Cloud.

15897: Parallelism and Concurrency (Fall 2019)

Class times: Mon-Wed 10:30-11:50
Place: Gates 4303
Diderot: Please see Diderot for the course schedule and course materials.

This course covers topics in parallelism and concurrency.  Specific topics include the following.
  • Models of parallelism.
  • Parallel algorithms for sequences
  • Parallel algorithms for trees
  • Parallel algorithms for graphs
  • Algorithms for thread scheduling, e.g., greedy scheduling, online scheduling, and work stealing

The lectures will aim at bridging Church's and Turing's different formulations of computation and attempt at developing a "unified theory" of the fundamental concepts in computing, parallelism, and concurrency.  The students will also do a project.  The project could be individual or team work and on a topic that will be agreed upon by the instructor or the student(s).