Analyzing Software using Deep Learning

Quick Facts

Lecturer     Prof. Dr. Michael Pradel
Course typeIntegrated course
TimeMonday, 9:50-11:30
LocationS101/A03
TUCAN entry20-00-0999-iv
PiazzaClass page

 

Content

Software developers use tools that automate particular subtasks of the development process. Recent advances in machine learning, in particular deep learning, are enabling tools that had seemed impossible only a few years ago, such as tools that predict what code to write next, which parts of a program are likely to be incorrect, and how to fix software bugs. This course introduces recent techniques developed at the intersection of program analysis and machine learning. In one part of the course, we will cover some basics of both fields, followed by a discussion of several recent deep learning-based programming tools. In the other part of the course, students will implement their own deep learning-based program analysis based on an existing framework. Grading will be based on the implementation as well as a written exam. 

Schedule

Date  Topic  Material
April 24, 2017Introduction

Slides and notes

Online book (chapter 1)

May 8, 2017RNN-based code completion and repair

Slides and notes (part 1)

Slides and notes (part 2)

SLANG, SynFix

May 15, 2017Sequence-to-sequence networks and their applications

Slides and notes

Deep API learning, Learning to execute

May 22, 2017Classifying programs with convolutional networks

Slides and notes (part 1)

Slides and notes (part 2)

Tree convolution for programs

May 29, 2017Lecture and start of course project

Slides and notes

Framework, Project description

June 12, 2017Guest lecture by Miltos Allamanis

Slides

Suggesting method and class names

June 19, 2017(No meeting)
June 26, 2017Q&A for course project
July 3, 2017Q&A for course project
July 10, 2017Q&A for course project
July 17, 2017Q&A for course project
July 27, 2017Submission deadline of course project
Aug 16, 2017Written exam (10am, S101/A1)

 

Course Project

The goal of the course project is to design, implement, and evaluate a neural network-based code completion
approach.

Framework for the project

Description of the project

Questions, quizzes, and additional information

We are using Piazza for class discussion, in-class quizzes, and for sharing additional material. The system is highly catered to getting you help fast and efficiently from classmates and instructors. Rather than emailing questions to the teaching staff, please post your questions on Piazza.

Find our class page at: http://piazza.com/tu-darmstadt.de/summer2017/20000999iv

Grading

Grading will be based on the course project and the final exam (50% each).

A A A | Drucken Print | Impressum Impressum | Sitemap Sitemap | Suche Search | Kontakt Contact | Webseitenanalyse: Mehr Informationen
zum Seitenanfangzum Seitenanfang