Eugenia Ternovska
Course Number: CMPT 477 (cross-listed with 777)
Credit Hours: 3 Vector: 3-0-0
Course Description:
The goal of formal verification is to prove correctness or to find mistakes in software and other systems. This course introduces, at an accessible level, a formal framework for symbolic model checking, one of the most important verification methods. The techniques are illustrated with examples of verification of reactive systems and communication protocols. Students learn to work with a model checking tool such as NuSMV.
Prerequisite: CMPT 275
Recommended: None
Corequisite: None
Special Instructions: None
Course(s) dropped if if this course is approved: None
Will this be a required or elective course in the curriculum?
Elective for now. I intend to propose it as a required course for the software engineering stream in the future. It would increase the proportion of courses with formal content in this stream, which is currently quite low.
Probable enrollment when offered? Around 30
Indicate Semester and Year this course would be first offered and planned frequency of offerings thereafter.
Spring 2006 and annually thereafter
Which of your present CFL faculty have the expertise to offer this course? Will the course be taught by sessional or limited term faculty?
E. Ternovska
Are there any proposed student fees associated with this course other than tuition fees?
No
Is this course considered a `duplicate' of any current or prior course under the University's duplicate course policy? Specify, as appropriate.
No
Senate has approved (S.93-11) that no new course should be approved by Senate until funding has been committed for necessary library materials. Each new course proposal must be accompanied by a library report and, if appropriate, confirmation that funding arrangements have been addresssed. Does the course require specialized space or equipment not readily available in the department or university, and if so, how will these resources be provided?
The library already has both the required and the recommended books. Computing resources: CSIL (Computer Science Instructional Lab)
OBJECTIVE and DESCRIPTION:
Please note that this course is cross listed with CMPT 777
Real software systems are extremely complex. In the software industry, formal verification methods are increasingly used to verify that a model of a software system satisfies the requirements. The course concentrates on contemporary applications of logic to the verification of software systems. The objective is to introduce, at an accessible level, a mathematical framework for symbolic model checking, one of the most important verification methods. The techniques are illustrated with examples of verification of reactive systems and communication protocols. Students learn to work with the model checking tool SMV.
TOPICS:
GRADING:
TEXTBOOKS: Logic in Computer Science: Modelling and Reasoning about Systems, Michael R. A. Huth and Mark D. Ryan, Cambridge University Press, 2nd edition.
REFERENCES: Model Checking, E. M. Clarke, O. Grumberg and D. Peled, MIT Press, 2000