Course "Programming techniques and technologies" SS 2017
Staff
- 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)
Schedule
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 | - | - |
Assignments
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
Exam dates
- Exam: 20 July 2017 Time: 12:00 - 14:00 Room: M001
- Resit: 16 February 2018 Time: 12:00 - 14:00 Room: B013
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
- A lecture on the expression problem by R. Lämmel: Channel9 video
- Lecture slides and short videos on internal and external DSLs (including parsing) as well as template processing: http://www.softlang.org/book
- A lecture on Java reflection by R. Lämmel: YouTube video
page revision: 52, last edited: 08 Dec 2017 12:27