CS395T Industrial Formal Methods
Fall 2009
Class Information
Course Outline
How can we make sure that the systems (programs you
write, circuits you design) behave in a reliable and
predictable manner? In this course, we will discuss
one approach to address this problem: the use of
mathematical methods to provide high assurance in
correct and secure executions of computing systems.
This approach is called formal verification, and it is
a crucial part of the industrial design validation tool
flow for many critical system and security components.
This course will focus on the industrial application of
formal verification. We will study a variety of
verification problems facing industry today, the
current tools and techniques available to address them,
and the strengths and weaknesses of those techniques.
Our course will focus on challenges in developing
robust, scalable formal verification techniques for
different application domains. We will present
industrial examples from Centaur Technology, Inc. And,
we will present software verification challenges from
publicly-available code.
Throughout the course, we will discuss a number of
research problems of varying complexity, many of which
can lead to Master's theses and Ph.D. dissertations.
In addition, students taking this course will be
prepared to work on large-scale, industrial
verification.
Textbook
There is no textbook. We will point to papers pertaining to various
topics discussed in the class. Handouts may be distributed for some
of the materials.
Grading
The grades will be based on:
- Class Participation (20%)
- Paper Presentation (20%)
- In-class Final (20%)
- Project (40%)
Paper presentation reviews (see below) will not be accepted late.
Projects may be submitted one week late with a 20% reduction in grade.
The examination must be taken at the scheduled time.
Class Participation
This is a seminar course. You are expected to participate actively in
the class discussion. We will keep a record of your class responses.
Homeworks
Sometimes problem sets will be assigned as homeworks. The homeworks
will not be graded; instead, we will discuss the homework in class on
the day it is due. Your comments and responses during the discussion
will count towards your class participation grade.
Paper Presentation
Students will present papers (both classic and recent) discussing
different verification techniques and application domains. Student
presentations will be limited to one hour. We will provide a list of
papers based on the different topics of interest. You are free to
choose your own papers, but if you do, please talk to the instructors
before-hand. When someone presents a paper, the others are expected
to ask questions and provide comments if something is unclear. At the
class after the presentation, each student other than the presenter is
expected to submit a short summary (no more than 2 pages) containing
both a review of the material presented and a critique of the
presentation itself. Your presentation grades will be based on
quality of your own presentation, as well as the quality of your
remarks and review.
Project
We will discuss different project topics as the semester progresses.
If there is some topic that you want to pursue, please come and talk
to the instructors about it. Projects may be done individually or in
groups. More detailed guidelines on projects will be given later.
Class Schedule
Most class lectures will be in two parts. The first part will be a
broad overview of the topic and in the second part we will delve
deeper into a single sub-topic. A tentative schedule is available here. The schedule may be adjusted to suit
the interest of the class.
Students can select either part of a class for presentation.
Scholastic Dishonesty
All submitted work (in reports and tests) must be your own, with the
exception of group work in projects and any other collaboration
explicitly permitted by the instructors. Scholastic dishonesty will
not be tolerated and will be referred to the Dean of Students Office.
Click here
for a summary of expectations from a CS student. If you are unsure
whether some act will constitute scholastic dishonesty please feel
free to contact the instructors or University officials for
clarification.