Responsible Instructor |
|
Contact Hours / Week x/x/x/x |
2/0/0/0
|
Education Period |
|
Start Education |
|
Exam Period |
|
Course Language |
|
Expected prior knowledge |
Interest in Programming Languages and Metaprogramming
|
Course Contents |
Metaprograms process and produce source code. A metaprogram treats a regular program as data and thus enables abstractions and reflections outside the scope of regular programming languages.
Metaprogramming techniques find wide-spread application in modern software development. From C++ templates and syntactic macros, to model-driven development, domain-specific languages and aspect-oriented programming: Metaprogramming plays a significant role in many modern programming systems. In this seminar, we study the foundations of metaprogramming and its applications in modern software development.
|
Study Goals |
The student will acquire:
- Skills to read and discuss scientific articles. - Understanding of the field of metaprogramming and the trade-offs between different metaprogramming techniques - Understanding of the application of metaprogramming techniques in software development
|
Education Method |
We will run this seminar as a discussion seminar with meetings twice a week. In each meeting, we discuss a scientific article that has been studied by the participants in advance. The following activities are required for each meeting:
- Reading a scientific article - Writing and submitting a short summary of the article (max 0.5 pages) - Active participation in the discussion of the article
Expected Workload: - 4h Discussion sessions - 6h Reading paper at home - 2h Writing summary at home
|
Assessment |
Mainly based on the participation in the discussion, also taking the submitted summaries into account.
Calculation of the final grade: 0.3 * Summary + 0.7 * Discussion
|