CS 8803 Formal Modeling and Analysis of Computing Systems
Spring 2002

Instructor:

Pete Manolios

Office:
Office hours:
Email:
Phone:
260 CRB
Tuesday, Thursday 11AM-12PM or by appointment
manolios@cc
404-894-9219

Class Information

Location:
Meeting times:
Web page:
S104 Howey-Physics
Tuesday/Thursday, 4:35PM-5:55PM
http://www.cc.gatech.edu/~manolios/courses/Formal-modeling-analysis/2002-Spring/
This course can be used as a breadth course in the Software Engineering and Information Security areas.

Course Description

This course will cover the fundamental techniques for modeling and formally analyzing computing systems, with a focus on applications in software, hardware, and security. Students will learn the fundamentals of classical logic, induction and recursion, program semantics, rewriting, reactive systems, temporal logic, model checking, and abstraction. We will examine how these methods can be used to verify software, hardware, and security protocols. Students will learn how to use various tools, including theorem proving and model checking tools, and will work in groups to apply the tools to various domains. We will discuss the limitations of current techniques and systems and we will examine promising research directions including building more useful systems and developing more powerful techniques.

Grading

Your grade will be based on the following.
  • Homework:
  • Grading:
  • 2 Exams:
  • Projects:
30%
10%
40%
20%

Notes

  1. Various homework problems will be given, at the approximate rate of one assignment per every two weeks. Late homeworks will not be accepted.
  2. Each problem will be graded by a class member, who is responsible for handing out solutions. I will review the grading and the solutions you prepare and will grade you on the quality.
  3. The projects will be group projects and can consists of 2 to 4 people. They have to be cleared by me. During class, I will toss out project ideas, but feel free to suggest projects based on your interests. If you are using this class to fulfill a breadth requirement, then your project should be in the same area.
    Projects will be presented during class. In addition, a single project report is required. Finally, every member of the team will evaluate the contributions of the other team members. Your project grades will be based on the above.
  4. You are expected to do the reading before class.
  5. You are expected to do the homework assignments on your own without consulting other students or other sources, unless I state otherwise. You can talk to one another about homework problems, but any significant insights gained from any source should be cited. Try to do the homework problems without consulting other students.
  6. Collaboration on projects is allowed and encouraged.
  7. Do not consult outside sources when working on exams. You can use books and papers on the reading list or handouts that I gave you, but you cannot use any other source without explicit permission from me. A corollary is that there should be absolutely no discussion about any of the exam questions.
  8. Academic conduct is subject to the Georgia Tech Honor Code.

Textbooks

Required:

Recommended:
The recommended books should be in the bookstore. I suggest that you evaluate them carefully before buying them.

Tentative Syllabus

What we actually cover will depend on the interests and background of the class and on whether we delve more deeply into some of the topics.
  1. Logic and its mechanization
    1. The ACL2 programming language
    2. Set Theory & Logic
    3. The ACL2 logic
    4. Mechanization of logic
    5. Mechanization of ACL2
  2. Reactive systems
    1. Transformational vs. reactive systems
    2. Safety and liveness
    3. Temporal logic
    4. Model Checking
    5. Abstraction
    6. Combining theorem proving and model checking
    7. Symmetry
    8. Data independence
    9. Parameterized systems