Semester: summer 2023/24
Lectures: Tue 12:20, S10 (Pavel Parízek)
Labs: Tue 14:00, S10 (Pavel Parízek)
Page in SIS: NSWI132
Grading: Credit and exam

News

Slides

Lectures

Date Title Downloads
20.2.2024 Introductory lecture lecture00.pdf
27.2.2024 Model Checking Programs lecture01.pdf
5.3.2024 Concurrency Errors lecture02.pdf
12.3.2024 Symbolic Execution, Dynamic Analysis lecture03.pdf

Labs

Date Title Downloads
27.2.2024 Java PathFinder lab01.pdf
5.3.2024 Detecting Concurrency Errors with JPF lab02.pdfconcur_bench.zip
12.3.2024 Tools for Symbolic Execution and Dynamic Analysis lab03.pdf

Annotation

Basic principles of automated analysis and verification of programs (model checking, static analysis, dynamic analysis, and deductive methods) and their practical applications (e.g., detecting concurrency errors).

Syllabus

Organization

During the lectures we will describe individual program verification and analysis methods, including basic concepts, main algorithms, and their limitations.

The purpose of the lab is to provide students with a hand-on experience with selected verification and analysis tools ( Java Pathfinder, CBMC, Dafny, WALA, ...).

Homework assignments

There will be five assignments, each taking approximately 10-15 hours of homework. You need to do the assignment no. 5 (presentation of some research publication) and two others to get credit (“zápočet”).
Note: 10% of your score will be deducted for every calendar day your solution of the assignment is late. This implies that no solutions will be accepted after 10 calendar days past its due date.

Date Title Downloads
2.4.2024 23:59 Java Pathfinder hw1-jpf.pdfdaisyfs.zipelevator.ziprepworkers.zip

Grading

Final grades will depend on the quality of your homework and on the result of the voluntary final exam as follows:

Grades will be based on points in the following way:

Grade Required points
Excellent:85-125 points
Very good:72-84 points
Good: 60-71 points

References

Archive

Academic year 2015/2016: lectures labs tools & examples