22c/055:181 (CS:2820/ECE:5810)

Formal Methods in Software Engineering

Department of Computer Science

The University of Iowa

Fall 2013

Course Syllabus

Lectures

Mon, Wed 3:30pm - 4:45pm, 201 CEF.

Instructor

Prof. Cesare Tinelli
201D MLH
319-335-0735
cesare-tinelli(AT)uiowa(DOT)edu

Office hours: Mon/Wed 5pm-6pm, Tue 3:30pm-5pm, and by appointment.

Teaching Assistants

Ben Berman
101N MLH
319-335-2839
benjamin-berman(AT)uiowa(DOT)edu

Office hours: Tue/Wed/Thu 11am-12noon, and by appointment.


Jamie Moore
201G MLH
319-335-0713
jamie-e-moore(AT)uiowa(DOT)edu

Office hours: Tue 1:30pm-3:30pm, and by appointment.

Prerequisites

22C:022 (CS:2810) or 055:033 (ECE:3330), or equivalent.

Web Page

Most of the information about the class, including handouts and assignments, will be available from the class web site:

http://www.cs.uiowa.edu/~tinelli/181

Students are expected to check both the web site and its related ICON bulletin board on a regular basis (at least every other day) for announcements regarding the course.

Course Purpose

The purpose of formal methods is to enable the construction of highly reliable software. Their foundation is the precise specification of the run-time properties that a software system is expected to satisfy. The case for having precise specifications is fairly clear: without a precise specification of the software system to be built it is not possible tell that the right system is being built. Formal methods are concerned with specifications that are precise for being stated in languages endowed with a formal syntax, semantics, and theory. Formality helps the specification process in at least two ways:

  1. it naturally leads to unambiguous, high-quality specifications, and
  2. it provides the bases for automated tool support.

As we will see, formal specification techniques allow for the construction of automated verification tools that can perform tests on specifications and corresponding code to find errors in requirements, models, designs, and implementations. In this course, we will study a collection of techniques for formal software development, spanning the whole development process: from high-level semantic modeling to coding and debugging. The study will not be done in the abstract, however, but through the use of actual tools supporting these techniques.

Students should be prepared to put in considerable time and effort into reading to become familiar with the course's topics, and into homeworks and exercises to gain experience with the techniques seen in class.

Textbook and readings

There is no required textbook for this course. All reading materials will be made available through the course web site. They will include several papers on formal software specification and verification, a number of papers on how to use the specification/verification tools adopted in the course, and various class notes and handouts.

The formalisms used in this class are ultimately based on propositional logic and on first-order logic (predicate calculus). A suggested reference for background knowledge in such logic is

Michael Huth and Mark Ryan. Logic in Computer Science. Cambridge University Press, 2004 (2nd edition).

A copy of this book will be on reserve in the Engineering Library.

Computer Accounts and Software

For this course, it is helpful to use your account on computer science machines because they will have a working installation of the software tools used in class. Instructions on how to access those machines, on-site or remotely, and use the installed software will be provided on the course website and during the discussion sections.

Although you are welcome to your own computer for course work, you are responsible for installing all the necessary software. We regret that will not be able to provide assistance for any problems with your own installation.

Homework Assignments

A few small exercises will be given during the course of the semester, covering the material from the textbook and the lectures. These exercises are required but will not be collected or graded.

For each main topic there will be a graded introductory assignment and a graded mini-project, both to be done in small teams. Each student on a team will be expected to complete a similar amount of work and to contribute equally to the final project. You will complete a self-evaluation and a team evaluation, describing this equality or the lack of it during the team's work. More information on this will be posted on the course website.

Exams

There will be one one take-home final exam, to be done individually. Do not share or do your final exam with others. Exams showing strong similarities and/or duplication will be considered the result of academic dishonesty (see Cheating Section below).

Grading

The weighting of items in grade determination will be the following:

Assignment 20%
Mini Projects 30%
Final Exam 50%

The following cutoffs will be used to determine letter grades. In the ranges below, x stands for your total score at the end of the semester. Final scores near a cutoff will be individually considered for the next higher grade. Plus(+) and minus(-) grades will also be given; their cutoffs will be determined at the end of the semester.

Score Grade
88 <= x < 100 A
75 <= x < 88

B

60 <= x < 75 C
50 <= x < 60 D
00 <= x < 50 F

Grades are not curved in this course. It is theoretically possible for everyone in the class to get an A (or an F). Your final grade depends only on your own performance and not on that of others.

Academic Excellence and Workload

The University of Iowa expects students to set high academic standards for themselves and work hard towards achieving them (recall the Iowa Challenge). You can achieve true academic excellence only through dedicated work. An average workload of 6 hours a week besides class attendance should be considered the norm for this course. More effort might be needed depending on your background, predisposition and academic ambition.

