Home Page

Associate Professor
Computer Science Department
Carnegie Mellon University

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

I research theory and practice of programming, including the design, analysis, and implementation of programming languages and algorithms. I am also interested in applications of computer science to education and lead the development of Diderot platform. I received my degrees from Bilkent University (B.S, 1997), UT Austin (MA, 1999), and Carnegie Mellon (PhD, 2005).



Recent Awards

  • 2021: Distinguished paper award (POPL 2021)
  • 2020: ACM SIGPLAN Research Highlight (PPOPP 2019)
  • 2019: CMU Teaching Innovation Award (Diderot Project)



Education is an important challenge facing nearly every society today.  Although the need for education is increasing, its cost is also increasing.  I believe that technology holds an immense and largely untapped potential for improving education, including its quality, cost, and accessibility.  Diderot aims to realize this potential by offering a powerful platform that is designed grounds up for active learning. Diderot enables active learning by integrating traditionally static learning materials (e.g., textbooks, quizzes, etc) with features such as discussions and  feedback (both manual and algorithmic) that makes interaction seamless and easy.   

Diderot is rapidly evolving and has been used by thousands of students at Carnegie Mellon.  

Courses that have used Diderot include (since Spring 2019)
  • 10751 (Advanced Machine Learning): S20
  • 15121 (Data Structures): F20
  • 15122 (Principles of Imperative Computation): S19, F19, S20, F20
  • 15122-Qatar (Principles of Imperative Computation): S20
  • 15210 (Parallel and Sequential Algorithms): S19, F19, S20, F20
  • 15210-Qatar (Parallel and Sequential Algorithms): S20
  • 15251 (Great Theoretical Ideas in Computer Science): : S19, F19, S20, F20
  • 15281 (AI): F20
  • 15351 (Advanced Algorithms): F20
  • 15424 (Cyber-Physical Systems): F20
  • 15455 (Undergraduate Complexity Theory): F19, F20
  • 15459 (Quantum Computation): F20
  • 15588/15688 (Practical Data Science):  F19, S20
  • 15751 (TCS Toolkit): S19, S20
  • 15780 (Graduate AI): S19, S20
  • 15819 (Foundations of Quantitative Program Analysis): F19
  • 15859 (Proofs versus Algorithms): S20
  • 15897 (Parallelism and Concurrency): F19, F20
  • 21228 (Discrete Mathematics): S20

Funding and Acknowledgments 

Diderot is generously supported by SCS Innovation Fund, National Science Foundation, Amazon Web Services, Google Cloud.

    15897: Parallelism and Concurrency (Fall 2019, 2020)

    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).