Research Topics in Software Engineering (Spring 2020)

Basic Information

Course Description

This course introduces students to research in the broad topics of software engineering (SE) and programming languages (PL) through reading, understanding, presenting and critiquing (high-quality) research papers in this general area.

There will not be a specific focus, but rather, we will cover a wide range of topics featuring latest/recent advances in the field.

During the first lecture (18.02.2020), we will explain the rules, distribute the research papers, and give a short lecture on research and technical presentations. Then, the class will not meet for the following two weeks to allow students time to prepare their presentations. The remaining lectures will consist of student presentations, each covering about one research paper assigned at the beginning of the course.

List of candidate papers

Course Goals

Academic Integrity

Please avoid copy-pasting as much as possible. For any material (especially graphics and anything included by copy-pasting) not created by you but included in your presentation, you must acknowledge the source on the same slide.

Grading

The papers have varying difficulty, which we will take into account.

How It Works

Lectures

Lecture
Date
Title
Advisor
1 18.02 Introduction -
2 25.02 no seminar -
3 03.03 no seminar -
4 10.03 no seminar -
5 17.03 no seminar -
6 24.03 Utkarsh Bajpai: Defending Against Physically Realizable Attacks on Image Classification
Delia Paulina Aguirre Fernandez de Hirt: Mesh: Compacting Memory Management for C/C++ Applications
Pinjia
Theo
7 31.03 Giuseppe Arcuti: Initialize Once, Start Fast: Application Initialization at Build Time
Roger Baumgartner: Defining the Undefinedness of C
Manuel
Theo
8 07.04 Dóra Neubrandt: Finding Crash-Consistency Bugs with Bounded Black-Box Crash Testing
Janis Peyer: Efficient Lock-Free Durable Sets
Ting
Theo
9 21.04 Steven Stalder: Debugging Inputs
Simon Studer: Parser-Directed Fuzzing
Ting
Pinjia
10 28.04 Xenia Hofmeier: Automated clustering and program repair for introductory programming assignments
Madalina Hurmuz: What distinguishes great software engineers?
Sverrir
Sverrir
11 05.05 Christian Fania: Chopped Symbolic Execution Manuel
12 12.05 Karel Jílek: Does syntax highlighting help programming novices?
Ioana Stefan: Virtual Machine Design for Parallel Dynamic Programming Languages
Sverrir
Manuel
13 19.05 François Hublet: Coq Coq Correct! Verification of Type Checking and Erasure for Coq, in Coq
Tommaso Pegolotti: Incorrectness Logic
Dominik
Dominik
14 26.05 Mauro Bringolf: SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic
Salvatore Di Girolamo: Code vectors: understanding programs through embedded abstracted symbolic traces
Shaohua
Shaohua