Current Courses

Rigorous Software Engineering
Undergraduate course on building correct software.
Spring 2024
Research Topics in Software Engineering
Graduate seminar on programming languages and software engineering.
Spring 2024

Past Courses

Software Engineering Seminar
Covers latest research trends in the field of programming languages and software engineering.
Fall 2023
Reliable and Trustworthy Artificial Intelligence
Graduate course discussing robustness, privacy, and fairness of machine learning.
Fall 2023
Rigorous Software Engineering
Undergraduate course on building correct software.
Spring 2023
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2023
Research Topics in Software Engineering
Graduate seminar on the latest research trends in the field of software engineering.
Spring 2023
Reliable and Trustworthy Artificial Intelligence
Graduate course involving the analysis, robustness and visualization of neural networks.
Fall 2022
Software Engineering Seminar
Covers latest research trends in the field of programming languages and software engineering.
Fall 2022
Rigorous Software Engineering
Undergraduate course on building correct software.
Spring 2022
Program Analysis for System Security and Reliability
Graduate course illustrating how to develop and apply program analysis and machine learning methods for securing modern software.
Spring 2022
Research Topics in Software Engineering
Graduate seminar on the latest research trends in the field of software engineering.
Spring 2022
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2022
Reliable and Trustworthy Artificial Intelligence
Graduate course involving the analysis, robustness and visualization of neural networks.
Fall 2021
Software Engineering Seminar
Covers latest research trends in the field of programming languages and software engineering.
Fall 2021
Rigorous Software Engineering
Undergraduate course on building correct software.
Spring 2021
Program Analysis for System Security and Reliability
Graduate course illustrating how to develop and apply program analysis and machine learning methods for securing modern software.
Spring 2021
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2021
Research Topics in Software Engineering
Graduate seminar on the latest research trends in the field of software engineering.
Spring 2021
Reliable and Interpretable Artificial Intelligence
Graduate course involving the analysis, robustness and visualization of neural networks, as well as probabilistic programming.
Fall 2020
Research Topics in Software Engineering
Graduate seminar on the latest research trends in the field of software engineering.
Fall 2020
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Fall 2020
Program Analysis for System Security and Reliability
Graduate course illustrating how to apply program analysis and synthesis techniques for securing smart contracts, computer networks, and systems.
Spring 2020
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2020
Parallel Programming
Undergraduate course on parallel programming, co-taught with Prof. Torsten Hoefler.
Spring 2020
Reliable and Interpretable Artificial Intelligence
Graduate course involving the analysis, robustness and visualization of neural networks, as well as probabilistic programming.
Fall 2019
Blockchain Security Seminar
Graduate seminar on the latest research trends in the field of blockchains.
Fall 2019
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Fall 2019
Program Analysis for System Security and Reliability
Graduate course illustrating how to apply analysis and synthesis techniques in the domains of blockchain, computer networks and deep learning.
Spring 2019
Blockchain Security Seminar
Graduate seminar on the latest research trends in the field of blockchains.
Spring 2019
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2019
Parallel Programming
Undergraduate course on parallel programming, co-taught with Prof. Torsten Hoefler.
Spring 2019
Rigorous Software Engineering (Part II)
Undergrad course on software engineering and program analysis.
Spring 2019
Reliable and Interpretable Artificial Intelligence
Graduate course involving synthesis, neural network analysis and probabilistic programming.
Fall 2018
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Fall 2018
Blockchain Security Seminar
Graduate seminar on the latest research trends in the field of blockchains.
Fall 2018
Software Engineering Seminar
Covers latest research trends in the field of programming languages and software engineering.
Fall 2018
Blockchain Security Seminar
Graduate seminar on the latest research trends in the field of blockchains.
Spring 2018
Deep Learning for Big Code
Graduate seminar on new methods and systems for learning from programs.
Spring 2018
Program Analysis for System Security and Reliability
Graduate course illustrating how to apply analysis and synthesis techniques in the domains of blockchain, computer networks and deep learning.
Spring 2018
Software Architecture and Engineering (Part II)
Undergrad course on software engineering and program analysis.
Spring 2018
Parallel Programming
Undergraduate course on parallel programming, co-taught with Prof. Torsten Hoefler.
Spring 2018
Program Analysis and Synthesis
Graduate course on program analysis and synthesis for discrete and probabilistic programs.
Spring 2017
Parallel Programming
Undergraduate course on parallel programming, co-taught with Prof. Torsten Hoefler.
Spring 2017
Reliable and Interpretable Artificial Intelligence
Graduate course involving synthesis, neural network analysis and probabilistic programming.
Fall 2017
Machine Learning for Interactive Systems and Advanced Programming Tools
Covers applications of machine learning to various scenarios in vision and programming.
Fall 2016
Research Topics in Software Engineering
Covers latest research trends in the field of programming languages and software engineering.
Fall 2016
Program Analysis and Synthesis
Graduate course on program analysis and synthesis.
Spring 2016
Research Topics in Software Engineering
Covers latest research trends in the field of programming languages and software engineering.
Spring 2016
Program Analysis and Synthesis
Graduate course on program analysis.
Spring 2015
Programming Systems Seminar
PhD seminar on advances in programming languages, co-taught with Prof. Peter Müller.
Spring 2014
Program Analysis
Graduate course on program analysis.
Fall 2013
Programming Languages Seminar
PhD seminar on advances in programming languages, co-taught with Prof. Peter Müller.
Fall 2013
Software Engineering Seminar
Undergraduate seminar on program analysis and high-performance computing, co-taught with Prof. Torsten Hoefler
Fall 2013
Automated Techniques for Software Reliability
Graduate course on program analysis techniques for software reliability and security.
Fall 2012
Research Topics in Software Engineering
Seminar on advanced topics in programming languages, co-taught with Prof. Peter Müller.
Spring 2012