The course combines lectures and assignments where students use automated verification software (ESC/Java, Java PathFinder) to prove properties of Java programs.
Content and teaching methods
see "Main themes"
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
Pre-requisites: basic notions in theory of programming, as covered in courses such as INGI2122 (methodes de conception de programmes), INGI2101 (mathematiques discretes) and INGI2123 (calculabilite)
Bibliography:
- B. Liskov (with J. Guttag), "Program development in Java: abstraction, specification and object-oriented design", Addison-Wesley, 2001
- O.-J. Dalh, "Verifiable programming", Prentice Hall, 1992
- K. R. Apt, E.-R. Olderog, "Verification of sequential and concurrent programs", Springer-Verlag, 1991
- J. Loeckx, K. Sieber, "The foundations of program verification (2nd Ed.), Wiley-Teubner, 1984
- D. Gries, The Science of Computer Programming, Springer-Verlag, 1981