Fortgeschrittene funktionale Programmierung
LVA 185.A05, VU 2.0, ECTS 3.0, 2013 S
MCI/W, MSE/W
(zweistündige Vorlesung mit Übung; siehe auch
TISS/185.A05)
Are you interested in studying abroad and getting funding for this?
Information on funding opportunities is available
here.
Course Meetings
- Thursday, June 27, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, June 20, 2013: No lecture. The lecture is
moved to June 27, 2013.
Invitation to two Talks on Stream-Programming on June 20, 2013, at
1.00pm and at 2.15 pm:
Talk Announcements
You are cordially invited to attend these presentation!
- Thursday, June 13, 2013: No lecture to allow attending the
epilog.
- Wednesday, June 12, 2013, 4.15 p.m. - 5.45 p.m.,
Library E185.1, Argentinierstr. 8, 4th floor (centre).
- Thursday, June 6, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, May 30, 2013: No lecture (public holiday)
- Wednesday, May 29, 2013, 4.15 p.m. - 5.45 p.m.,
Library E185.1, Argentinierstr. 8, 4th floor (centre).
- Thursday, May 23, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, May 16, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, May 9, 2013: No lecture (public holiday)
- Thursday, May 2, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, April 25, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, April 18, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, April 11, 2013, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 14, 2013: 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 7, 2013, 4.15 p.m. - 5.45 p.m., specific pre-meeting
and first lecture, lecture room on the ground floor of the building Argentinierstr. 8.
- Wednesday, March 6, 2013, 1.00 p.m.,
EI4, 2nd floor, Gusshausstr. 25-29, general pre-meeting on
E185.1-delivered courses.
Registration
The electronic course management system for registration is
open
until 15 March 2013.
Subject and Aim
The course is concerned with advanced concepts and principles of
functional programming and their applications, which the participants
shall learn and conceive in depth and to use and apply competently and
adequately in known as well as in new application scenarios. The
lecture part of the course stretches from functional programming
principles to quality assurance, advanced languages concepts, and
applications. Regularly assigned exercises of the tutorial part of the
course give an hands-on experience of applying the concepts and
principles to problems of suitable kind, size and complexity to deepen
their understanding in theory and practice.
- Part I: Motivation
- Why Functional Programming Matters
- Part II: Programming Principles
- Programming with Streams
- Programming with Higher-Order Functions
- Equational Reasoning
- Part III: Quality Assurance
- Part IV: Advanced Language Concepts
- Functional Arrays
- Abstract Data Types
- Monoids
- Functors
- Monads
- Arrows
- Part V: Applications
- Parsing
- Logical Programming Functionally
- Pretty Printing
- Functional Reactive Programming
- Part VI: Extensions and Prospectives
- Extensions to Parallelism and Real World Programming
- Conclusions and Prospectives
Related Course:
A perfect add-on this term is to attend also the complementary course on:
Previous Knowledge
Basic knowledge of the functional programming style
as imparted e.g. in the course
LVA
185.A03 Funktionale Programmierung is mandatory.
Examination and Final Grade
The final grade is composed of the grades of the weekly assignments
(50%) and the grade of the final oral examination (50%). The final
oral examinations will be by appointment and
will stretch
over the assignments and the chapters 1 to 8, 11, and 13 of the lecture
course. Please make an appointment by e-mail or phone.
Course Materials
Documents for the lecture and tutorial part of the course are
provided below.
Lecture
|
Topic
|
Slides
|
Hints and remarks
|
Lecture Notes
| Chap. 1 thru Chap. 18, Bibliography, Appendix
| pdf
| Latest update: 06/27/2013.
|
Pre-Meeting
(07.03.2013)
| Motivation,
organizational issues
| pdf
| Latest update: 03/01/2013.
|
General E185.1 Pre-Meeting
(06.03.2013)
| Motivation
| pdf
| Latest update: 03/01/2013.
|
Tutorial
|
Due date/2nd due date
|
Assignments
|
Hints and remarks
|
Wed, 12.06.2013
| None.
|
Assignment 11 | Keine Abgabe; freies Üben.
|
Wed, 29.05.2013
| Wed, 12.06.2013 (12:00) /
Wed, 19.06.2013 (12:00)
|
Assignment 10
| The cursor has value 0, if it points to the
first character of the string. (06/04/13)
Submission deadlines extended. (06/04/13).
|
Wed, 22.05.2013
| Wed, 29.05.2013 (12:00) /
Wed, 12.06.2013 (12:00) (extended)
|
Assignment 9
| None.
|
Tue, 14.05.2013
| Wed, 22.05.2013 (12:00) /
Wed, 05.06.2013 (20:00)
|
Assignment 8
| Deadline extended because of public holiday on May 21, 2013.
Calls of "mkTV" shall also be considered for smaller
problem instances, i.e., for sublists of digits of the form
"take i [1..9]" with 1<i<10; text of assignment has
been adjusted accordingly. (05/15/13)
In der Typdefinition von Expr dürfen
beliebige natürliche
Zahlen als Argument des Konstruktors Opd verwendet werden; die
durch den Typnamen Digit suggerierte Einschränkung auf die
Ziffernwerte 1 bis 9 entfällt hier. (05/17/2013).
|
Tue, 30.04.2013
| Tue, 14.05.2013 (12:00) /
Tue, 21.05.2013 (20:00)
|
Assignment 7
| None.
|
Tue, 30.04.2013
| Tue, 07.05.2013 (12:00) /
Tue, 14.05.2013 (20:00)
|
Assignment 6
| None.
|
Tue, 23.04.2013
| Tue, 30.04.2013 (12:00) /
Tue, 07.05.2013 (12:00)
|
Assignment 5
| None.
|
Tue, 16.04.2013
| Tue, 23.04.2013 (12:00) /
Tue, 30.04.2013 (12:00)
|
Assignment 4
| None.
|
Tue, 09.04.2013
| Tue, 16.04.2013 (12:00) /
Tue, 23.04.3013 (12:00)
|
Assignment 3
| None.
|
Wed, 13.03.2013
| Tue, 09.04.2013 (12:00) /
Tue, 16.04.2013 (12:00) /
Tue, 23.04.2013 (12:00)
|
Assignment 2
| Deadline for second submission extended to Tue, April 23, 2013. (04/17/2013)
|
Tue, 12.03.2013
| Tue, 19.03.2013 (12:00) /
Tue, 09.04.2013 (12:00)
|
Assignment 1
| Submitting assignments: home directory of your group account.
|
Lecturer
Jens Knoop, Tel.: 58801-18510, E-mail:
knoop@complang.tuwien.ac.at