| Instructor | Lectures
Tue/Thu 1:00 - 2:30 Jorgensen 287 |
|||
| Rajeev Joshi | ||||
| Teaching Assistant | ||||
| Mihai Florian |
| Course Description |
|
This course provides an introduction to formal reasoning about correctness of computer programs. We will cover both the theory and practice of program reasoning, focusing more on the practice. Planned topics:
Emphasis will be on working with lots of examples, since programming cannot be learned except "by doing". Students will be encouraged to apply methods taught in class by using freely available verification tools to their programs. |
| Grading |
|
Grading will be based on take-home assignments and a class project. There is no assigned textbook; handouts and lecture notes will be given as needed to supplement material taught in class. CS 116 is a companion course to |
| Catalog Entry |
| CS 116. Reasoning about Program Correctness. 9 units (3-0-6); first term. Prerequisite: CS 1 or equivalent. This course presents the use of logic and formal reasoning to prove the correctness of sequential and concurrent programs. Topics in logic include propositional logic, basics of first-order logic, and the use of logic notations for specifying programs. The course presents a programming notation and its formal semantics, Hoare logic and its use in proving program correctness, predicate transformers and weakest preconditions, and fixed-point theory and its application to proofs of programs. Instructor: Joshi. |