|
|
Christian Lindig
Andreas Rossberg
Gert Smolka
Ralph Debusmann
Jan Schwinghammer
This seminar course will study advanced techniques in
functional programming and has three major goals:
-
To learn the best techniques used by functional
programmers, so you can use them in your own work.
-
To learn how to read, summarize, and criticize papers
so you can write better papers yourself.
-
To get a feel for research questions in functional
programming.
Topics
There is no fixed set of topics and participants can
actually suggest papers, but here is a list of possible
topics:
-
The basics of Haskell, a pure, lazy language
-
Monads
-
Haskell type classes vs. ML functors
-
Functional Pearls: clever algorithms and data
structures
-
Debugging functional programs (tools and techniques)
-
Generic Programming
-
Type Systems
-
Implementation of functional languages
Advanced Talks on Wednesday, March 22
All talks in this seminar will be given on Wednesday, March
22, in a conference-like setting. The location is Room 528/45.
If you are interested in the talks but not a member of this
seminar, please send us an email (see below). Each talk will
be 25 minutes long, followed by a discussion. Below is our
tentative schedule.
- 10:00-12:00 - Language Design and Semantics
- 12:00-13:00 - Lunch Break
- 13:00-15:00 - Libraries and Applications
- 15:00-15:30 - Coffee Break
- 15:30-17:30 - Advanced Programming Techniques
- 17:30-18:00 - Wrap Up
Final Papers
Each talk was accompanied by a short written presentation.
These are available as a single PDF (1 MB) file:
advanced-fp-2006.pdf
What to expect
Most seminars hand students a bunch of papers and ask
them to prepare a presentation towards the end of the
semester. This seminar is different: we will read,
discuss, and criticize papers together.
The seminar is organized in two phases. During the
first phase we will read papers, typically one or two
per week. This includes writing assignments and some
programming exercises when appropriate. At each meeting
we are discussing the papers we have read; this may
include group work where we try to answer specific
questions about a paper.
In the second phase each participant prepares a
presentation for one or two papers that we haven't read
collectively but that are related to papers that we
have read. This is accompanied by a short written
presentation.
The overall experience of the seminar will be a bit
like a class in school with exercises, discussion, and
group work, albeit on a different level. Expect to work
for the seminar one full day per week.
Organization
-
During the semester, we meet every Tuesday at 4:00-5:30pm
in room 528/45.
-
You will receive 8 or 9 credit points for successful
participation, depening on your Prüfungsordnung.
-
Amount of work: about 10 hours per week (for 12
weeks).
Evaluation (with results!)
How are we doing? We really want to know and have prepared
some
questions. Your answers are anonymous but you can fill out
the form only once. For this you need a token that we hand out
in the course. Besides your answers to specific questions your
general comments about this course are most valuable to us.
Thanks everybody for participating! If you are curious,
here are the results.
How to reach us
You can reach the organizers collectively by sending email
to the following address:
fp-seminar(at)st.cs.uni-saarland.de
Mailing List
We have a mailing list for all participants. You can ask
questions here and we will also use it for announcements. All
participants are subscribed. Let us know when you want your
address to be removed.
fp-seminar-all(at)st.cs.uni-saarland.de
Documents and Assignments
- pitch.pdf
- Our sales pitch: why Advanced Functional Programming
is great.
- intro.pdf
- Introduction to the course; organization, work load.
- homework-01.pdf
- Homework for Fun with binary heap trees
by Chris Okasaki.
- wadler.pdf
- Philip Wadler and Stephen Blott: How to make ad-hoc
polymorphism less ad hoc.
- homework-02.pdf
- Homework for How to make ad-hoc polymorphism less ad
hoc.
- inclass-02.pdf
- Questions for How to make ad-hoc polymorphism less ad
hoc and homework for Higher-Order Functions for
Parsing.
-
hutton-parsing.pdf
- Graham Hutton: Higher-Order Functions for
Parsing, Journal of Functional Programming, 2(3),
pages 323--343, 1992.
-
inclass-03.pdf
- Question about Higher-Order Functions for
Parsing, homework.
-
wadler-essence-fp.pdf
- Philip Wadler, The essence of functional
programming, Proceedings of the 19th ACM SIGPLAN
Symposium on Principles of Programming Languages, pages
1--14, 1992.
-
inclass-04.pdf
- Question about The essence of functional
programming, homework assignment.
- inclass-05.pdf
- Questions about how to review papers, homework assignment.
-
ramsey-embed.pdf
- Norman Ramsey, Embedding an interpreted language
using higher-order functions and types, Proceedings
of the 2003 workshop on Interpreters, virtual machines and
emulators, pages 6--14, 2003.
-
ramsey-embed-summaries.pdf
- Four one-page summaries about Norman Ramsey's paper
Embedding an interpreted language
using higher-order functions and types, Proceedings
of the 2003 workshop on Interpreters, virtual machines and
emulators, pages 6--14, 2003.
-
inclass-06.pdf
- Questions for
Embedding an interpreted language
using higher-order functions and types by Norman Ramsey,
homework assignment.
- huet-zipper.pdf
- Gerard Huet, The Zipper, Journal of Functional
Programming, 7(5), pages 549--554, September 1997.
-
inclass-07.pdf
- Questions for The Zipper by Gerard Huet, homework
assignment.
-
harris-transaction.pdf
- Composable Memory Transactions by
Tim Harris and others. It appeared in the Proceedings of
the ACM SIGPLAN 2005 Symposium on Principles and Practice
of Parallel Programming, pages 48-60.
-
inclass-08.pdf
- Questions for
Composable Memory Transactions by Tim Harris and
others, homework assignment. The paper in the Proceedings of
the ACM SIGPLAN 2005 Symposium on Principles and Practice of
Parallel Programming, pages 48-60.
-
inclass-09.pdf
- Questions for Fun
with Phantom Types by Ralf Hinze. It appeared as a
chapter in the book The Fun of Programming, edited by Jeremy
Gibbons and Oege de Moor, 2003 Palgrave MacMillan, pages
245-262.
- queinnec.pdf
- Christian Queinnec, The Influence of Browsers on
Evaluators or, Continuations to Program Web Servers,
5th ACM SIGPLAN International Conference on Functional
Programming.
- sweeny.pdf
- Tim Sweeny, The next Mainstream Programming Language,
slides for his invited talk at POPL 2006. Tim Sweeny is the
founder of Epic Games,
the company that created Unreal.
In his talk he surveys how programming languages help or
hinder game development. This was diskussed on Lambda the Ultimate.
-
inclass-10.pdf
- Questions for the paper
by Christian Queinnec, The Influence of Browsers on
Evaluators or, Continuations to Program Web Servers. We
are trying to get a grip on call/cc, the most complicated
control-flow operator.
-
inclass-11.pdf
- A list of papers that
could serve as a starting point for a presentation about an
advanced topic in functional programming. Also: homework for
Origami Programming by Jeremy Gibbons.
-
inclass-12.pdf
- Questions for
Origami Programming by Jeremy Gibbons. Also: a roadmap
for presentations.
How to sign up
Sorry, all spots are taken and you can no longer sign up.
However, you are welcome to visit a seminar session if you are
interested.
<lindig@cs.uni-saarland.de> ·
http://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/index.php
· Stand: 2005-07-20 11:17
|