UW CSE 507: Computer-Aided Reasoning for Software
Graduate course
introducing automated reasoning techniques for the design, analysis, and construction of software
UW CSE 505: Concepts of Programming Languages
Graduate course
using proof assistants to explore transition systems, inductive invariants, type systems, Hoare logic, metatheory
UW CSE 341: Programming Languages
Undergraduate course
exploring informal operational semantics, functional programming vs. OOP, static vs. dynamic typing
UW CSE 331: Software Design and Implementation
Undergraduate course
exploring specification, invariants, testing, debugging, modular design
Special Topics Graduate Courses
★ I was honored to be nominated for the UW Distinguished Teaching Award in 2015.