Overview

This course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis. In particular, we will cover topics including:

  • 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

Note that the modalities described below are subject to change throughout the semester.

Lectures

  • Lectures will generally be held in-person in  HG F 3 and will be recorded.
  • Note: On Thu 27th of Feb, the lecture will take place in HG G 3!
  • Recordings can be found here.
  • However, we cannot guarantee that the recordings will capture all content and activity presented in the lecture, therefore we recommend attending the lectures in person.

Exercises

  • Exercise sheets and corresponding solutions will be published here by Wednesday evening. Please solve the exercises before the next topics's exercise block and before looking at the solutions.
  • Exercise sessions start on Thursday in the first week of the semester (22.02). There will be identical sessions in Thursday-Monday blocks in person. The exercise sessions will consist of a discussion of the solutions of the previous problem sheet, a brief recap of the current week's topics, and a pre-discussion of the next problem sheet.
      • Groups 1 + 2 (Mon 14-16): Physical in IFW A 36
      • Groups 3 + 4 (Thur 16-18): Physical in LFW C 5
  • Exercise sessions will not be recorded.

Moodle

  • TBD

Lectures

Use your NETHZ account to access the slides.

DateContentSlides
Feb 18Introduction

Exercises

Use your NETHZ account to access the exercises.

No. Due DateContentExercisesSolutions
1 Feb 26 Documentation and Contracts

Project

Details on the course project will be communicated in a dedicated lecture.

Previous exams

Previous exams are available in the exam collection of the student association (VIS).