CS6389: Formal Methods and Programming Methodology
Course Title: Formal Methods and Programming Methodology
Time: MW; 5:30 - 6:45 PM
Place: JO 3.534
Instructor: Gopal Gupta
Office & Phone: EC 3.610, 972-883-4107
Office Hours: MW. 4:15--5:15 PM.
Text Book: Model Checking
by E. Clark, O. Grumburg, D.A. Peled. MIT Press.
We will study various techniques that have been devised for
formal verification of software systems, i.e., techniques that allow a
programmer to formally claim that his/her software system works
correctly under all circumstances. Formal verification is important
for many software systems, especially those that are safety
critical. Formal verification is something more than testing since
testing increases a programmer's confidence for
only those cases for which the software has been tested.
Major part of the course will deal with a verification technique
called Model Checking. Other formalisms such as
Statecharts, Petrinets, timed automata, and logic-based techniques,
will be covered as well.
Course will include programming assignments involving use of
a model checker.
CS 6354; Must know automata theory (CS5349)
There will be no exams. There will be assignments
involving using a model checker which will involve
programming. Towards the end of the course, students
will be required to make a presentation in one of
the classes based on a paper that they will read.
This will be a lecture/discussion oriented course.
We will be closely following the textbook for the
Model checking part. For other topics, we will switch
to reading papers that I will provide.