Capita Selecta of SE

Capita Selecta of Software Engineering

Machine Learning for Software Engineering

The goal of the course is to analyze large amounts of software engineering data using data mining techniques to uncover interesting and actionable information about software systems and projects. We use modern tools and techniques for mining this data in order to discuss the associated challenges and outline future research directions.

Examples include bug prediction using classifiers, search-based software engineering, and pattern mining of git repositories.

In the final lectures, we study recent research to understand how the mining of software repositories is evolving. For these lectures, the students will prepare a presentation on which they will be graded.

The goal of the practical sessions is to apply and to extend state-of-the art methodologies and tools to real software projects. Students will be graded on three assignments in which they will extend state-of-the-art frameworks.

Table of Contents

Introduction to the Course
Bug Prediction: Product Metrics
Bug Prediction: Process and Developer-based Metrics
Bug Prediction: Automatic Identification of Bug-Introducing Changes
Bug Prediction: The Choice of the Classifier
Bug Prediction: Ensembles of Classifiers
Bug Prediction: Dealing with Data Quality
Bug Prediction: Cross and Local - Classifier Tuning
Search Based Software Engineering: Introduction
Search Based Software Engineering: Using Genetic Algorithm to Configure Machine Learning Techniques
Pattern Mining: Mining Code Idioms
Pattern Mining: Toward Deep Learning Software Repositories
Pattern Mining: Are Deep Neural Networks the Best Choice for Modeling Source Code?


There is no traditional oral or written exam. Students will be graded as follows:

Note that failing to hand in an assignment or failing to present automatically results in an ABSENT mark.

Powered by w3.css