CS 345H is an advanced undergraduate course on the theory and practice of programming languages. We'll explore the formal foundations of programming languages, including type systems and program semantics, and see how we can use these foundations to reason precisely and mathematically about "what programs do". We aim to distill the essence of programming languages, rather than learning any specific language in great detail, and wield that knowledge to build more reliable software systems.
CS 345H is also cross-listed as CS 386L, the graduate-level version of this course.
Instructor: James Bornholt
Teaching Assistants: TBD
Lectures: Tuesday and Thursday, 9:30am–10:50am, UTC 3.122
Office Hours: TBD