Course "Programming techniques and technologies" SS 2016


  • Lecturer: Prof. Ralf Lämmel <ed.znelbok-inu|lemmeal#ed.znelbok-inu|lemmeal>
  • Lab assistant: Hakan Aksu <ed.znelbok-inu|uskanakah#ed.znelbok-inu|uskanakah>
  • Project assistants:
    • Kevin Klein <ed.znelbok-inu|nielkk#ed.znelbok-inu|nielkk>
    • Maximilian Meffert <ed.znelbok-inu|treffemxam#ed.znelbok-inu|treffemxam>
    • Michael Monschau <ed.znelbok-inu|uahcsnomm#ed.znelbok-inu|uahcsnomm>
    • Andreas Schmidt <ed.znelbok-inu|tdimhcsidna#ed.znelbok-inu|tdimhcsidna>


Slides and other material is published before or shortly after each lecture slot.

See here for a continuously evolving slide collection.

  • 14 April: The Expression Problem (.pdf)
  • 21 April: The 101companies project (.pdf) and design patterns (.pdf)
  • 28 April: XML/JSON/SQL data programmability (.pdf)
  • 12 May: The 101worker infrastructure (.pdf)
  • 12 May: Software language processing (.pdf)
  • 2 June: Mining software data (.pdf)
  • 9 June: O/R/X/J mapping (.pdf)
  • 16 June: Web application development (.pdf)
  • 23 June: Distributed programming (.pdf)
  • 30 June: Linguistic architecture (Megamodeling) (.pdf)
  • 7 July: Metaprogramming (.pdf) and AOP (.pdf)
  • 14 July: Preparation final (.pdf)
  • 21 July: Final


Group 1: Mo 14 ct in K107
Group 2: Mo 16 st in G209

Labs start on 25.04.16
No lab on 02.05.16

Date Topic
25.04.16 Assignment 1 & Design patterns
09.05.16  XML, JSON and SQL 
23.05.16 Assignment 2 - topic to group assignment
30.05.16 Student presentations
06.06.16 Mining software data with Python
13.06.16 Assignment 3 - topic to group assignment
20.06.16 Helpful advice for Ass03

Team work

Students need to work in teams that they assemble themselves.

Teams can be of size 5-7.

Each team creates a private git repo at To this end, a team member should create a gitlab group and one project in that group. By 1 May (firm deadline), each team adds all the team members and all the teaching staff for this course (see above) to the repo; read and write permission is required. This process will trigger notifications so that the teaching stuff will be informed about the repos and the teams' members.

The repo must hold all source code and other artifacts for all milestones.

The "implicit" team name is the composition of gitlab group name + gitlab project name.


Assignment Date issued Deadline
An implementation of the 101system 21 April 11 May
Bulk file processing on 101worker 12 May 8 June
Mining software data on 101worker 9 June 29 June
A megamodel 30 June 13 July


Exam dates

  • Final: 21 July 2016 (last lecture slot: 12:15 - 13:45 in M 001)
  • Resit: 16 December 2016 Time: 14:00 - 16:00 Room: E011

Exam admission rules

  • Admission for 2010-2015 is inherited.
  • Students need to successfully complete all assignments.
    • Teams must meet all deadlines and adhere to all constraints.
    • Teams must be able to present their solutions, when asked to do so.
    • Each team member's contribution must be clear.
  • Students need to register for the exam via KLIPS.

Exam bonus based on assignments

The first three assignments are eligible for collecting a bonus for the exam. The bonus is collected by teams and thus by all members of the teams. Each team can collect a bonus for at most two assignments. Each bonus counts as 1 point towards the exam. The assumption is here that the final for the current exam regulations will feature 9 questions with 2 points each. The criteria for the bonus are published with the assignments.