Course Detail
Units:
3.0
Course Components:
Lecture
Enrollment Information
Enrollment Requirement:
Prerequisites: "C-" or better in (CS 3100 AND CS 4400).
Description
Meets with CS 6110. The main goal of the course is to teach students how to rigorously design and debug complex systems (software, hardware, protocols). We will study theoretical foundations underlying this task, and solve exercises and homework assignments based around actually proving example systems correct. We will also explore practical techniques behind popular verification and debugging tools, such as systematic test generation and symbolic execution. Students completing the course will gain a solid understanding of practical design, specification, and verification techniques and the underlying theory. Furthermore, students will leave with significant hands-on experience.