Martin Vechev: Catalogue data in Spring Semester 2021

Name Prof. Dr. Martin Vechev
FieldComputer Science
Inst. Programmiersprachen u. -syst
ETH Zürich, CAB H 69.1
Universitätstrasse 6
8092 Zürich
Telephone+41 44 632 98 48
DepartmentComputer Science
RelationshipFull Professor

252-0216-00LRigorous Software Engineering Information 8 credits4V + 2U + 1AM. Vechev
AbstractThe course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis.
ObjectiveThe course has two main objectives:

- Understand the core techniques for building correct software.
- Understand how to apply these techniques in practice.
ContentThe course presents an overview of techniques to build correct software, 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)

In addition, students apply the learned techniques to solve a group project in the area of program analysis.
LiteratureWill be announced in the lecture.
263-2100-00LResearch Topics in Software Engineering Information Restricted registration - show details
Number of participants limited to 22.

The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
2 credits2SZ. Su, M. Vechev
AbstractThis seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.
ObjectiveEach student will be asked to study some papers from the recent software engineering literature and review them. This is an exercise in critical review and analysis. Active participation is required (a presentation of a paper as well as participation in discussions).
ContentThe aim of this seminar is to introduce students to recent research results in the area of programming languages and software engineering. To accomplish that, students will study and present research papers in the area as well as participate in paper discussions. The papers will span topics in both theory and practice, including papers on program verification, program analysis, testing, programming language design, and development tools.
LiteratureThe publications to be presented will be announced on the seminar home page at least one week before the first session.
Prerequisites / NoticePapers will be distributed during the first lecture.
263-2925-00LProgram Analysis for System Security and Reliability Information 7 credits2V + 1U + 3AM. Vechev
AbstractSecurity issues in modern systems (blockchains, datacenters, deep learning, etc.) result in billions of losses due to hacks and system downtime. This course introduces fundamental techniques (ranging from automated analysis, machine learning, synthesis, zero-knowledge and their combinations) that can be applied in practice so to build more secure and reliable modern systems.
Objective* Understand the fundamental techniques used to create modern security and reliability analysis engines that are used worldwide.

* Understand how symbolic techniques are combined with machine learning (e.g., deep learning, reinforcement learning) so to create new kinds of learning-based analyzers.

* Understand how to quantify and fix security and reliability issues in modern deep learning models.

* Understand open research questions from both theoretical and practical perspectives.
ContentPlease see: for detailed course content.