Runtime Verification is a lightweight formal method for checking program executions against specifications. Foundations, algorithms, and tools for major approaches to runtime verification will be covered, including monitor synthesis, specification languages, parametric monitoring, monitorability, instrumentation, and static analysis for reducing runtime verification overhead. Students will become familiar with recent research results and challenges in runtime verification, gain experience with runtime verification tools, and conduct a research project.
Prerequisites. Graduate standing (Ph.D, MS, or MEng) in CS or CS majors with CS 3110 grade of B+ or better. Experience with Java programming will be helpful for programming assignments.
This is a research-oriented software engineering course. It will include lectures, reading research papers, homeworks, in-class discussions, and a research project. Final course grades are based on the following:
- There will be 2 -- 3 homework assignments.
- Students must work individually on each homework and submit on Canvas by the due date.
- Readings to complement in-class discussions will be noted in the schedule.
- Students will review assigned readings and add 2 -- 3 unique questions to a shared document.
- Questions will be due by 11:59pm AOE the day before class, on the shared document.
- Students may skip or submit questions late for up to 3 times without penalty. After that, each skip or late submission will result in a 0 grade for that reading.
- There will be occassional in-class activities.
- In-class participation activities will NOT be announced in advance.
- Students may miss one in-class participation activity without penalty.
|Presentations and discussion lead
- Students will lead the discussion of one research paper.
- Schedule a meeting with Owolabi a week before you are due to lead a paper discussion.
- Discussion leads do not have to submit questions for the paper that they are in charge of.
- To be completed individually or in self-selected groups.
- We will discuss possible projects early in the semester.
- Project grade will be based on the quality of the progress made, rather than on the length of the reports. Each project phase will attract the following proportions of the total course grade:
- Project proposal and literature review (up to 2 pages): 10%
- Intermediate Project Report (2 -- 4 pages): 15%
- Project Presentation: 10%
- Final Project Report (6 -- 10 pages): 25%
- We are using Canvas or CMS as course management systems. Announcements will be posted there.
may be used for preparing the various project reports.
- Some readings may be assigned from a free, work-in-progress book on runtime verification and from publicly available research papers that will be linked in the schedule section.
- There will be periodic homework assignments in Java. Instructions for installing Java and associated software can be found here.
- Projects and homework will involve applying a runtime verification tool on open-source projects that use Maven as a build system. Brief introductions to Maven can be found here and here.
- If you need to brush up on your Java skills, invest some time studying the following resources:
- Runtime Verification -- A website about history, events, resources, and leadership in the broader runtime verification community.
Students are expected to know and abide by Cornell's policies on academic integrity, including:
Academic integrity violations will be prosecuted aggressively. If you are not sure what constitutes an academic integrity violation, please ask.
Special Needs and Wellness
We provide accommodations for disabilities. Students with disabilities can contact Student Disability Services
at 607-254-4545 or the instructor for a confidential discussion of their individual needs.
If you experience personal or academic stress or need to talk to someone who can help, contact the instructor or: