News
Kick Off: 24.04.Written on 16.04.26 by Dominic Zimmer Dear participants, welcome to the proseminar Pearls of Functional Programming! We will kick off the seminar next week, on Friday, 24th of April, from 16:00 in E1.3 room 528. Attending the kick-off is mandatory to participate, so please inform me of your absence ahead of time. In the kick-off I… Read more Dear participants, welcome to the proseminar Pearls of Functional Programming! We will kick off the seminar next week, on Friday, 24th of April, from 16:00 in E1.3 room 528. Attending the kick-off is mandatory to participate, so please inform me of your absence ahead of time. In the kick-off I will tell you about the structure of the seminar and what you should expect from the rest of the semester. During the seminar, you will read and present an academic paper. A pre selection of papers to choose from will become available before the kick-off. Stay tuned. See you soon, Dominic |
Pearls of Functional Programming
"Functional Pearls" are the focus of this Proseminar. Functional pearls are elegant, instructive examples of functional programming. They are supposed to be fun, and they teach important programming techniques and fundamental design principles. This pertains, among others, to
- elegance in implementing algorithms,
- domain-specifc elegance (e.g. in parsing or in visualization),
- derivation of efficient implementations from inefficient references.
The individual presentation topics will mainly be based on research articles published as "Functional Pearls" in the Journal of Functional Programming or in leading conferences in the area of programming languages. Many of those works make use of the programming language Haskell. We will therefore spend the first few meetings discussing the quirks and particularities of Haskell, and contrast them to OCaml.
Besides the technical focus of the seminar, the learning objectives encompass learning how to read and digest scientific papers, how to summarize them, how to present research results, and how to provide feedback to peers.
Structure of the Course
This course is structured into four phases:
- Learning phase,
- Self-study and preparation phase,
- Writing phase, and
- Presentation and rebuttal phase.
In phase 1, the students will be assigned their seminar papers, deepend their understanding of functional programming, learn more about how to give a good presentation, and learn the basics of how to write an academic paper. In phase 2, students will work toward an early draft of their presentation, giving and receiving feedback in a small group of peers on the preliminary versions of their talks. Phase 3 is dedicated to writing a summary of your paper in your own words, using LaTeX, and finally submitting it through a conference management system, as if it were your own research work. After submission of your summary papers, you will be assigned papers of your peers to review. In this peer-review phase, you will write a critiques on your peers' papers, giving valuable feedback to the author. Lastly, in Phase 4 you will present your paper to your peers and incooperate the feedback your reviewers gave into your write-up.
Participation in all four phases is required to obtain ECTS.
Grading
Your final grade will likely be based
- mainly on the quality of your final presentation,
- marginally on the feedback given and realized during the preparation phase,
- marignally on the written summary of your assigned paper, and
- marginally on the implementation of critiques received, as well the as critiques written for your peers.
More details regarding grading will be discussed during the kick-off meeting.
Papers
Curious students may wish to take a peek at a superset of papers presented in previous iterations here.
