Markus Püschel
Computer Science
ETH Zürich




short CV


the pub

Research Topics in Software Engineering

263-2100 (ETH, CS, Master Seminar)

Basic Information

  • Course number: 263-2100, 2 credits
  • Fall 2017, lectures: Th 15:15-17:00, CAB G 59
  • Instructors: The seminars are divided by the instructors which yields a range of topics
    • Markus Püschel (CAB, H69.3)
    • Thomas Gross (CAB, H69.1)
    • Peter Müller (CAB, H84)
    • Martin Vechev (CAB, H69.2)
  • TAs (and associated instructor):
    • Vytautas Astrauskas (PM)
    • Martin Bättig (TG)
    • Benjamin Bichsel (MV)
    • Alexandra Bugariu (PM)
    • Andrei Dan (MV)
    • Aristeidis Mastoras (TG)
    • Luca Della Toffola (TG)
    • Gagandeep Singh (MP)
    • Ivana Unkovic (TG)

Course Description

The course is an introduction to research in software engineering and programming languages, based on reading and presenting high quality research papers in the field.

This semester there will be no general specific focus but rather a broad range of topics in the field.

In the first lecture I will explain the rules, distribute the research papers, and then give a short a lecture on how to give good technical presentations. The next two Wednesdays there will be no session. The remaining lectures will consist of student presentations, each about one research paper that is assigned in the beginning of the course.

Goals of this Course

  • Learn how to read and understand a recent research paper in computer science.
  • Learn how to present a technical topic in computer science to an audience of peers.

Academic Integrity

Avoid copy-paste as much as possible. For material (especially graphics and anything included by copy-paste) not created by you but used in your presentation you have to provide an acknowledgment of the source on the same slide.


  • Quality of your presentation and subsequent question handling
    • How well you understood the paper
    • How understandable you presented it
    • How effectively your slides communicated (which includes the visual quality of the slides)
  • The papers have varying difficulty; we will take that into account
  • Presence and participation (e.g., good questions) during the presentations by other students
    • If you miss many classes you will fail the course

How It Works

  • In the beginning of the course every student will get a research paper and presentation date assigned (see schedule below)
  • Understand the paper (motivation of the work, what they do, what the results are, what the limitations are)
    • study the paper carefully
    • obtain and study relevant background material such as other papers that are cited; you may need to include some of this background material in your presentation
    • possibly meet with the TA or instructor to ask questions
  • Create a presentation
    • try to follow the guidelines given in the first lectures
    • main check list what the presentation should include:
      • clear motivation for the work
      • maybe briefly provide some necessary background
      • clear explanation what the paper does; this means using, as appropriate, examples, well-designed visuals, code examples
      • do not trivialize the content, go deeper where necessary
      • understandable (by your fellow students) presentation of the content and the results
      • do not try to cover everything in the paper, just the key parts; be ready to explain any technical term used
      • brief critical discussion in the end of the contribution: strong and weak parts including limitations
    • strive for high visual quality
    • acknowledge any external material (graphics, anything included by copy-paste from other sources) on the same slide (bottom right, small font, gray is usually a good way)
  • If possible try out the tool/code that comes with the paper
  • Have one meeting with your advisor at least a week before your presentation for clarifications and feedback. Bring a draft of the presentation.
  • Present at your assigned date
    • Presentations are 30 minutes + 15 minutes for questions
    • The presentation time will be enforced (as in the real world) but much too short is also not good


TA advisor
1 21.09. Organization, small guide to technical presentations - Markus Püschel
2 28.09. no seminar - -
3 05.10. no seminar - -
4 12.10. Balasubramanian: Compiler validation via equivalence modulo inputs

Hobrjartsson: Deny capabilities for safe, fast actors
Peter Müller
5 19.10. Goltz: Symbolic optimization with SMT solvers

Schmid: Typestate-based semantic code search over partial programs
Markus Püschel
6 26.10. no seminar    
7 02.11. Kayed: Valor: efficient, software-only region conflict exceptions

Fischlin: Abstract Model Counting: a novel approach for Quantification of Information Leaks
Martin Vechev
8 09.11. Ban: Input-Sensitive Profiling

Bödvarsson: Algorithmic Profiling
Thomas Gross
9 16.11. Lilyanova: On-the-fly Pipeline Parallelism

Saemundsson: Enabling Effective Programming and Flexible Management of Efficient Body Sensor Network Applications
Thomas Gross
10 23.11. Lichman: Abstract Semantic Diffing of Evolving Concurrent Programs


Martin Vechev
11 30.11. Birjovanu: Systematic black-box analysis of collaborative web applications

Aurecchia: QuickChecking static analysis properties
Peter Müller
12 07.12. Inglin: Liquid types

Schimmelfennig: Bigfoot: Static Check Placement for Dynamic Race Detection
Peter Müller, Martin Vechev
13 14.12. no seminar    
14 21.12. Peverelli: Concurrent Programming with Revisions and Isolation Types

Falkenstein: Hybrid STM/HTM for nested transactions on OpenJDK
Thomas Gross