CS598 - Runtime Verification (Spring 2017)
Students enrolled in this class are expected to check this web page regularly. Complete lecture notes will be posted here.
Runtime verification (RV) is a software analysis approach where programs are formally analyzed as they execute. This can be done using program instrumentation, or using special execution environments (for example, a semantics-based symbolic execution engine), or both. In its most simplistic form, RV can be used to detect or predict bugs in programs. In a more sophisticated form, RV can be used to prove programs correct by systematically executing programs on all their (symbolic) paths. The course will cover the major RV approaches and techniques, as well as semantic foundations.
By the end of the course, students are expected to master the major RV approaches, at both the foundational and the algorithmic levels. They will also read and present papers on RV, and will likely do a (joint) project that falls at the intersection of their area of interest and RV. Since RV is a relatively new area, the course will also stimulate research ideas and possibly lead to some publications.
- Meetings: W/F 14:00 - 15:15, 1131 Siebel Center
- Credit: 4 credits
- Professor: Grigore Rosu (Office: SC 2110)
- Office hours: Held by Grigore Rosu in SC 2110; by appointment.
Lecture Notes, Useful Material
The links below provide you with useful material for this class, including complete lecture notes. These materials will be added by need.
- Introduction slides
- Some runtime verification systems to try out:
|HW1 (due Friday, February 10)|
Exercise 1 (page 16); Exercises 2,3,4,5,6 (page 36); Exercise 7 (page 51).
- Monitoring ERE is Non-Elementary (Section 6.1) Book Draft (version 3)