The objective of the seminar is to:

  • Introduce students to the emerging field of Deep Learning for Big Code.
  • Learn how machine learning models can be used to solve practical challenges in software engineering and programming beyond traditional methods.
  • Highlight the latest research and work opportunities in industry and academia available on this topic.

The seminar is carried out as a set of presentations (2 each lecture) chosen from a set of available papers (available below). The grade is determined as a function of the presentation, handling questions and answers, and participation:


17.02 Introduction to the seminar (topics, objectives, structure): Pavol Bielik PDF
02.03 Mining Version Histories to Guide Software Changes Martin Villavicencio Mathhew Mirman
Code Completion with Neural Attention and Pointer Networks Anton Lu Momchil Peychev
09.03 Compilation Error Repair: For the Student Programs, From the Student Programs Valentino Föhn Timon Gehr
Learning a Static Analyzer from Data Kevin De Keyser Jingxuan He
16.03 Dynamic Neural Program Embeddings for Program Repair Felix Huber Veselin Raychev
Hoppity: Learning Bug Detection and Repair Allain Ryser Pavol Bielik
23.03 Synthesizing Datalog Programs Using Numerical Relaxation Filip Meier Rudiger Birkner
Locate-Then-Detect: Real-time Web Attack Detection via Attention-based Deep Neural Networks Daniel Stekol Jingxuan He
30.03 Selecting Representative Examples for Program Synthesis Nikola Jovanović Veselin Raychev
SPoC: Search-based Pseudocode to Code Dominik Häner Timon Gehr
06.04 Programmatically Interpretable Reinforcement Learning Jakub Kotal Momchil Peychev