Course "Programming techniques and technologies" SS 2017


  • 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>
  • Assignment assistant: Michael Monschau <ed.znelbok-inu|uahcsnomm#ed.znelbok-inu|uahcsnomm>
  • Infrastructure assistant: Kevin Klein <ed.znelbok-inu|nielkk#ed.znelbok-inu|nielkk>

Dates, times, and places

  • Lecture: Thursdays 12-14, M 001
  • Lab:
    • Mondays 14-16 (K 107)
    • Mondays 16-18 (G 209)


Date Category Subject Material
20.04.2017 Lecture Expression problem (incl. visitor pattern) Slides: (.pdf)
24.04.2017 Lab Expression problem (incl. visitor pattern) Slides + Java: (svn)
27.04.2017 Lecture Design patterns (incl. MVC for GUI programming) Slides: (.pdf)
04.05.2017 Lecture Data programming (JSON, XML, Relational databases) Slides: (.pdf)
08.05.2017 Lab Data programming + QA for assignment #1 Slieds: (.pdf)
11.05.2017 Lecture Data programming (Object/XML/Relational mapping) Slides: (.pdf)
15.05.2017 Lab Data programming + QA for assignment #2 Slides + Java: (svn)
18.05.2017 Lecture Metaprogramming (Domain-specific languages) Slides: (.pdf)
22.05.2017 Lab Metaprogramming + QA for assignment #2 Slides + Java: (svn)
25.05.2017 Lecture Metaprogramming (Reflection) Slides: (.pdf)
29.05.2017 Lab Metaprogramming + QA for assignment #3 Slides + Java: (svn)
01.06.2017 Lecture Mining Software Data Slides: (.pdf)
12.06.2017 Lab Mining Software Data + QA for assignment #4 Slides + Code: (svn)
19.06.2017 Lab Presentation assignment #4 No Slides
22.06.2017 Lecture Distributed systems (incl. RMI, Rest, and messaging) Slides: (.pdf)
26.06.2017 Lab Distributed systems + QA for assignment #5 Slides + Code: (svn)
29.06.2017 Lecture Documentation of technologies Slides (.pdf) + Code: (svn)
03.07.2017 Lab Documentation of technologies + QA for assignment #6 Slides + Code: (svn)
06.07.2017 Lecture Guest lecture: DSL implementation in industry Slides: (.pdf)
10.07.2017 Lab Presentations for assignment #6 Slides: (.pdf)
13.07.2017 Lecture Preparation for exam Slides: (.pdf)
17.07.2017 Lab Preparation for exam -
20.07.2017 Exam - -


Assignment specifications

Links to the specifications will be published in the table below; see column "No".

No Date issued Deadline Topic
1 27.04.2017 10.05.2017 Design patterns
2 11.05.2017 24.05.2017 Data programming
3 25.05.2017 04.06.2017 Metaprogramming
4 01.06.2017 18.06.2017 Mining software data
5 22.06.2017 28.06.2017 Distributed systems
6 29.06.2017 05.07.2017 Documentation of technologies

Assignment logistics

  • Students work in teams of size 5-7.
  • Students with inherited exam admission must not be in teams.
  • Team formation is supported by an online tool; Registration.
  • Assignment solutions are submitted via svn; access details forthcoming.
  • Assignment solutions must be submitted by the deadline to be considered.
  • All deadlines are "end of day Koblenz timezone".
  • Teams must be able to present their solutions, when asked to do so in the lab.
  • Solutions are classified as follows:
    • Fail: Failure to meet deadline or assignment specification.
    • Pass with problems: Realization of the assignment specification with noteworthy problems.
    • Pass without problems: Fully satisfactory realization of the assignment specification.


Exam logistics

  • Date of final: lecture slot as indicated in schedule.
  • Date of resit: at the end of subsequent winter semester.
  • The 6 assignment topics define exactly the exam topics.
  • Thus, there are 6 exam questions with 3 points each (18 points in total).
    • 0 points: no solution.
    • 1 point: some noticable elements of an actual solution.
    • 2 points: significant issues with correctness and completeness.
    • 3 points: no or just minor issues with correctness and completeness.

Exam bonus

Students from teams failing at most for 1 assignment and passing without problems for at least 3 assignments receive a 1-point bonus for the exam.

Exam admission

  • Admission from previous years since 2010 is inherited.
  • Teams must not fail for more than 2 of 6 assignments.
  • Students need to register for the exam via KLIPS.

Supplementary material