Course Catalog - 2018-2019

     

COMP 503 - REASONING ABOUT SOFTWARE

Long Title: REASONING AND SOFTWARE
Department: Computer Science
Grade Mode: Standard Letter
Course Type: Lecture
Credit Hours: 3
Restrictions:
Must be enrolled in one of the following Level(s):
Graduate
Prerequisite(s): (COMP 382 AND COMP 215) OR COMP 482 OR COMP 409 OR COMP 509
Description: Our reliance on software of all forms is increasing by the day. As a result, it is more important than ever to ensure that programs function correctly and cannot be exploited by hostile adversaries. The field of formal methods takes on this challenge, developing algorithms and programming methodologies that can be used to formally reason about what happens when software executes on arbitrary inputs, often without actually executing the program. Such reasoning can be used, for example, to identify subtle bugs and vulnerabilities in programs, or to give mathematical proofs of program correctness. This is a hands-on introduction to the field of formal methods. In this class, you will learn the theoretical foundations of these systems; you will also implement a series of systems that can be used to reason about the correctness of C programs. Graduate/Undergraduate Equivalency: COMP 403. Mutually Exclusive: Cannot register for COMP 503 if student has credit for COMP 403.