Cheating

Academic dishonesty will not be tolerated. In particular, under no circumstances should you pass off someone else's work as your own. This also applies to code or other material that you might find on the internet.

Graded homework Sharing solutions of graded homework between teams or copying someone else's work, including posted solutions from previous editions of the course, is not allowed. Doing that will result in a zero on the assignment and a report to the CS department's chair and the college.
You are allowed and encouraged to discuss with students in other teams concepts and ideas that relate to the class and the homework assignments. However, it is important to ensure that these discussions do not lead to the actual exchange of written material.

Final exam The final take-home exam for this course is not a collaborative project and must be completed by the student without help from others. Exams showing strong similarities and/or duplication will receive a fail grade and the students involved reported to the Department and the College.

If you are unclear about what constitutes academic dishonesty it is your responsibility to contact the instructors or consult the CLAS policy (online version).

Be aware that repeated academic dishonesty offenses lead to suspension or expulsion from the University.

Course Policies

Communicating with the instructors: We welcome email questions related to the course.

Please include 22c:181 in the subject line to help us get to your e-mail quickly.

We will occasionally send email announcement to all students in the class and you are responsible for all official correspondence sent to your Hawkmail address (see General CLAS Policies on electronic Communication below).

Assigned readings: Students are expected to study all the material assigned as required readings, even if that material is not explicitly discussed in class or in the homeworks.

Optional readings and discussions: Students are encouraged to consult material other than the one provided on the course's web site, including both reserve books and other on-line material, even if there is no directed outside reading assignment. Students are also encouraged to discuss the course topics with their classmates. It is a genuinely helpful learning activity having to formulate one's own thoughts about the material well enough to express them to others.

Attendance: Students are expected to attend all classes, in person or on-line depending on their section. Their knowledge and therefore their grade depends on it. They are responsible for all announcements and material covered during class even if they did not attend.

Extra credit: No extra-credit assignments or tests will be given on an individual basis (although they maybe given to the whole class).

Make-up exams: Make-up exams will be offered only if there is a serious, documented reason for not being able to take a scheduled exam, and if the request is made at least a week before the exam.

Regrading: Students thinking a graded assignment or test has been misgraded and deserves a regrading are invited to let the instructor know. The instructor welcomes and will give full consideration to all well motivated regrading requests.

General CLAS Policies

Administrative Home: The College of Liberal Arts and Sciences is the administrative home of this course and governs matters such as the add/drop deadlines, the second-grade-only option, and other related issues. Different colleges may have different policies. Questions may be addressed to 120 Schaeffer Hall, or see the CLAS Academic Policies Handbook at http://clas.uiowa.edu/students/handbook.

Electronic Communication University policy specifies that students are responsible for all official correspondences sent to their University of Iowa e-mail address (@uiowa.edu). Faculty and students should use this account for correspondences (Operations Manual, III.15.2, k.11).

Accommodations for Disabilities: A student seeking academic accommodations should first register with Student Disability Services and then meet privately with the course instructor to make particular arrangements. See www.uiowa.edu/~sds/ for more information.

Academic Honesty: All CLAS students have, in essence, agreed to the College's Code of Academic Honesty: "I pledge to do my own academic work and to excel to the best of my abilities, upholding the IOWA Challenge. I promise not to lie about my academic work, to cheat, or to steal the words or ideas of others; nor will I help fellow students to violate the Code of Academic Honesty." Any student committing academic misconduct is reported to the College and placed on disciplinary probation or may be suspended or expelled (CLAS Academic Policies Handbook).

CLAS Final Examination Policies: The final examination schedule for each class is announced around the fifth week of the semester by the Registrar. Final exams are offered only during the official final examination period. No exams of any kind are allowed during the last week of classes. All students should plan on being at the UI through the final examination period. Once the Registrar has announced the dates and times of each final exam, the complete schedule will be published on the Registrar's web site.

Making a Suggestion or a Complaint: Students with a suggestion or complaint should first visit with the instructor (and the course supervisor), and then with the departmental DEO. Complaints must be made within six months of the incident (CLAS Academic Policies Handbook).

Understanding Sexual Harassment: Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. All members of the UI community have a responsibility to uphold this mission and to contribute to a safe environment that enhances learning. Incidents of sexual harassment should be reported immediately. See http://www.sexualharassment.uiowa.edu/ for assistance, definitions, and the full University policy.

Reacting Safely to Severe Weather: In severe weather, class members should seek appropriate shelter immediately, leaving the classroom if necessary. The class will continue if possible when the event is over. For more information on Hawk Alert and the siren warning system, visit the Department of Public Safety website.