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.
|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