The exact topics of the lectures are subject to change. We do not anticipate changing any of the other dates (exams, assignments, etc.) To watch the lecture videos, sign in to YouTube using your ...
The handout Automated Theorem Proving contains a complete set of notes as of the indicated date. This includes all incremental handouts with possible corrections and updates. Note that I do not ...
From smart phones, to multi-core CPUs and GPUs, to the world's largest supercomputers, parallel processing is ubiquitous in modern computing. The goal of this course is to provide a deep understanding ...
This course covers the design and implementation of compiler and runtime systems for high-level languages, and examines the interaction between language design, compiler design, and runtime ...
We show how to embed classical logic in intuitionistic logic. This means we can run a theorem prover for intuitionistic logic to prove classical theorems. Of course, theorem proving in classical logic ...
Homework problems are weighted by their point values. The two midterm exams will be weighted based on whichever you perform better on. We will give a higher weight to the exam on which you earn a ...
All programming assignments in this class require Python 3.10 or Python 3.11. There are two options for programming homeworks: you could install Python 3.11 and work ...