Exercises will be posted here as they become available. I expect to give roughly 4-5 exercises (in addition to the project) over the course of the semester.
The 24 hour late policy does not apply to this assignment. All files/hard copies must be turned into me by 4pm on Thursday. If I don't have your assignment hard-copy in hand by 4pm Thursday, I won't grade it.
The 24 hour late policy does not apply to this assignment. All files/hard copies must be turned into me by class on the due date. If I don't have your assignment hard-copy in hand at that time, I won't grade it.
Due to time constraints on when I must submit final grades, I will not accept late assignments.
This assignment is purely optional. The grade on this assignment will roughly replace a poor grade on an earlier homework.
Your final project will take one of the following three forms (your choice):
Modeling and verification of a substantial design using one of the tools that we discuss in class.
Modeling and verification of a reasonable design using a tool that we do not discuss in class. Your project should contrast your experience with the new tool with what you would have expected from verifying the same design in the tools that we used in class.
A survey paper (roughly 10-15 pages) describing and contrasting the state-of-the-art approaches to verification in a particular problem domain.
In general, these will be individual projects. However, I will consider team projects provided you propose a project of sufficient scale to warrant multiple team members.
In each case, you will turn in a report describing your project and give a brief presentation on your project to the class at the end of the semester (presentation duration to be determined once I know how many students are enrolled).
You must submit a short project proposal and have me approve it. Proposals will be due sometime mid-semester. Start thinking about the kind of project you would like to do. Possible domains include aspect-oriented verification, security protocols, e-commerce protocols, graphical-user interfaces, wireless network protocols, particular computer architectures, embedded software systems, etc. I'm glad to help you develop project ideas if you ask.
By class on Tuesday, March 12, you must turn in a one-page project proposal.
If you are doing a verification project in SMV, describe the problem you are going to verify, where you are getting the specification from, and what properties you expect to verify.
If you are doing a verification project in a different tool, describe the nature of the tool and its special features (ie, what's different from SMV that makes it interesting to try), the problem you are going to verify, where you are getting the specification from, and what properties you expect to verify.
If you are doing a survey paper, describe the topic you are surveying, provide a list of the papers you plan to read, and provide a list of the questions that you intend to address in writing your survey (ie, how are comparing these papers? -- these make your project a survey comparison rather than a book report).
Final reports are due in hard copy to my office or mailbox by 5pm on April 26th (the last day of grad classes).
If you are doing a verification project (either in SMV/Alloy or in some other tool), your report should contain (not necessarily in this order):
If you are doing a survey paper, your report should contain
In both kinds of projects:
Project presentations will occur over the last two meetings of the course. Prepare a 15 minute presentation. We'll also have a few minutes for questions. Presentations should use transparencies or Powerpoint (or something similar).
NOTE: If you use Powerpoint, we can run the talk off of my laptop. However, my laptop doesn't have a floppy drive, so you need to send me your presentation via email or a URL by 4pm on your presentation day.
When grading your presentations, I'll be looking for clarity, technical accuracy, and coherence. For example:
You do not need to explain every aspect of your project in the 15 minutes. A good presentation on part of the project will be better than a rushed, shallow presentation on the whole project. If you present only part of your project, make sure you present some of your own work (ie, if you are using a new tool, don't just give a tool demo -- also talk about the problem you are modeling and your experience with the tool on your problem).
This page maintained by Kathi Fisler
Department of Computer Science Worcester Polytechnic Institute