252-0216-00L
Rigorous Software Engineering
| Semester | Spring Semester 2025 |
| Lecturers | M. Vechev,
M. Schwerhoff |
| Periodicity | yearly recurring course |
| Language of instruction | English |
| Abstract | The course provides an overview of techniques to build correct software, with a strong focus on testing and program analysis. |
| Learning 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, 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. |
Competencies | | Subject-specific Competencies | Concepts and Theories | assessed | | Techniques and Technologies | assessed | | Method-specific Competencies | Analytical Competencies | assessed | | Decision-making | fostered | | Media and Digital Technologies | assessed | | Problem-solving | assessed | | Project Management | fostered | | Social Competencies | Communication | fostered | | Cooperation and Teamwork | fostered | | Personal Competencies | Creative Thinking | fostered | | Critical Thinking | fostered | | Self-direction and Self-management | fostered |
|