Overview
This course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis. In particular, covered topics include:
- Code documentation
- Modularity and coupling (Design patterns)
- Dynamic program analysis (Testing, fuzzing, concolic execution)
- Static program analysis (Numerical abstract interpretation, pointer analysis, symbolic execution)
- Formal modeling (Alloy)
Students apply the learned techniques to solve a group project in the area of program analysis.
Organization
Lectures
- Lectures will be pre-recorded and published here in advance (credentials can be found here). We recommend watching these during regular lecture hours.
- Each Wednesday at 11:40-12:00, Prof. Martin Vechev offers a virtual Q&A session (Zoom link ★) on the topics of that week.
- For additional questions, we have prepared a Moodle forum.
Exercises
- Exercise sheets will be published here by Wednesday evening. Please solve the exercises before next week's exercise session and before looking at the solutions.
- Exercise sessions are conducted virtually and start in the second week of the semester. We will discuss the solutions of the previous week's exercise sheet. Please register for an exercise group via MyStudies.
- For additional questions, we have prepared a Moodle forum.
★ To join the Zoom meetings, you must be logged in with a *.ethz.ch account, which you can create here.
Communication
All communication (including special announcements) will be sent out by e-mail. For written questions, please use the Moodle forum whenever possible. In exceptional cases, you can contact the head TA.
Lectures
Use your NETHZ account to access the slides. The credentials to access the recordings can be found here.
Exercises
Use your NETHZ account to access the exercises.
Project
The project will be conducted in groups of 2-3 students. We will send out a link for group registration on March 15. Groups must be registered by March 23. Use Moodle if you cannot find a team.
The project webpage is here.Previous exams
Previous exams are available in the exam collection of the student association (VIS).