Martin Vechev: Catalogue data in Spring Semester 2021
|Name||Prof. Dr. Martin Vechev|
Inst. Programmiersprachen u. -syst
ETH Zürich, CAB H 69.1
|Telephone||+41 44 632 98 48|
|252-0216-00L||Rigorous Software Engineering||8 credits||4V + 2U + 1A||M. Vechev|
|Abstract||The course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis.|
|Objective||The course has two main objectives:|
- Understand the core techniques for building correct software.
- Understand how to apply these techniques in practice.
|Content||The 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.
|Literature||Will be announced in the lecture.|
|263-2100-00L||Research Topics in Software Engineering |
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 credits||2S||Z. Su, M. Vechev|
|Abstract||This seminar is an opportunity to become familiar with current research in software engineering and more generally with the methods and challenges of scientific research.|
|Objective||Each 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).|
|Content||The 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.|
|Literature||The publications to be presented will be announced on the seminar home page at least one week before the first session.|
|Prerequisites / Notice||Papers will be distributed during the first lecture.|
|263-2925-00L||Program Analysis for System Security and Reliability||7 credits||2V + 1U + 3A||M. Vechev|
|Abstract||Security 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.
|Content||Please see: https://www.sri.inf.ethz.ch/teaching/pass2021 for detailed course content.|