TU Delft
Education Type
Education print this page print this page     
2016/2017 Electrical Engineering, Mathematics and Computer Science Master Computer Science
Seminar Programming Languages
Responsible Instructor
Name E-mail
Dr. S.T. Erdweg    S.T.Erdweg@tudelft.nl
Prof.dr. E. Visser    E.Visser@tudelft.nl
Contact Hours / Week x/x/x/x
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
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