CpSc 513: Formal Verification -- Project Ideas

Here, I describe my expectations for a project, and suggest some possible ideas for projects. If you have an idea of what you'd like to pursue for a project, that's great. Look at this list for ideas, and feel free to talk with me and we can brainstorm to find a fun and interesting project.

Basic Expectations for a Project

The goal of the project is for you to go a bit deeper into some aspect of formal verification than what we covered in class. A realistic project should take about 40-60 hours of your time -- a term is 14 weeks; a 3 credit course should be about 9 hours/week of total work; the project is 40% of your grade, that works out to (14 weeks) *(9 hours/week) *.4 = 50.4 hours.

The final product of your project is a report. If you're a M.Sc. student, this report should be a M.Sc. thesis proposal. You're not obligated to do your M.Sc. with me, it's practice for formulating a thesis proposal no matter who you end up choosing to work with. Of course, if you're project leads to our working together, I'll be happy with that as well, but it's not required, and it's certainly not part of your grade. As such, the proposal should:

Typically, a project will include a proof-of-concept implementation of the main idea that you will try on a few examples and report the results. This shows that the basic idea is feasible. It also means that you'll have the experience of doing something with formal methods that goes beyond what we cover in the homework assignments.

I will also consider projects that are primarily a literature survey or address a theoretical aspect of formal methods using paper-and-pencil proofs. A literature survey project will be much more extensive in the papers that it covers (e.g.\ 15-20 papers) and should present them in an organized, coherent way, for example, putting forward a taxonomy of the research approaches and results. If you want to do a literature survey or theory project, please talk to me first.

I am often asked if a team or partner project is acceptable. Yes, but only if there is a really good reason for it. I prefer to avoid projects where student X depends on student Y to pass. If the team or partner project can be divided into separate projects (at least from an evaluation perspective), then I strongly prefer that. Otherwise, the project needs to clearly state who is responsible for what, and the milestones and dependencies make sure that each member of the team has a clear path to success.

Some Project Ideas

This is just a list of some ideas I've been thinking about. Formal methods connect to pretty much any area in computer science, robotics, control, hardware design, and many other areas. The list below are from my current research -- pick one of these, and I'll be eager to get you off to a fast start. I'm just as excited to hear about ideas from your research interests. Let me know what you're interested in, and I'm sure we can find something. This list is just a sample. Many more ideas are available on request. ☺
Just ask. Feel free to let me know what area of theory or application appeals to you. Last modified (GMT)