Fortgeschrittene funktionale Programmierung
LVA 185.A05, VU 2.0, ECTS 3.0, 2019 S
(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
- Changes are announced below. Please, stay tuned. More to come soon.
- Friday, June 14, 2019, 4.15 p.m. - 5.45 p.m.,
Hörsaal EI 3A, Elektrot.Institutsg., 2. Etage, Gußhausstr. 25-29 (last lecture).
- Thursday, June 13, 2019: No lecture.
- Friday, June 7, 2019, 4.15 p.m. - 5.45 p.m.,
Hörsaal EI 3A, Elektrot.Institutsg., 2. Etage, Gußhausstr. 25-29.
- Thursday, June 6, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, May 30, 2019: No lecture (Public holiday)
- Thursday, May 23, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, May 16, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, May 9, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, May 2, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, April 25, 2019: No lecture (Easter holiday).
- Thursday, April 18, 2019: No lecture (Easter holiday).
- Thursday, April 11, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, April 4, 2019: No lecture.
- Thursday, March 28, 2019: No lecture.
- Friday, March 22, 2019, 4.15 p.m. - 5.45 p.m.,
EI 4 Reithoffer HS,
Elektrot.Institutsg., Gußhausstr. 25-29, 2nd floor.
- Thursday, March 21, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, March 14, 2019, 4.15 p.m. - 5.45 p.m.,
Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
- Thursday, March 7, 2019, 4.15 p.m. - 5.45 p.m.,
preliminary course meeting and first lecture, Seminarraum Argentinierstr. EAEG06,
Argentinierstr. 8 (entrance Paniglgasse).
Registration and Course Start
Registration takes place via TISS at
TISS/185.A05
until
Friday, 15 March 2019, 1.00 pm.
The course starts with a preliminary
course meeting and the first
lecture on Thursday, 7 March 2019, 4.15 p.m. to 5.45 p.m.,
in the lecture room on the ground floor of the Institutsgeb. located
at Argentinierstr. 8.
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
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 programming assignments and the chapters 1 to 11, 13, and 14
of the lecture course.
Please make an appointment by e-mail or phone.
Regarding the final oral examination, you can
choose this term between two options:
- Right away (recommended): The oral examination consists of two parts of ca. 20min. each. Part 1:
Presenting and discussing your solutions of the programming assignments.
Part 2: Oral examination about the topics of the course based on the
lecture materials. Group appointments can be made
(essentially) any time by email or phone.
- Postponed: After receipt of the feedback from the evaluation system on your
programming assignment submissions, there will be another 3-week period allowing
you to make updates to your programming submissions and to resubmit them. After the 3-week period
your programming submissions will be evaluated for a second time. Thereafter,
group appointments can be made (essentially) any time by email or phone
for the final oral examination of ca. 20min. about the topics of the course based on the
lecture materials.
Course Materials
Documents for the lecture and tutorial part of the course will be provided
on time.
Lecture
|
Topic
|
Slides
|
Hints and remarks
|
Lecture Notes
| Chap. 1 thru Chap. 18, Bibliography, Appendix
| pdf
| Latest update: 06/26/2019.
|
Pre-Meeting
(03/07/2019)
| Motivation,
organizational issues
| pdf
| Latest update: 03/07/2019.
|
Tutorial
|
Delivery date
|
Assignments
|
Hints and remarks
|
Mon, 10.06.2019
| Wed, 19.06.2019 (15:00)
|
Assignment 8
| Last assignment.
|
Wed, 05.06.2019
| Wed, 12.06.2019 (15:00)
|
Assignment 7
| Code fragments for Assignment 7.
|
Wed, 29.05.2019
| Wed, 05.06.2019 (15:00)
| Assignment 6
| None.
|
Wed, 22.05.2019
| Wed, 29.05.2019 (15:00)
|
Assignment 5
| None.
|
Wed, 15.05.2019
| Wed, 22.05.2019 (15:00)
|
Assignment 4
| None.
|
Fri, 12.04.2019
(was: Wed, 10.04.2019)
| Wed, 15.05.2019 (15:00)
(was: Wed, 08.05.2019 (15:00))
|
Assignment 3
| Easter break, public holiday on May 1, 2019.
|
Thu, 21.03.2019
| Wed, 10.04.2019 (15:00)
|
Assignment 2
| None.
|
Wed, 20.03.2019
| Wed, 03.04.2019 (15:00)
|
Assignment 1
| Submitting assignments: Home directory of your group account (top-level).
|
Thu, 07.03.2019
|
|
| General Remarks
|
Lecturer
Jens Knoop, Tel.: 58801-18510, E-mail:
knoop@complang.tuwien.ac.at