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:


Feb 18 Introduction to the seminar (topics, objectives, structure): Dr. Veselin Raychev PDF
Candidate papers to choose from
Compilation Error Repair: For the Student Programs, From the Student Programs
Tree-to-tree Neural Networks for Program Translation
Estimating Types in Binaries using Predictive Modeling
Tracelet-Based Code Search in Executables
Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
Selecting Representative Examples for Program Synthesis
PHOG: Probabilistic Model for Code
Synthesizing Programs for Images using Reinforced Adversarial Learning
Programmatically Interpretable Reinforcement Learning
Neural Guided Constraint Logic Programming for Program Synthesis
Learning Loop Invariants for Program Verification
Learning a Static Analyzer from Data
Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code
Dynamic Neural Program Embeddings for Program Repair
Mining Version Histories to Guide Software Changes
Bayesian Specification Learning for Finding API Usage Errors.
Statistical Reconstruction of Class Hierarchies in Binaries
Parameter-Free Probabilistic API Mining across GitHub
RobustFill: Neural Program Learning under Noisy I/O
Neural Program Synthesis from Diverse Demonstration Videos