Units: 4
Hours: Lecture, 3 hours; outside research, 1.5 hours; written work, 1.5 hours
Catalog page 202
Prerequisites: CS 152, CS 181, or equivalents
Description: Introduces the techniques for analyzing program semantics and correctness. Covers simply- typed lambda calculus, as well as basic and advanced type systems. Presents axiomatic, operational, and denotational semantics. Explores programming- language constructs and tools for specifying, reasoning, and verifying correctness properties. Includes safe memory accesses and safe concurrent programming or security. May be taken Satisfactory (S) or No Credit (NC) by students advanced to candidacy for the Ph.D.