CS 286: Verification & Validation of Software Systems. This course gives an overview of formal methods and advanced tools that are used for the Verification and Validation of Software Systems. Many modern Software Engineering tools are based on formal methods, so a solid knowledge of the underlying principles is important for the effective use of those tools. This course will give a basic introduction into logic and will discuss methods and tools for the processing of logic problems, like SAT solvers, Automated Theorem Provers, and Model Checkers. Detailed examples will be presented to illustrate the widespread applications of such tools in Software Engineering, in particular for the development of safety-critical and embedded code. The course will focus on the automatic checking of behavioral properties, property-based verification, code analysis, and the automatic generation of test cases. Prerequisites: CS 160 and CS 154, or instructor consent. Fundamentals of Software Engineering, Programming, and Algorithms, Formal Methods Instructor: Dr. Johann Schumann URL: http://ti.arc.nasa.gov/people/schumann/ email: Johann.M.Schumann@nasa.gov