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.