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: 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.