CS 246 - Advanced Verification Techniques in Software Engineering
Spring 2011


 
Instructor: Gianfranco Ciardo (ciardo@cs.ucr.edu)
Lectures: Mon/Wed 2:10pm - 3:30pm, Room SPR 1358
Textbook: Christel Baier and Joost-Pieter Katoen. Principles of Model Checking. 2008, MIT Press
Instructor office hours: Tue/Thu 11:10am - 12:00pm, Room EBUII 442
Final project due: Fri, June 10 at 3:00pm
Prerequisites: CS 111 or MATH 111, CS 141, and CS 150 (or equivalent courses)

Catalog description: A study of advanced techniques to specify and examine the correctness of complex systems and software. Focuses on concurrent and distributed behavior, formal description languages, temporal logics, model checking and symbolic model checking, partial order reduction, and the use of verification tools.


Course material

In addition to the class textbook, the following excellent books might be a useful reference:
  • B. Berard et al. Systems and Software Verification. 2001, Springer-Verlag.
  • Edmun M. Clarke, Orna Grumberg, and Doron A. Peled. Model Checking. 1999, MIT Press.
  • Michael R. A. Huth and Mark D. Ryan. Logic in Computer Science, Modelling and reasoning about systems. 2001, Cambridge University Press.
  • Doron A. Peled. Software Reliability Methods. 2001, Springer-Verlag.

    Relevant course material will be posted here.
    lec01.pdf (courtesy of Prof. Katoen)
    lec02.pdf (courtesy of Prof. Katoen)
    lec03.pdf (courtesy of Prof. Katoen)
    lec04.pdf (courtesy of Prof. Katoen)
    lec05.pdf (courtesy of Prof. Katoen)
    lec06.pdf (courtesy of Prof. Katoen)
    lec07.pdf (courtesy of Prof. Katoen)
    lec08.pdf (courtesy of Prof. Katoen)
    lec09_10.pdf (courtesy of Prof. Katoen)
    lec11.pdf (courtesy of Prof. Katoen)
    lec12_13.pdf (courtesy of Prof. Katoen)
    lec14_15.pdf (courtesy of Prof. Katoen)
    lec16.pdf (courtesy of Prof. Katoen)
    lec17.pdf (courtesy of Prof. Katoen)
    lec18.pdf (courtesy of Prof. Katoen)
    lec19.pdf (courtesy of Prof. Katoen)
    lec20.pdf (courtesy of Prof. Katoen)
    lec21.pdf (courtesy of Prof. Katoen)
    lec22.pdf (courtesy of Prof. Katoen)
    lec23.pdf (courtesy of Prof. Katoen)
    CS246-spring2011.pdf (material on symbolic model checking)


    Attendance and basic etiquette

    You are required to attend, follow, and actively participate in all lectures. All lectures start at the stated time. Avoid being late coming to class, as this is very disruptive.

    You are requested to refrain from using electronic devices (laptops, cell phones, music players, etc.) during lectures. The only exception is that you can use your laptop to look at the provided class material for the class and to take notes. If, for some compelling reason, you need to be on call, be sure to put your cell phone in silent mode, and excuse yourself from the class if you need to take a call.

    Analogously, when you come see me or the TA, please turn your cell phone off.


    Guidelines for preparing written documents

    To improve the terseness and readability of the written documents you will turn in for this course, such as your homeworks and projects, I am requiring you to typeset your homeworks in LaTeX, available on our Linux system. I provide examples of LaTeX files for you to learn how to format particular equations. If you are not familiar with LaTeX, don't wait learning it until your first homework is due!

    Pictures, diagrams, and graphs can be drawn using tgif (which is free and runs on a variety of platforms), or OmniGraffle (which runs only on Macintosh computers and is a commercial product), or any other drawing tool that can generate correct "eps" files, which are then included into LaTeX.

    Here is an example of how to include a file Figure.eps, generated from the TGIF file Figure.obj, into a file Figure.tex.

    Notation is very important in our field. I have prepared a table of symbols I most frequently use. You can retrieve the LaTeX source Notation.tex, or the pdf file Notation.pdf obtained from it.

    For presentations, you are encouraged to use LaTeX as well (I do!), but it is acceptable to use other software packages such as Microsoft Powerpoint or Apple Keynote.


    Homeworks (50% of your grade)

    Assigned homeworks are due in hard copy on the due date at the beginning of class. If a homework requires more than one sheet of paper, please staple the sheets on the upper left corner and put your name at the top of each sheet.

    Each problem carries a weight (usually 10, 25, 50, 75, or 100 points) and students are required to solve all problems. The grade on each problem is a number between 0 and its weight. The overall grade for the homeworks as a whole, on a scale of 0 to 1, is determined by summing all individual grades and dividing the result by the sum of all weights.

    The students in the class are allowed to discuss the homework problems among themselves and with me and the TA, but not with anybody else. An empty hand policy must be observed when you meet with other classmates: you are free to discuss any aspect of the homework, but you must leave the meeting without any record (on paper, tape, or electronic) of these discussions. This is because the actual writing of the detailed homework answers must be an individual activity, so that each student can receive an individual grade for each homework.

    Unless stated otherwise, sharing of information in permanent format (such as accessing someone else's files, hardcopy outputs, or handwritten notes), will be considered an act of cheating. If you have even the slightest doubt about whether a certain activity is admissible, ask me before you do it!

    You are of course allowed, actually encouraged, to consult other reference material in addition to your textbook and class notes. However, if you used this reference to derive the anser to an exercise, you must give it proper credit in your write-up. In no case you should copy verbatim from a reference without proper attribution (even if it is your own!), as this is plagiarism.

    I do not accept late homeworks except for justifiable reasons, such as an illness with a doctor's written note.

    Homeworks will be posted here.

    Homework 1 (due April 11, 2011): Exercises 2.2 (50pts) and 2.9 (50pts) from the textbook.

    Homework 2 (due April 25, 2011): Exercises 3.6 (50pts) and 3.11 (50pts) from the textbook.

    Homework 3 (due May 2, 2011): Exercises 4.1 (50pts), 4.5 (50pts), and 4.7 (50pts) from the textbook.


    In-class presentation (10% of your grade)

    You will be required to choose a paper from the literature and present it in class using a laptop and projector (which I will provide if not available). To avoid repetions and ensure relevance, you must clear with me your choice of paper and, if your choice has already been assigned to another student in the class (I use a first-come-first-served policy) or if I do not approve of your choice, you will have to choose a different paper.

    Since the presentations are necessarily allotted a short class time, it is essential to focus on the main idea. In particular, there is no need to cover background material similar to that presented in class, as we should all be familiar with it. It is also essential to prepare clear foils that every student in the class can understand and follow (not just the speaker), and to practice the presentation multiple times to ensure it flows well in the allotted time.

    This is the current list of proposed/assigned presentations.

    The presentations will take place on Wednesday, May 18, 2011 starting at 5:30pm in room A171 of Bourns Hall (not EBUII!!!).

    Each presentation will be allocated 20 minutes. We will have a break for PIZZA.

    You must send me a pdf file of your presentation by 5:00pm, so that I can load them on my laptop.


    Project (40% of your grade)

    There will be a project due Wednesday, June 8 at 10:00am, in hard copy form (slid it under my door if I am not in my office). This is normally the result of individual work, on a topic previously agreed upon with the instructor. However, depending on the class size and project topic, I might approve multiple-student projects, provided each student has a clearly defined portion for which he or she is responsible. A project proposal will be required at least tree weeks before the end of classes. Various types of projects can be proposed, for example: (1) conduct a case study of a substantial system using one or more verification tools, (2) compare verification tools on a realistic set of benchmarks, (3) implement a new algorithm in a verification tool, (4) develop the theory for a new analysis algorithm, (5) survey a group of papers on a common topic related to model checking and write a substantial comparative study about them. A mixture of the above, e.g., (1) and (2) or (3) and (4) might be appropriate. It often makes sense for your project to be an extension of the results of, or at lest be inspired by, the paper you presented in class.

    The list of assigned projects will be posted here.


    Final grade policy

    An overall grade of at least 90% results in a final grade A.
    An overall grade of at least 80% but less than 90% results in a final grade B.
    An overall grade of at least 70% but less than 80% results in a final grade C.
    An overall grade of at least 60% but less than 70% results in a final grade D.
    An overall grade of less than 60% results in a final grade F.

    I reserve the right to raise the final grade, but not to lower it: if your overall grade is 89%, I might decide to give you an A- or a B+, but if it is 80% you are guaranteed at least a B.


    Last updated: March 29, 2011
    Report suggestions and problems to ciardo@cs.ucr.edu
    URL: http://www.cs.ucr.edu/~ciardo/teaching/CS246/CS246syllabus.html