Project List

CS 267 Class Project

As a class project you will do a research project on automated verification. You should think of this project as a research project that would be publishable in a workshop or a conference. You can conduct your project as two or three people groups if you can find partners.

Here are four types of projects that could be done for this course:

  1. Case study: Find an application area and an interesting and non-trivial system, program or specification in that area. Use an automated verification tool to analyze it (and hopefully find bugs in it). This type of project may require manual translation or modeling of a system, program or specification to the input language of the verification tool, and manual abstractions or reductions to get the verification tool working.
  2. Translator: Find a language which would benefit from automated verification. Write a translator from this language to the input language of one of the existing verification tools. It may be necessary to make some restrictions on the language in order to make the translation feasible. Find some examples demonstrating the technology.
  3. Tool Extension: Extend one of the existing verification tools by adding a new feature to it. There are a bunch of automated verification tools listed at the end of the class webpage.
  4. Tool: Find a language (or create your own) which would benefit from automated verification. Use verification technologies we will discuss in the class to develop a verification tool for this language.
For all these projects the first thing to figure out is the application area and the language, i.e., to find the thing you want to verify. You have to figure this out as soon as possible. Please choose a topic that is related to your interests so that the project is fun for you!

Project Deliverables

Some Project Topics

Students are welcome to come up with their own project topics related to their research interests. Automated verification is an active area and there are lots of research opportunities both for applying automated verification to new problems and also extending the existing automated verification techniques. Below I will list some project topics that I find interesting: