Prerequisites: CS 141, CS 150, or equivalents; graduate standing
Description: Introduces techniques to verify that software runtime behavior meets its specifications. Topics include model checking (safety, liveness, temporal logics, and abstraction), static and dynamic analysis (data flow analysis, concept analysis, program slicing, and invariant detection), testing (test generation, prioritization, suite reduction, and regression), and automated debugging (fault location and visualization). May be taken Satisfactory (S) or No Credit (NC) by students advanced to candidacy for the Ph.D.