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).
Credit: May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.