This course will provide an overview of mathematical models, languages, and methods for
software specification, development, and verification. We will also cover some of the latest trends
including using AI + formal methods for software, in particular: (a) formal specifications in the realm
of AI-based programming, and (b) using AI + Lean proofs to quickly prove soundness of analysis, proof systems, etc.
See Lecture#1 slides for detailed syllabus and topics.
Prerequisites: CS 225; CS 374 or MATH 414. Having taken CS 421 and CS 475 is useful but not required.