Semester: summer 2020/21
Lectures: Mon 10:40, online (Pavel Parízek)
Labs: Mon 12:20, online (Pavel Parízek)
Page in SIS: NSWI132
Grading: Credit and exam

News

Slides

Lectures

Date Title Downloads
1.3.2021 Introductory lecture lecture00.pdf
8.3.2021 Model Checking Programs lecture01.pdf
15.3.2021 Concurrency Errors lecture02.pdf
22.3.2021 Symbolic Execution, Dynamic Analysis lecture03.pdf
29.3.2021 Deductive Methods, Bounded Model Checking lecture04.pdf
12.4.2021 Abstraction lecture05.pdf
19.4.2021 Contracts: Specification and Verification lecture06.pdf
26.4.2021 Static Analysis: Overview, Data-Flow lecture07.pdf
3.5.2021 Static Analysis: Pointers and Heap Structures lecture08.pdf
10.5.2021 Abstract Interpretation lecture09.pdf
17.5.2021 Combining Verification Approaches lecture10.pdf
24.5.2021 Program Termination lecture11.pdf
31.5.2021 Program Synthesis lecture12.pdf

Labs

Date Title Downloads
8.3.2021 Java PathFinder lab01.pdf
15.3.2021 Detecting Concurrency Errors with JPF lab02.pdfconcur_bench.zip
22.3.2021 Symbolic PathFinder, RoadRunner lab03.pdf
29.3.2021 SMT Solvers, CBMC lab04.pdfsmt-examples.zipbmc-examples.zip
12.4.2021 CEGAR lab05.pdfcegar.tgz
19.4.2021 Code Contracts, Viper lab06.pdfcontracts-examples.zip
26.4.2021 T.J. Watson Libraries for Analysis lab07.pdfwala-examples.zip
3.5.2021 Static Analysis Tools lab08.pdfpointers-examples.zippredator-examples.tgz
10.5.2021 Realistic Verification Scenarios lab09.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, Code Contracts, 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
12.4.2021 23:59 Java Pathfinder hw1-jpf.pdfdaisyfs.zipelevator.ziprepworkers.zip
17.5.2021 23:59 Contracts hw2-contracts.pdf
4.6.2021 23:59 Static Analysis hw3-static.pdf
30.6.2021 23:59 Finding Bugs in Real Software hw4-realsw.pdf
31.5.2021 Research Papers hw5-papers.pdf

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