Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
Teaching
2022 Autumn, UW CSE 341: Programming Languages
π
π§βπ«
TA: Jacob Van Geffen, Oliver Flatt, Riya Dheer, Nuha Qadir, Anirudh Suresh, Deeksha Vatwani
2021 Spring, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
β
Co-taught with James R. Wilcox
π§βπ«
TA: Gus Smith, Audrey Seo, Anjali Pal
2021 Spring, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
β
Co-taught with James R. Wilcox
π§βπ«
TA: Brendan Murphy, Jack Zhang, Mike He, Yihong Zhang
2021 Winter, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
2020 Spring, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
2020 Winter, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
2019 Spring, UW CSE P505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: James R. Wilcox
2019 Winter, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
TA: Brendan Murphy, John Toman, Kush Gupta, Meha Agarwal, Melissa Hovik, Sven Hansen
2018 Autumn, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: Talia Ringer
2018 Spring, UW CSE 331: Software Design and Implementation
π
Specification, invariants, testing, debugging, modular design
π§βπ«
2018 Winter, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
2017 Autumn, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
β
Co-taught with Leonardo de Moura
π§βπ«
TA: Jared Roesch
2017 Spring, UW CSE 599Z: Accurate Computing
π
Special topics seminar on numerical computing and computational fabrication
2017 Winter, UW CSE 331: Software Design and Implementation
π
Specification, invariants, testing, debugging, modular design
π§βπ«
2016 Autumn, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: Konstantin Weitz
2016 Spring, UW CSE 599W: Systems Verification
π
Special topics seminar on formally verifying systems implementations
β
Co-taught with Xi Wang, Bryan Parno
2016 Winter, UW CSE 331: Software Design and Implementation
π
Specification, invariants, testing, debugging, modular design
π§βπ«
2015 Autumn, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: Doug Woos
2015 Spring, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
TA: Gurwinder Gulati, Max Sherman, Riley Wilk, Stuart Pernsteiner
2015 Winter, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: Eric Mullen
2014 Spring, UW CSE 341: Programming Languages
π
Informal operational semantics, functional programming vs.Β OOP, static vs.Β dynamic typing
π§βπ«
TA: Armando Diaz Tolentino, Max Sherman, Riley Klingler
2014 Winter, UW CSE 506: Advanced Topics in Programming Languages β Proof Assistants
π
Special topics seminar on dependent types and systems verification
2013 Autumn, UW CSE 505: Concepts of Programming Languages
π
Transition systems, inductive invariants, type systems, Hoare logic
π§βπ«
TA: James R. Wilcox
β I was honored to be nominated for the UW Distinguished Teaching Award in 2015.
Summer School Courses
Verifying Distributed Systems Implementations in Coq