Course Detail
Course Components:
Meets with CS 5110. 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.