General Information:

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

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

There are no exams in this class.

To encourage hands-on experience, there will be 4 verification and specification assignments involving prototype-quality verification CASE tools. These assignments are mandatory for students taking this course for credit and auditors. In addition, each student registered for this class will have to complete a research project to specify and verify a larger example using one of the tools we studied or one of his/her choice. Reports on the projects will be written up, and results will be presented in class.

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

Marking Scheme:

Assignment 1 10%
Assignment 2 10%
Assignment 3 10%
Assignment 4 10%
Class participation 20%
Research project 40%

Class participation includes presentations of assignments.

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