Zhendong Su: Katalogdaten im Frühjahrssemester 2021
|Name||Herr Prof. Dr. Zhendong Su|
Professur für Informatik
ETH Zürich, CNB H 102
|Telefon||+41 44 633 77 72|
|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 KP||2S||Z. Su, M. Vechev|
|Kurzbeschreibung||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.|
|Lernziel||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).|
|Inhalt||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.|
|Literatur||The publications to be presented will be announced on the seminar home page at least one week before the first session.|
|Voraussetzungen / Besonderes||Papers will be distributed during the first lecture.|
|263-2815-00L||Automated Software Testing||7 KP||2V + 1U + 3A||Z. Su|
|Kurzbeschreibung||This course introduces students to classic and modern techniques for the automated testing and analysis of software systems for reliability, security, and performance. It covers both techniques and their applications in various domains (e.g., compilers, databases, theorem provers, operating systems, machine/deep learning, and mobile applications), focusing on the latest, important results.|
|Lernziel||* Learn fundamental and practical techniques for software testing and analysis|
* Understand the challenges, open issues and opportunities across a variety of domains (security/systems/compilers/databases/mobile/AI/education)
* Understand how latest automated testing and analysis techniques work
* Gain conceptual and practical experience in techniques/tools for reliability, security, and performance
* Learn how to perform original and impactful research in this area
|Inhalt||The course will be organized into the following components: (1) classic and modern testing and analysis techniques (coverage metrics, mutation testing, metamorphic testing, combinatorial testing, symbolic execution, fuzzing, static analysis, etc.), (2) latest results on techniques and applications from diverse domains, and (3) open challenges and opportunities.|
A major component of this course is a class project. All students (individually or two-person teams) are expected to select and complete a course project. Ideally, the project is original research related in a broad sense to automated software testing and analysis. Potential project topics will also be suggested by the teaching staff.
Students must select a project and write a one or two pages proposal describing why what the proposed project is interesting and giving a work schedule. Students will also write a final report describing the project and prepare a 20-30 minute presentation at the end of the course.
The due dates for the project proposal, final report, and project presentation will be announced.
The course will cover results from the Advanced Software Technologies (AST) Lab at ETH as well as notable results elsewhere, providing good opportunities for potential course project topics as well as MSc project/thesis topics.
|Skript||Lecture notes/slides and other lecture materials/handouts will be available online.|
|Literatur||Reading material and links to tools will be published on the course website.|
|Voraussetzungen / Besonderes||The prerequisites for this course are some programming and algorithmic experience. Background and experience in software engineering, programming languages/compilers, and security (as well as operating systems and databases) can be beneficial.|