Lehre
News
- Klausur am 18.02.2020 11:00-13:00 -- Marienstraße 13c Hörsaal A
- Start der Vorlesung am 21.10.2019
- Start der Übungen am 24.10.2019
Informationen zur Veranstaltung
Die Vorlesung führt in die grundlegenden Konzepte der objekt-orientierten Programmierung, insbesondere in das Programmieren mit Java ein.
Hierfür werden die Grundkonzepte, wie zum Beispiel Schleifen, Bedingungen, Funktionen und Variablen, aller Programmiersprachen anhand der Java Syntax erläutert. Neben dem algorithmischen Denken wird zusätzlich das Modellieren von Problemen mittels Objekten gleich zu Beginn der Veranstaltung gelehrt. Darauf aufbauend werden weitere Konzepte der objekt-orientierten Programmierung erläutert. Hierzu zählen die verschiedenen Arten der Polymorphie (Vererbung, Interfaces, Generics, etc.) sowie das Arbeiten mit mehreren Klassen und Objekten.
Zusätzlich werden einige grundlegende Datenstrukturen, wie zum Beispiel Stack, Queue und Listen im Laufe der Veranstaltungen implementiert werden. Abschließend werden Themen wie das Schreiben von lesbarem Code, Fehlerbehandlung und das Arbeiten mit Versionierungsverwaltungssystemen vermittelt.
Themen:
- Datentypen, Schleifen, Verzweigungen
- Klassen, Methoden, Objekte, Aufzählungen
- Stack, Queue, Liste, Array
- Interface, Vererbung, Generics
Lesbarer Code, Kommentare, Fehlerbehandlung, Versionierung
Vorlesungen:
Wöchentlich Montags 09:15 - 10:45 (Start ab 21.10.2019) im Hörsaal Karl-Haußknecht-Straße 7
Link zur Veranstaltung im Vorlesungsverzeichnis: link
Informationen zur Übung
Übungsleiter: André Karge
Übungskontrolle: Sarah Böning
Übungstermine: Wöchentlich Donnerstags (Start ab 24.10.2019) im LiNt-Pool Bauhausstraße 11 (links neben dem Haupteingang der Bauhausstraße 11)
- Termin 1: 15:15 - 16:45
- Termin 2: 17:00 - 18:30
Übungsabgabe in Gruppen von maximal 2-3 Studenten pro Gruppe
Das Mitbringen eines eigenen Laptops ist von Vorteil, jedoch keine Pflicht.
Bewertung:
50% aller möglichen Punkte müssen erreicht werden, um die Prüfungszulassung zu erhalten.
Jede Gruppe stellt einmal die Lösungen eines Beleges vor.
Materialien
Vorlesung | Thema | Folien |
---|---|---|
21.10.2019 | Einführung | slides |
28.10.2019 | Datentypen und Verhalten | slides |
04.11.2019 | Kontrollstrukturen | slides |
11.11.2019 | Objektorientierung | slides |
18.11.2019 | Arrays, Strings, Static | |
25.11.2019 | Heap, Stack, Parameter, Cloning | slides |
02.12.2019 | Enumerations, Packagages, Recursion | slides |
09.12.2019 | Listen, Stacks, Queues | slides |
16.12.2019 | Polymorphie | slides |
06.01.2020 | Probeklausur | |
13.01.2020 | Polymorphie II | |
20.01.2020 | Exceptions und Java Klassen | slides |
27.01.2020 | Clean Code + Versionskontrolle |
Übung | Thema | Übungsblatt und Materialien |
---|---|---|
24.10.2019 | Organisation | |
31.10.2019 | - Feiertag - | |
07.11.2019 | Operatoren, Methoden, Primitives | |
14.11.2019 | Schleifen, Kontrollstrukturen, Klassen Präsentation blatt01:
| |
21.11.2019 | Static, Arrays, Strings Präsentation blatt02:
| |
28.11.2019 | Heap, Stack, Copy Präsentation blatt03:
| |
05.12.2019 | Packages, Kapselung Präsentation blatt04:
| |
12.12.2019 | Enum, Foreach, Recursion, Listen Präsentation blatt05:
| |
19.12.2019 | Stack, Queues, Generics Präsentation blatt06:
| |
09.01.2020 | Probeklausur, Polymorphie Teil 2 Präsentation blatt07:
| |
16.01.2020 | Probeklausur, Polymorphie, Fragerunde | |
23.01.2020 | Exceptions, Debugging | |
30.01.2020 | Wiederholung part 1 | |
06.02.2020 | -- Abgesagt, da scheinbar kein Wiederholungsbedarf -- |
Software Engineering WS 19/20
News: Vorlesung am 26.11. entfällt.
Die Vorlesung Software Engineering erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens ⅔ der Punkte in den bewerteten Übungsblättern erzielt werden.
Übungsleiter: Nicolai Ruckel
Übung: Freitag 11:00–12:30 Uhr, SR015
Vorlesung | Thema | Folien |
---|---|---|
15.10.2019 | Einführung | slides |
22.10.2019 | Requirements Engineering | slides |
29.10.2019 | Responsibility-Driven Design | slides |
05.11.2019 | UML | slides 1 slides 2 |
12.11.2019 | Design Patterns | slides |
19.11.2019 | Design Patterns II | |
2611.2019 | Ausfall | |
03.12.2019 | Architektur | slides |
10.12.2019 | Implementierung | slides |
17.12.2019 | Implementierung / Testing | slides |
07.01.2020 | Testing | slides |
14.01.2020 | Industrievorlesung | |
21.01.2020 | Entwicklungsprozesse | slides |
28.01.2020 | Projektmanagement / Evolution und Wartung | slides |
Übung | Thema | Übungsblatt |
---|---|---|
18.10.2019 | Allgemeine Hinweise Einführung in Git | Übungsblatt 1 |
25.10.2019 | Gradle | |
01.11.2019 | Fällt aus | |
08.11.2019 | Besprechung Übungsblatt 1 | Übungsblatt 2 |
15.11.2019 | Fragestunde zu Übungsblatt 2 | |
22.11.2019 | Besprechung Übungsblatt 2 | Übungsblatt 3 |
29.11.2019 | Design Patterns | |
06.12.2019 | Besprechung Übungsblatt 3 | Übungsblatt 4 Adapter Pattern Visitor Pattern |
13.12.2019 | Testing | |
20.12.2019 | Besprechung Übungsblatt 4 | Übungsblatt 5 Factory- und Singleton-Pattern |
10.01.2020 | Testing — Teil 2 | Startcode, Lösungen |
17.01.2020 | Besprechung Übungsblatt 5 | Übungsblatt 6 |
24.01.2020 | Debugging | Code, Lösung |
31.01.2020 | Besprechung Übungsblatt 6 | |
07.01.2020 | Klausurvorbereitung | Lösung Übungsblätter |
Alte Lehrveranstaltungen
- Modern Software Technologies SoSe19
- Software Product Line Engineering SS19
- Search-Based Software Engineering SS19
- Einführung in die Programmierung WS18/19
- Software Engineering WS 18/19
- Deep Learning for Code Completion - Seminar WS18/19
- Software Product Line Engineering SS18
- Search-Based Software Engineering SS18
- Einführung in die Programmierung
- Project: Search-Based Software Engineering
- Machine Learning for Software Engineering
- Modern Software Technologies
- Einführung in die Programmierung
- Software Engineering WS 17/18
- Software Engineering WS 16/17
News
- First lecture starts on Monday 8th, 2019.
Course Description
The seminar teaches theoretical and practical knowledge about modern software technologies, which are used in nearly all software project nowadays. The topics will follow a running example, in which all technologies can be tested and applied. The students will be assigned to a technology for which they will give a presentation about the key concepts and usage scenarios of the respective technology. A tutorial follows each presentation, in which the presenter teaches the other students in actually applying the technique.
The used technologies differ depending on the number of students and include the following:
- JUnit in combination with Selenium
- Docker
- Continuous Integration & Delivery with Ansible
- Continuous Integration & Delivery with Jenkins / TravisCI
- MicroServices
- Code-Analyse with Sonar
- Dependencies Management
- Ticketing with Jira / Github issues
- Logging
- Version control systems (git /rebase / etc)
- Sprint and Spring Boot
Assignments
Assingments will be determined in the second lecture.
Schedule
Lecture | Topic | Resources |
---|---|---|
2019-04-08 | Introduction | slides |
2019-04-15 | How to give presentations | slides |
2019-05-20 | Gradle, | |
2019-05-27 | Microservices with Flask + Spring Boot, Rest | Spring |
2019-06-03 | Travis, Testcontainer, Selenium | |
2019-06-10 | Pfingsten (keine Vorlesung) | |
2019-06-17 | Ansible, Tutorial: Gradle, Docker | |
2019-06-24 | Tutorial: REST, Microservice Flask + SpringBoot | |
2019-07-01 | Tutorial: Selenium, Travis, Testcontainer, Ansible |
News
- Exam: The assigned appointments for the oral exam can be found here.
- Lecture on 12th of June cancelled due to illness.
- First lab class starts on Friday, 12 April 2019 from 11:00 a.m. to 12:30 a.m. at HK7 (Karl-Haußknecht-Str. 7).
- There is an additional programming tutorial (independent from this course!) for those who are struggling with or want to update their skills in Java; Meetings start on 12 April, 3:15 p.m. for beginners and 5:00 p.m. for advanced users at the LiNT pool at B11 (Bauhausstr. 11).
- First lecture starts on Wednesday, 10 April 2019 from 9:15 a.m. to 10:45 a.m. at HK7 (Karl-Haußknecht-Str. 7).
Course Description
Software product lines and configurable software systems are the main driving factor for mass customization, tailor-made products, and product diversity while keeping a maintainable code base and saving development time. The lecture will teach about central elements of product line modeling and development.
Students should understand the following techniques and theories:
- Configuration management and variability modeling
- Classic and modern programming techniques, such as preprocessors, version control systems, components, frameworks, aspect-oriented programming, and feature-oriented programming
- Feature interactions and virtual separation of concerns
Students should be able to apply the above theories and concepts to judge points in favor and against a certain technique depending on the application scenario at hand. Hence, the students will be able to decide which techniques, tools, and methods to use.
Students should master concepts and approaches such as
- The exponential complexity of variability spaces
- Modeling and implementation of program families, product lines, and domain-specific generators
- Basic concepts of software engineering (e.g., cohesion, scattering, tangling, information hiding)
- Classic and modern concepts, such as preprocessors, plug-in systems, feature modules, collaborations, aspects, and roles
- Critical discussion about pros and cons of the above techniques, and concepts
- Feature interactions, non-functional properties, product line analysis
Students will implement these concepts in Java.
Students should develop an understanding of the current state of research in software product lines. With appropriate supervision, students should be able to tackle new research problems, especially in the area of product line development and optimization.
Assignments
Participation requires the successful completion of the course labs in the form of between six and seven fortnightly assignments. All assignments include programming tasks, so some experience with Java is required. Digital Engineering students will be required to successfully complete an additional part of the assignments since they obtain 6 ECTS instead of 4.5 ECTS for CS4M students.
Literature
- Feature-oriented Software Product Lines by Sven Apel, Don Batory, and Christian Kästner; Springer, 2013. Available at the university library (see link).
- Krysztof Czarnecki, Ulrich Eisenecker : Generative Programming. Methods, Tools and Applications. Addison Wesley 2000
- Further interesting reading includes:
- Clements, L. Northrop: Software Product Lines: Practices and Patterns. Addison- Wesley, 2002
- K. Pohl, G. Böckle, F. van der Linden: Software Product Line Engineering: Foundations, Principles and Techniques. Springer 2005.
Schedule
Lecture | Topic | Resources |
---|---|---|
2019-04-10 2019-04-12 | 1) Introduction Software Product Line Engineering Lab class | slides
|
2019-04-17 2019-04-19 | 2) Development Process and Variability Modelling no lab class (Good Friday/Karfreitag) | slides |
2019-04-24 2019-04-26 2019-05-03 | Runtime Variability Lab | |
2019-05-08 2019-05-10 | Version Control Systems and Build Systems + Preprocessors Lab | |
2019-05-15 | Preprocessors | slides |
2019-05-22 2019-05-24 | Components and Frameworks | |
2019-05-29 2019-06-07 | Feature-Oriented Programming Lab | |
2019-06-05 | Aspect-Oriented Programming | slides |
2019-06-12 | Cancelled! | |
2019-06-19 2019-06-21 | AOP + Feature Interactions Lab | |
2019-06-26 | Non-Functional Properties I | slides |
2019-07-03 | Non-Functional Properties II | |
- | - | syllabus Implementation Techniques Implementation Techniques (slides) |
News
- Exam: 2019-07-22 09:00 in Marienstraße 13c Lecture Hall D
- 1 week added for the submission of the mini project (new submission date: 2019-08-07 23:59)
- 1 week added for the submission of ex01 (new submission date: 2019-05-13 23:59)
- We swapped lecture and lab class dates - the lecture is now on monday 09:15a.m. at SR015 B11 (Seminar Room 015 Bauhausstraße 11) and the lab class on tuesday 11:00a.m. at SR014 B11 (Seminar Room 014 Bauhausstraße 11)
- First lecture starts: 2019-04-09 11:00a.m. at SR014 B11 (Seminar Room 014 Bauhausstraße 11)
- Firs lab class starts: 2019-04-15 09:15a.m. at SR015 B11 (Seminar Room 015 Bauhausstraße 11)
Course Information
Search-Based 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 on handling constraints and dimensionality.
Students should understand the following techniques and theories:
- Problem space exploration and search-based optimization
- Meta-heuristics for single and multiple objective optimization
- Relationship between biological learning and optimization with algorithms
- Dimensionality-reduction techniques
- Constraint resolution
Students should be able to apply the above theories for solving concrete learning and optimization problems. Furthermore, they should appreciate the limits and constraints of the individual methods above.
Students should be able formalize and generalize their own solutions using the above concepts and implement them in a specified language (preferable in Python).
Students should master concepts and approaches such as
- Simulated annealing
- Swarm optimization
- Ant colonization
- Evolutionary algorithms
- Dimensionality Reduction (PCA + Feature Subset Selection)
- Constraint Satisfaction Problem Solving
in order to tackle problems learning and optimizing huge problems, which are inherent to Digital Media. They should also be able to implement the algorithms and techniques in Python and be able to understand a proposed problem, to compare different approaches and techniques regarding applicability and accuracy, to make well-informed decisions about the preferred solution and, if necessary, to find their own solutions.
Students should develop an understanding of the current state of research in optimization and learning. With appropriate supervision, students should be able to tackle new research problems, especially in the area of search-based software engineering.
Assignments
There will be 3 to 4 graded assignments over the semester and a final project.
Students have to pass those assignments to get the admission for the final exam.
To solve the intermediate assignments, groups of max. 2 students are allowed.
The final project assignment has to be solved by each student individually.
The first lab class will be on Mo. 2019-04-15 09:15 a.m. at seminar room 015 in Bauhausstraße 11.
Literature
- Handbook of Metaheuristics, Fred W. Glover, Gary A. Kochenberger, Springer Science & Business Media, 2006.
- Machine Learning, Tom Mitchell, McGraw-Hill Education, 1997.
- Essentials of Metaheuristics, Sean Luke, 2013.
- A Field Guide to Genetic Programming, Riccardo Poli, William B. Langdon, Nicholas Freitag McPhee, Lulu Pr, 2008.
- Make Your Own Neural Network, Rashid, Tariq, CreateSpace Independent Publishing Platform, 2016.
- http://neuralnetworksanddeeplearning.com/index.html (online book)
Lecture Schedule
Date | Topic | Resources |
---|---|---|
2019-04-09 | Introduction to Optimization Problems | slides |
2019-04-15 | Single-State Optimization Techniques | slides |
2019-04-22 | Easter monday | |
2019-04-29 | Single-State: Simulated Annealing, Tabu Search, and Iterated Local Search; Multi-State Optimization Techniques: Evolutionary Algorithms | slides |
2019-05-06 | Multi-State Optimization Techniques: Genetic Algorithms, Crossover, Line Recombination, Selection Operators | |
2019-05-13 | Multi-State Optimization Techniques: Genetic Algorithms, Crossover, Line Recombination, Selection Operators | - |
2019-05-20 | Representation | slides |
2019-05-27 | Exploitative Multi-State (Swarm, etc.) | |
2019-06-03 | Multi-Objective Optimization I | slides |
2019-06-10 | No lecture (Whitsun) | |
2019-06-17 | Multi-Objective Optimization II | |
2019-06-24 | Combinatorial Optimization I | slides |
2019-07-01 | Combinatorial Optimization II | |
2019-07-08 | Constraint Satisfaction Problems | slides |
Lab Class Schedule
Date | Topic | Resources |
---|---|---|
2019-04-16 | Organization and Python Introduction | - organization |
2019-04-23 | Single State Meta-Heuristics (problem definition) | - exercise01 |
2019-04-30 | consultation on first problem set | |
2019-05-07 | consultation | |
2019-05-14 | results of first algorithm + Multi State Optimization (problem definition) | - exercise02 |
2019-05-21 | consultation | |
2019-05-28 | results of second exercise + next problem definition | |
2019-06-04 | consultation | |
2019-06-11 | results of third exercise | |
2019-06-18 | next problem definition | - exercise04 (for Digital Engineering) |
2019-06-25 | consultation | |
2019-07-02 | project details (graded for digital engineering students) | - project_egame.pdf (updated) - notebook |
Die Vorlesung führt in die grundlegenden Konzepte der objekt-orientierten Programmierung, insbesondere in das Programmieren mit Java ein.
Hierfür werden die Grundkonzepte, wie zum Beispiel Schleifen, Bedingungen, Funktionen und Variablen, aller Programmiersprachen anhand der Java Syntax erläutert. Neben dem algorithmischen Denken wird zusätzlich das Modellieren von Problemen mittels Objekten gleich zu Beginn der Veranstaltung gelehrt. Darauf aufbauend werden weitere Konzepte der objekt-orientierten Programmierung erläutert. Hierzu zählen die verschiedenen Arten der Polymorphie (Vererbung, Interfaces, Generics, etc.) sowie das Arbeiten mit mehreren Klassen und Objekten.
Zusätzlich werden einige grundlegende Datenstrukturen, wie zum Beispiel Stack, Queue und Listen im Laufe der Veranstaltungen implementiert werden. Abschließend werden Themen wie das Schreiben von lesbarem Code, Fehlerbehandlung und das Arbeiten mit Versionierungsverwaltungssystemen vermittelt.
Themen:
- Datentypen, Schleifen, Verzweigungen
- Klassen, Methoden, Objekte, Aufzählung
- Stack, Queue, Liste, Array
- Interface, Vererbung, Generics
- Lesbarer Code, Kommentare, Fehlerbehandlung, Versionierung
Die Vorlesung Einführung in die Programmierung erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Abgaben zu bewerteten Übungsblättern müssen spätestens am Montag 12 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungsblatt. Hierzu Email an den Übungsleiter: andre.karge@uni-weimar.de.
News:
- Abgabe von Beleg 08 verschoben auf den 07.01.2019
- Download unseres Adventures >hier<
- Erste Vorlesung findet am 15.10.2018 (11-12:30 Uhr) statt!
Vorlesung | Thema | Folien |
---|---|---|
15.10.2018 | Einführung Programmierung | Download |
22.10.2018 | Datentypen, Anweisungen und Methoden | Download |
29.10.2018 | Kontrollstrukturen | Download |
05.11.2018 | Objektorientierung | Download |
12.11.2018 | Arrays, Strings, Static-Schlüsselwort | Download |
19.11.2018 | JVM: Heap, Stack; Parameter, Cloning | Download |
26.11.2018 | Enumerations, Packages, Rekursion | Download |
03.12.2018 | Listen, Stacks, Queues | Download |
10.12.2018 | Polymorphie | Download |
17.12.2018 | Polymorphie | |
07.01.2019 | Probeklausur | |
14.01.2019 | Exceptions und Debugging | Download |
21.01.2019 | Clean Code | Download |
28.01.2019 | Versionskontrolle, IDEs, Build-Systeme | Download |
Übung | Thema | Übungsblatt |
---|---|---|
18.10.2018 | Einführung (Datentypen/ Zahlendarstellung) | |
25.10.2018 | Methoden und Operatoren | Übungsblatt 1 |
01.11.2018 | ||
08.11.2018 | ||
15.11.2018 | ||
22.11.2018 | ||
29.11.2018 | Übungsblatt 6 | |
06.12.2018 | Übungsblatt 7 | |
13.12.2018 | ||
20.12.2018 | Polymorphie Teil 2 | |
10.01.2019 | Probeklausur | |
17.01.2019 | Übungsblatt 9 | |
24.01.2019 | Prüfungsvorbereitung I | |
30.01.2019 | Prüfungsvorbereitung II |
Die Vorlesung Software Engineering erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Die Übungsblätter werden immer am gleichen Tag nach der Vorlesung ausgegeben. Man hat eine Woche Zeit diese zu bearbeiten. Abgaben zu bewerteten Übungsblättern müssen spätestens also mittwochs 23:59 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungszettel. Hierzu Email an den Übungsleiter: Nicolai Ruckel.
News: Ausfall am 16.10.2018
Vorlesung | Thema | Folien |
---|---|---|
09.10.2018 | Einführung & Software Lebenszyklus | slides |
16.10.2018 | Ausfall | slides |
23.10.2018 | Requirements Engineering | ~ |
30.10.2018 | Responsibility-Driven Design | slides |
06.11.2018 | UML Wiederholung | slides 1 & 2 |
13.11.2018 | Design Patterns | slides |
20.11.2018 | Design & Architektur | slides |
27.11.2018 | Design & Architektur 2 | |
04.12.2018 | Implementierung | slides |
11.12.2018 | Testen | slides |
18.12.2018 | Wartung und Evolution | slides |
08.01.2019 | Softwareentwicklungsprozesse | slides |
15.01.2019 | Projektmanagement + SE Evolution | slides |
22.01.2019 | Industrievorlesung |
Übung | Thema | Übungsblatt |
---|---|---|
12.10.2018 | Allgemeine Hinweise, Git, Polymorphie in Java | - |
19.10.2018 | entfällt | - |
26.10.2018 | Besprechung Übungsblatt 1, Gradle | Übungsblatt 1, Gradle-Projekt |
02.11.2018 | Java-Projekte | - |
09.11.2018 | entfällt | Übungsblatt 2 |
16.11.2018 | Besprechung Übungsblatt 2 | Übungsblatt 3 |
23.11.2018 | Besprechung Übungsblatt 3 | Übungsblatt 4 |
30.11.2018 | Besprechung Übungsblatt 4, Musterlösung | Übungsblatt 5 |
07.12.2018 | Besprechung Übungsblatt 5 | Übungsblatt 6 |
14.12.2018 | Besprechung Übungsblatt 6, Musterlösung | Übungsblatt 7, Interval.zip |
11.01.2019 | Besprechung Übungsblatt 7 | Übungsblatt 8 |
18.01.2019 | Besprechung Übungsblatt 8 | - |
25.01.2019 | Klausurvorbereitung | - |
In this interactive seminar, students will learn the current state of the art in code completion, API suggestion, auto repair, and program synthesis. The main focus will be on advanced machine-learning techniques involving natural language processing, neural nets, and genetic algorithms.
The students will read 2-4 papers, extract the key ideas, and present them to their colleagues. Depending on the papers and tasks, the students will either implement the networks or write a summary report about them.
Introduction to Deep Learning jupyter notebook
Talk Dates
Date | Talk order | Papers |
---|---|---|
04.12.2018 | 1st |
|
04.12.2018 | 2nd |
|
04.12.2018 | 3rd |
|
11.12.2018 | 1st |
|
11.12.2018 | 2nd |
|
11.12.2018 | 3rd |
|
18.12.2018 | 1st |
|
18.12.2018 | 2nd |
|
18.12.2018 | 3rd |
|
08.01.2019 | 1st |
|
08.01.2019 | 2nd |
|
Slides
Date | Lecture |
---|---|
2018-10-09 | 01-motivation |
2018-10-23 | 02-howToPresent |
Software product lines and configurable software systems are the main driving factor for mass customization, tailor-made products, and product diversity while keeping a maintainable code base and saving development time. The lecture will teach about central elements of product line modelling and implementation.
Students should understand the following techniques and theories:
- Configuration management and variability modeling
- Classic and modern programming techniques, such as preprocessors, version control systems, components, frameworks, aspect-oriented programming, and feature-oriented programming
- Feature interactions and virtual separation of concerns
Information: Digital engineering students need to successfully complete an additional task, since they obtain 6ECTS instead of 4.5 for students from CS4DM and HCI.
News:
- Oral exams will be at: 27th of July 2018. Please write an eMail to max.weber@uni-weimar.de to register for the oral exam.
- The first lecture starts at Wednesday, 4th of April, 9:15am at HK7 in Karl-Hausknecht Street.
- The first exercise starts at Friday, 6th of April, 11:15am at HK7 in Karl-Hausknecht Street.
Lecture | Topic | Resources |
---|---|---|
04.04.2018 | 1) Introduction Software Product Line Engineering | |
06.04.2018 | Exercise: First assignment | assignment 1 example implementation |
11.04.2018 | 2) Development Process and Variability Modelling | slides |
13.04.2018 | Exercise: | |
18.04.2018 | 3) Runtime Variability | |
20.04.2018 | Exercise: | practical session |
25.04.2018 | 4) Version Control Systems and Build Systems + 5) Preprocessors | |
27.04.2018 | Exercise: | assignment 2 |
02.05.2018 | 6) Components and Frameworks | |
04.05.2018 | Exercise: | practical session |
09.05.2018 | 7) Components and Frameworks | |
11.05.2018 | Exercise: | assignment 3 |
16.05.2018 | 8) Feature-oriented Programming | slides |
18.05.2018 | Exercise: | assignment 4 template 04 |
23.05.2018 | 9) Aspect-oriented Programming | |
25.05.2018 | No exercise | |
30.05.2018 | No lecture |
|
01.06.2018 | Exercise | |
06.06.2018 | No lecture | |
08.06.2018 | No exercise | |
13.06.2018 | 10) Aspects vs. Features vs. Improved Preprocessors | slides |
15.06.2018 | Exercise | assignment 5 |
20.06.2018 | 11) Feature Interactions | slides |
22.06.2018 | Exercise | |
27.06.2018 | 12) Optimizing Non-Functional Properties | slides |
29.06.2018 | Exercise | assignment 6 task2 Foo.java SimpleAudioPlayer |
04.07.2018 | 13) ~ | ~ |
06.07.2018 | Exercise | |
11.07.2018 | 14) Refactoring + Big Picture | slides |
Search-Based Software Engineering is about 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, the role of exploration vs. exploitation, single-state vs. multi-state optimization methods as well as key concepts about dimensionality reduction to make optimization tractable.
Information: Students who haven already taken the course Machine Learning for Software Engineering are not eligble to take this course, since this is basically a rebrand of this course. Furtermore, digital engineering students need to successfully complete an additional task, since they obtain 6ECTS instead of 4.5 for students from CS4DM and HCI.
News:
- Dates are out for the oral exams: 25.07., 26.07., 30.07. 2018. Please write an eMail to andre.karge@uni-weimar.de to register for an oral exam! State at least 2 days with your preferrence.
Timeslot Wednesday 2018-07-25 Thursday 2018-07-26 Monday 2018-07-30 09:00 - 09:30 reserved 09:30 - 10:00 reserved reserved 10:00 - 10:30 reserved reserved reserved 10:30 - 11:00 reserved reserved reserved 11:00 - 11:30 reserved reserved 11:30 - 12:00 reserved reserved 13:00 - 13:30 reserved reserved 13:30 - 14:00 reserved reserved 14:00 - 14:30 reserved 14:30 - 15:00 reserved - No lecture on Monday May 28th due to illness!
- The first lecture starts at Monday, 9th of April, 9:15am at SR015 in B11.
- The first exercise starts with a Python tutorial at Tuesday, 17th of April, 9:15am at SR015 in B11.
Lecture | Topic | Resources |
---|---|---|
09.04.2018 | 1) Introduction to the lecture and optimization Problems | slides |
16.04.2018 | 2) Single-State Optimization Techniques | |
17.04.2018 | Tutorial on Python and Numpy | |
23.04.2018 | 3) Single-State: Simulated Annealing, Tabu Search, and Iterated Local Search; Multi-State Optimization Techniques: Evolutionary Algorithms | |
24.04.2018 | Exercise: Implementing Tabu Search and ILS; the Travelling Salesman Problem in Python | |
30.04.2018 | 4) Multi-State Optimization Techniques: Genetic Algorithms, Crossover, Line Recombination, Selection Operators | |
07.05.2018 | 5) Multi-State Optimization |
|
08.05.2018 | Exercise: Genetic Algorithm | |
14.05.2018 | 6) Representation of Problems (how to encode?) | slides |
15.05.2018 | Exercise: 2nd Task | |
21.05.2018 | Whitsun (no lecture) | |
22.05.2018 | Exercise |
|
28.05.2018 | No lecture |
|
29.05.2018 | Exercise | |
05.06.2018 | No lecture |
|
11.06.2018 | 6) Continued | |
12.06.2018 | 7) Elitism, Steady-State Algorithm, Memetic Algorithm, Scatter Search, Differential Evolution, Particle Swarm Optimization | |
18.06.2018 | 7) ~ | |
19.06.2018 | Exercise | |
25.06.2019 | 8) Multi-Objective Optimization | slides |
02.07.2018 | 9) Combinatorial Optimization Problems (Ant Colony Optimization, Guided Local Search, etc.) | |
09.07.2018 | 10) Constraint Satisfaction Problem | slides |
10.07.2018 | Excercie: Constraint Satisfaction Problem |
Die Vorlesung Einführung in die Programmierung erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Abgaben zu bewerteten Übungsblättern müssen spätestens am Montag 12 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungsblatt. Hierzu Email an den/die jeweiligeN ÜbungsleiterIn: nathalie.jolanthe.dittrich@uni-weimar.de bzw. hans.lienhop@uni-weimar.de
News:
- Der Abgabetermin für das letzte Übungsblatt ist der 31.01.2017. Das Blatt wurde entsprechend aktualisiert.
- Erste Vorlesung im neuen Jahr findet am 2.1.2017 statt. Ich wünsche allen einen guten Rutsch ins neue Jahr!
- Hinweis: Aufgabe 3 Blatt 2 hat sich geändert.
- Hinweis zum Blatt 1: Geben Sie bei gültigen Objekten einfach eine gültige Belegung aller Attribute Ihrer Klasse an und bei ungültigen Objekten, eine entsprechend falsche Belegung bzw. falsche Attribute.
- Bitten gründen Sie 2er Teams und schicken die Namen der Mitglieder und deren Matrikelnummern per Email an hans.lienhop@uni-weimar.de. Anschließend werden Sie einer Teamnummer (unter der Sie Ihre Abgaben einreichen können) sowie der Übungsgruppe (die Ihren Übungstermin bestimmt) zugewiesen. Falls jemand kein Teampartner findet, dann wird in der ersten Übung ein entsprechendes Team gebildet. Wichtig: Geben Sie bereits bei der Teammeldung Ihre Präferenz für die Übungszeit mit an. Wir können zwar nicht garantieren, dass alle Teams Ihre Wunschzeiten bekommen, da wir ausgeglichene Gruppen erreichen wollen, jedoch werden wir den Wunsch bei der Einteilung mit berücksichtigen.
Vorlesung | Thema | Folien |
---|---|---|
10.10.2016 | Einführung / Python | |
17.10.2016 | Java: Struktur (Klassen/Objekte) | Skript |
24.10.2016 | Java: Verhalten (Methoden/Operatoren) | |
31.10.2016 | Ausfall (Reformationstag) | |
07.11.2016 | Objektinstantiierung, Methodenaufrufe, Kontrollstrukturen | |
14.11.2016 | Schleifen und Arrays | |
21.11.2016 | Heap & Stack in Java, Referenzen | |
28.11.2016 | Packages, Ennumerations, Static | Skript |
05.12.2016 | Style & Code Guidelines, Kommentare | Skript |
12.12.2016 | Ausfall wegen Krankheit | |
02.01.2017 | Listen, Stacks, etc. | Skript |
09.01.2017 | Fehler und Fehlerbehandlung | |
16.01.2017 | Polymorphie | Skript |
23.01.2017 | Versionsverwaltung, IDEs, Build Tools | Skript |
Übung | Thema | Übungsblatt | Bewertet | Tutor |
---|---|---|---|---|
13.10.2016 | Python Einführung | Nur Skript | Nein | Hans Lienhop |
20.10.2016 | Struktur / Zahlendarstellung | Blatt1 | Ja | Nathalie Dittrich |
27.10.2016 | Methoden und Operatoren | Blatt2 | Ja | Hans Lienhop |
03.11.2016 | Wiederholung | Kein Blatt | Nein | Nathalie Dittrich |
10.11.2016 | Objekte und Kontrollstrukturen | Ja | Hans Lienhop | |
17.11.2016 | Arrays und Schleifen | Blatt4 | Ja | Nathalie Dittrich |
24.11.2016 | Wiederholung / Übung | Kein Blatt | Nein | Hans Lienhop |
01.12.2016 | Wiederholung / Übung | Kein Blatt | Nein | Nathalie Dittrich |
08.12.2016 | Wiederholung / Übung | Kein Blatt | Nein | Hans Lienhop |
15.12.2016 | Listen, Stacks, Queues | kein Blatt | Nein | Nathalie Dittrich |
05.01.2017 | Listen, Stacks, etc. | Blatt5 | Ja | Nathalie Dittrich |
12.01.2017 | Testing | Kein Blatt | Nein | Hans Lienhop |
19.01.2017 | Generics & Vererbung | Blatt6 | Ja | Nathalie Dittrich |
26.01.2017 | Interfaces | Kein Blatt | Nein | Hans Lienhop |
Die Studierenden werden im Projekt Methoden des maschinellen Lernens auf Probleme im Bereich des Software Engineerings anwenden. Dabei werden sowohl neuartige Techniken, wie z.B. Deep Learning, als auch klassische Methoden, wie random forests, logistic regression, etc. eingesetzt, um aktuelle Probleme im Bereich der Softwareentwicklung und Wartung zu beheben.
Ausgewählte Problemfelder:
- Automatisches Generieren von Tests
- Automatisches Fixen von Bugs
- Vorhersage von Merge-Konflikten in Versionsverwaltungssystemen
- Parametertuning von Robotern und Softwaresystemen
Ablauf:
- Problemfeld wird festgelegt
- Einarbeitung in das Problemfeld mittels Literaturstudie
- Erarbeitung eines Konzeptes zum Lösen der Probleme
- Implementierung des Konzeptes
- Evaluierung des Konzeptes
- Schriftliche Ausarbeitung des Projektes
Studierende arbeiten an allen Phasen des Projektes, jedoch wird es Phasenverantwortliche geben, die auch eine Abschlusspräsentation für die jeweilige Phase.
Vermittelte Kompetenzen:
- Softskills (Präsentieren, Diskutieren, Teamwork, Schreiben eines wissenschaftlichen Artikels)
- Vertieftes Wissen im Bereich des Software Engineerings
- Vertieftes Wissens und Anwendung im Bereich des maschinellen Lernens
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.
Lecture | Topic | Resources |
---|---|---|
04.04.2017 | 1) Introduction to the lecture and optimization Problems | Script |
10.04.2017 | Tutorial on Python and Numpy | Notebook |
11.04.2017 | 2) Single-State Optimization Techniques | Notebook from lecture |
18.04.2017 | 3) Single-State: Simulated Annealing, Tabu Search, and Iterated Local Search; Multi-State Optimization Techniques: Evolutionary Algorithms | |
24.04.2017 | Exercise: Implementing Tabu Search and ILS; the Travelling Salesman Problem in Python | |
25.04.2017 | 4) Multi-State Optimization Techniques: Genetic Algorithms, Crossover, Line Recombination, Selection Operators | |
02.05.2017 | 5) Elitism, Steady-State Algorithm, Memetic Algorithm, Scatter Search, Differential Evolution, Particle Swarm Optimization | |
08.05.2017 | Exercise: 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 |
09.05.2017 | 6) Multi-Objective Optimization | Script |
15.05.2017 | Exercise: Application to Software Engineering Problems (read the papers as preparation to the exercise) + Representation of Problems (how to encode?) | Script |
16.05.2017 | 7) Combinatorial Optimization Problems (Ant Colony Optimization, Guided Local Search, etc.) | Script |
22.05.2017 | No exercise |
|
23.05.2017 | 8) Ant Colony Optimization, Constraint Satisfaction Problem |
|
29.05.2017 | Exercise: Project Introduction | Script |
30.05.2017 | 9) Constraint Satisfaction Problem | |
05.06.2017 | No exercise:Whitsun | |
06.06.2017 | 10) Canceled! | |
12.06.2017 | Exercise: Constraint Satisfaction Problem examples | |
13.06.2017 | 11) Dimensionality Reduction: PCA | |
19.06.2017 | Exercise: Canceled! | |
20.06.2017 | 12) Dimensionality Reduction: PCA continued + Feature Selection | See above |
26.06.2017 | Exercise: Tutorial on Keras | Notebook |
27.06.2017 | 13) Introduction to Neuronal Networks | |
03.07.2017 | Exercise:Tutorial on TensorFlow | Notebook |
04.07.2017 | 14) Recap + Architectures of Neuronal Networks | Script |
11.07.2017 | 15) Repetition + Summary of the Course |
Modern Software Technologies
Note: We will have our first milestone meeting at room 003 at the Berkaer Straße 1.
The seminar teaches theoretical and practical knowledge about modern software technologies, which are used in nearly all software project nowadays. The topics will follow a running example, in which all technologies can be tested and applied. The students will be assigned to a technology for which they will give a presentation about the key concepts and usage scenarios of the respective technology. A tutorial follows each presentation, in which the presenter teaches the other students in actually applying the technique.
The used technologies differ depending on the number of students and include the following:
- MicroServices
- Code Analysis with SonarQube and Coveralls
- Continuous integration & delivery with Ansible and Travis CI
- Dependency Management with Maven
- Enterprise software development with Spring Boot
- REST
- JavaScript frontend development with Vue.js
- Docker
- JUnit
- (Bonus) Logging with Logback and Log4J
- (Bonus) Log Analysis with Elastic Search
- (Bonus) Ticketing and Issue System with Jira / GitHub Issues
This is all framed in a real-world Project, in which we will digitize the booking process of the Ferienpass-Weimar.de.
Requirements are a successfully completed Software Engineering Course.
Bitte alle Teilnehmer per Email mit Topic + GitHub Account bei mir melden. Vielen Dank!
Wichtige Links:
GitHub repo: https://github.com/digital-bauhaus
Slack Channel: https://digital-bauhaus.slack.com/
Date | Description |
---|---|
10.10.2017 | Introduction & Topics >Folien< |
17.10.2017 | Customer Meeting & Requirements Elicitation: Ferienpass-Weimar.de |
24.10.2017 | Architecture and Topics |
07.11.2017 | How to prepare and give a presentation? |
Die Vorlesung Einführung in die Programmierung erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Abgaben zu bewerteten Übungsblättern müssen spätestens am Montag 12 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungsblatt. Hierzu Email an den/die jeweiligeN ÜbungsleiterIn: nathalie.jolanthe.dittrich@uni-weimar.de.
News:
- Erste Vorlesung findet am 16.10.2017 (11-12:30 Uhr) statt!
- Bitten gründen Sie 2er Teams und schicken die Namen der Mitglieder und deren Matrikelnummern per Email an nathalie.jolanthe.dittrich@uni-weimar.de. Anschließend werden Sie einer Teamnummer (unter der Sie Ihre Abgaben einreichen können) sowie der Übungsgruppe (die Ihren Übungstermin bestimmt) zugewiesen. Falls jemand kein Teampartner findet, dann wird in der ersten Übung ein entsprechendes Team gebildet. Wichtig: Geben Sie bereits bei der Teammeldung Ihre Präferenz für die Übungszeit mit an. Wir können zwar nicht garantieren, dass alle Teams Ihre Wunschzeiten bekommen, da wir ausgeglichene Gruppen erreichen wollen, jedoch werden wir den Wunsch bei der Einteilung mit berücksichtigen.
Vorlesung | Thema | Folien |
---|---|---|
16.10.2017 | Einführung | |
23.10.2017 | Datentypen, Methoden, Zuweisungen, Operatoren | Skript |
30.10.2017 | Kontrollstrukturen: If, Switch, Schleifen, Scope | |
06.11.2017 | OOP: Klassen, Objekte, Instantiierung, Methodenaufrufe | |
13.11.2017 | Arrays, Static-Schlüsselwort, String | |
20.11.2017 | Heap & Stack in Java, Referenzen, Cloning | |
27.11.2017 | Packages, Enumerations, Recursion | Skript |
04.12.2017 | Listen | Skript |
11.12.2017 | Listen, Stacks, etc. | ~ |
18.12.2017 | Polymorphie | |
08.01.2018 | Probeklausur | -- |
15.01.2018 | Ausfall | -- |
22.01.2018 | Fehler und Fehlerbehandlung | Skript |
29.01.2018 | Style & Code Guidelines, Kommentare | Skript |
Übung | Thema | Übungsblatt | Bewertet | |
---|---|---|---|---|
19.10.2017 | Datentypen/ Zahlendarstellung | Blatt1 | Ja | |
26.10.2017 | Methoden und Operatoren | Blatt 2 | Ja | |
02.11.2017 | Wiederholung | Blatt 3 | Ja | |
09.11.2017 | Objekte und Kontrollstrukturen | LösungAusÜbung | Nein | |
16.11.2017 | Arrays und Schleifen | Blatt4 | Ja | |
23.11.2017 | Wiederholung / Übung | Blatt5 | Ja | |
30.11.2017 | Rekursion, Klonen, etc. | - | Nein | |
07.12.2017 | Wiederholung / Übung | - | Nein | |
14.12.2017 | Listen, Stacks, Queues | Blatt6 | Ja | |
21.12.2017 | Generics & Vererbung | - | Nein | |
04.01.2018 |
| - | Nein | |
11.01.2018 | Wiederholung / Übung | - | Nein | |
18.01.2018 | Probeklausur Lösung | Ja | ||
25.01.2018 | Testing | - | Nein |
Update: Leider muss der Industrievortrag auf Januar verschoben werden. Siehe geänderten Lehrplan.
Die Vorlesung Software Engineering erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Die Übungsblätter werden immer am gleichen Tag nach der Vorlesung ausgegeben. Man hat eine Woche Zeit diese zu bearbeiten. Abgaben zu bewerteten Übungsblättern müssen spätestens also mittwochs 23:59 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungszettel. Hierzu Email an den Übungsleiter: Philipp Seltmann.
Vorlesung | Thema | Folien |
---|---|---|
10.10.2017 | Einführung / Softwarelebenszyklus | Download |
17.10.2017 | Anforderungsanalyse (Requirements Engineering) | Download |
24.10.2017 | Responsibility-Driven Design | Download |
31.10.2017 | Ausfall: Reformationstag | |
07.11.2017 | UML | |
14.11.2017 | Design Patterns | Download |
21.11.2017 | Design & Architektur | Download |
28.11.2017 | Implementierung | Download |
05.12.2017 | Implementierung | ~ |
12.12.2017 | Testen | Download |
19.12.2017 | Testen | ~ |
09.01.2018 | Wartung und Evolution + Softwareentwicklungsprozesse | Download |
16.01.2018 | Ausfall | - |
23.01.2018 | Softwareentwicklungsprozesse + Projektmanagement | |
30.01.2018 | Gastvorlesung: Jonas Hecht von codecentric: Real-Life Software Engineering | - |
Übung | Thema | Übungsblatt | Bewertet |
---|---|---|---|
20.10.2017 | Versionsverwaltung | Req. Eng. | Ja |
27.10.2017 | Requirements Engineering | Resp.Design | Ja |
03.11.2017 | Responsibility-Driven Design | entfällt | Nein |
10.11.2017 | UML | UML | Ja |
17.11.2017 | Design Patterns | Patterns | Ja |
24.11.2017 | Architektur | Architektur | Ja |
01.12.2017 | Implementierung | Implementierung | Ja |
08.12.2017 | Testen | - | Nein |
15.12.2017 | Testen & Debugging | Testen LinkedList Interval | Ja |
12.01.2018 | SW Qualität & Wartung | TBA | Ja |
19.01.2018 | SW Entwicklungsprozesse | TBA | Ja |
26.01.2017 | Projektmanagement+Klausurvorbereitung | Nein | Nein |
Hinweis: Erste Übung im neuen Jahr ist am 13.1.2017.
Die Vorlesung Software Engineering erfordert als Zulassungsvoraussetzung für die Klausur, dass mindestens 50% der Punkte in den bewerteten Übungsblättern erzielt werden. Die Übungsblätter werden immer am gleichen Tag nach der Vorlesung ausgegeben. Man hat eine Woche Zeit diese zu bearbeiten. Abgaben zu bewerteten Übungsblättern müssen spätestens also mittwochs 23:59 Uhr (CEST;Berlin) abgegeben sein. Das genaue Datum für die jeweilige Abgabe finden Sie auf dem Übungszettel. Hierzu Email an den Übungsleiter: Philipp Seltmann.
Vorlesung | Thema | Folien |
---|---|---|
13.10.2016 | Einführung / Softwarelebenszyklus | Download |
20.10.2016 | Anforderungsanalyse (Requirements Engineering) | Download |
27.10.2016 | Responsibility-Driven Design | Download |
03.11.2016 | UML | |
10.11.2016 | Design Patterns | Download |
17.11.2016 | Design & Architektur | Download |
24.11.2016 | Implementierung | Download |
01.12.2016 | Testen | Download |
08.12.2016 | Gastvorlesung: Prof. Dr.-Ing. Thomas Leich (FH Harz, METOP AG): Global SE + SE in Praxis | |
15.12.2016 | Ausfall wegen Krankheit | |
05.01.2017 | Wartung und Evolution | Download |
12.01.2017 | Softwareentwicklungsprozesse | Download |
19.01.2017 | Projektmanagement | Download |
26.01.2017 | Gastvorlesung: Jonas Hecht von codecentric: Real-Life Software Engineering --Bewertung aktueller Ansätze des Software Engineerings anhand praktischer Erfahrungen eines IT-Consultants |
Übung | Thema | Übungsblatt | Bewertet |
---|---|---|---|
21.10.2016 | Java vs. C++; Versionsverwaltungssysteme | Ja | |
28.10.2016 | Responsibility-Driven Design | Ja | |
04.11.2016 | UML | Ja | |
11.11.2016 | Design Patterns | Blatt4 (engl.) | Ja |
18.11.2016 | Architektur | Ja | |
25.11.2016 | Implementierung (Abgabe erst am 8.12.) | Ja | |
02.12.2016 | Testen | Ja | |
09.12.2016 | Testen & Debugging | Folien | |
13.01.2017 | SW Qualität & Wartung | Ja | |
20.01.2017 | SW Entwicklungsprozesse | Ja | |
27.01.2017 | Projektmanagement | Ja | |
03.02.2017 | Klausurvorbereitung | Folien | Nein |