General Information:

Instructor:
Marsha Chechik
Email:
chechik@cs.toronto.edu
Office Hours:
Tuesdays after class and by appointment
Office:
D.L. Pratt 384, X3820
Lectures:
Tuesdays 1-3 p.m., LP378
Class Homepage:
http://www.cs.toronto.edu/~chechik/courses/2124

Course Description:

Several notations and methods have been developed to help the designer specify clear and unambiguous system requirements, verify that the requirements are consistent and correct, and verify that the refined design meets its specification. However, these methods are time-consuming and error-prone, and can be applied more effectively if there are tools to check their correctness.

The goal of the course is to emphasize formal notations and methods that have tool support. We will cover just the very basis of underlying theory for the tools. Discussed techniques include but not limited to

Coursework and Marking Scheme:

To encourage hands-on experience, there will be 3 verification and specification assignments involving prototype-quality verification CASE tools. Assignments can be done in groups of 1-3 students.

The topics of the assignments are tentative and may be changed if there is enough interest.

In addition to the assignments, each student taking the course for credit must conduct an independent study of a more complex specification or verification problem (or learn and use another verification tool). Reports on the projects will be written up, and results will be presented in class.

Prerequisites:

Graduate standing. Experience with formal methods, although helpful, is not necessary. However, the course assumes familiarity with basic computer science concepts: relations and functions; boolean and first-order logic (from undergrad discrete-math course), and finite-state machines.


Marsha Chechik