Get familiar with cutting-edge programming concepts and programming language research from academic papers, with a focus on functional programming. Novel research is always a bit weird, as the researchers usually focus on solving new problems, so don’t have time to properly explain it. Your job in this seminar is to fill that gap, try some novel programming language, or programming library, or programming abstraction out, write some code, and then write a “tutorial” paper and hold a presentation where you explain what you learnt to your fellow students.
The topics of DAIMPL change every semester, in general the topics are about the design and implementation of abstractions, such as domain-specific programming languages or other concepts that facilitate programming, for example for distributed computing concepts, functional programming or dependent types. You don’t necessarily need to have much experience in functional programming yet (Scala, Haskell, Lean, Coq, Agda, …), but you must be interested and eager to learn it, and some affinity for mathematically-structured, systematic thinking would be useful.
Recommended Prerequisite:
- Lecture “Functional and Object-Oriented Programming” (FOP)
- Lecture “Concepts of Programming Language” (COPL)
- Lecture “Introduction to Scientific Writing”
With this seminar you will experience the core techniques of scientific work. You will have to write a term paper that summarizes your knowledge of an assigned topic after reading a selection of scientific papers. Each participant is also required to give a talk about the topic chosen. Several topics are available, proposals from students can also be evaluated.
There will be some in-person events:
- Orga-Meeting and Topic Application
- Writing Dos and Donts
- Student Presentations
Application Deadline: Before registering for the course, you need to apply for a topic. Participation is limited because of individual supervision. The deadline is usually some time in the first week of course start!
Turnus: Summer & Winter
Kind: Se 03cp
In Tucan: 20-00-0182-se Design and Implementation of Modern Programming Languages