Machine Learning for Software Engineering (SS17)

Machine Learning for Software Engineering is about learning and optimizing complex tasks that are computationally intractable for exact methods. The goal of this course is to understand the principles of meta-heuristics in optimization as well as key concepts of learning based on neural nets.

 

News:

  • Examplary exam questions >1< >2< >3< >4< >5< >6< ... see >here a digital version<
  • Detailed project description >here<
  • Download the second public set of optimization Tasks for the project >here< 
  • Example implementation in C# to get a CSP model from the already parsed XML file, >here<
  • Next lecture is canceled!
  • Download the first public set of optimization tasks for the project >here< (more to come later)
  • Project task will be discussed during the exercise at Monday: 29.05.2017
  • First exercise starts with a Python tutorial at Monday, 10th of April.
  • Second exercise will be at Monday 24th of April.
  • Updated the slides of lecture 2
  • The exercises require reading some papers. In order to retrieve them try searching with Google from the university's network.
LectureTopicResources
04.04.20171) Introduction to the lecture and optimization ProblemsScript
10.04.2017Tutorial on Python and NumpyNotebook
11.04.20172) Single-State Optimization Techniques

Script

Notebook

Notebook from lecture

18.04.20173) Single-State: Simulated Annealing, Tabu Search, and Iterated Local Search; Multi-State Optimization Techniques: Evolutionary Algorithms

Script

Notebook

24.04.2017Exercise: Implementing Tabu Search and ILS; the Travelling Salesman Problem in Python

Notebook

city100.txt

25.04.20174) Multi-State Optimization Techniques: Genetic Algorithms, Crossover, Line Recombination, Selection Operators

Script

Notebook

02.05.20175) Elitism, Steady-State Algorithm, Memetic Algorithm, Scatter Search, Differential Evolution, Particle Swarm Optimization

Script

Notebook

08.05.2017Exercise: Application to Software Engineering Problems (read the papers as preparation to the exercise) + Representation of Problems (how to encode?)

Paper1: Optimising Existing Software with Genetic Programming

Paper2: Automated Software Transplantation

Paper3: A Memetic Algorithm for whole test suite Generation

Script

09.05.20176) Multi-Objective OptimizationScript
15.05.2017Exercise: Application to Software Engineering Problems (read the papers as preparation to the exercise) + Representation of Problems (how to encode?)Script
16.05.20177) Combinatorial Optimization Problems (Ant Colony Optimization, Guided Local Search, etc.)Script
22.05.2017No exercise

 

 

23.05.20178) Ant Colony Optimization, Constraint Satisfaction Problem

 

 

29.05.2017Exercise: Project IntroductionScript
30.05.20179) Constraint Satisfaction Problem

Script

Notebook

05.06.2017No exercise:Whitsun
06.06.201710) Canceled!
12.06.2017Exercise: Constraint Satisfaction Problem examples
13.06.201711) Dimensionality Reduction: PCA 

Script

Notebook

Places.txt

19.06.2017Exercise: Canceled!
20.06.201712) Dimensionality Reduction: PCA continued + Feature SelectionSee above
26.06.2017Exercise: Tutorial on KerasNotebook
27.06.201713) Introduction to Neuronal Networks
03.07.2017Exercise:Tutorial on TensorFlowNotebook
04.07.201714) Recap + Architectures of Neuronal NetworksScript
11.07.201715) Repetition + Summary of the Course