Fortgeschrittene funktionale Programmierung
LVA 185.A05, VU 2.0, ECTS 3.0, 2017 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
- Friday, June 9, 2017: 4.15 p.m. - 5.45 p.m.,
EI 4 Reithoffer HS, Elektrot.Institutsg., Gußhausstr. 25-29, 2nd floor. (final course meeting)
- Thursday, June 8, 2017: No lecture to allow attending the
Gödel-Lecture with Ricardo Baeza-Yates.
- Friday, June 2, 2017: 4.15 p.m. - 5.45 p.m.,
EI 4 Reithoffer HS, Elektrot.Institutsg., Gußhausstr. 25-29, 2nd floor.
- Thursday, June 1, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, May 25, 2017: No lecture (Public holiday)
- Friday, May 19, 2017: 4.15 p.m. - 5.45 p.m.,
EI 5 Hochenegg HS, Elektrot.Institutsg., Gußhausstr. 25-29, 2nd floor.
- Thursday, May 18, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, May 11, 2017: No lecture
- Friday, May 5, 2017: 4.15 p.m. - 5.45 p.m.,
EI 4 Reithoffer HS, Elektrot.Institutsg., Gußhausstr. 25-29, 2nd floor.
- Thursday, May 4, 2017: No lecture to allow attending the
epilog.
- Thursday, April 27: No lecture (General Assembly of the Austrian Computer
Society)
- Wednesday, April 26, 2017: Erasmus Research Talk
Invitation to a Research Talk on
Green Software Laboratory: Towards an Engineering
Discipline for Green Software
by Prof.
Dr. João Saraiva, Universidade do Minho, Braga, Portugal, at 2.15pm in
the Library E185.1, Argentinierstr. 8, 4th floor (centre).
Wednesday to Friday, April 26-28, 2017: Erasmus Lecture Course
Prof.
Dr. João Saraiva will also hold a 7-8 hours
lecture course
including a lab part providing hands-on experience on the topic
of "Green Software Development" from April 26 to April 28. The exact
time slots will be agreed on with attendees. The above research talk
will open the course and introduce in its topic.
You are cordially invited to attend the research talk and the
lecture course of Prof.
Dr. João Saraiva!
- Thursday, April 20, 2017: No lecture (Easter holiday)
- Thursday, April 13, 2017: No lecture (Easter holiday)
- Thursday, April 6, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 30, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 23, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 16, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 9, 2017, 4.15 p.m. - 5.45 p.m.,
lecture room on the ground floor of the building Argentinierstr. 8.
- Thursday, March 2, 2017, 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.
Course Pre-Meeting
A specific pre-meeting for the course takes place on
Thursday, 2 March 2017, 4 p.m.,
in the lecture room Seminarraum, Argentinierstraße 8.
Registration
Registration takes place via TISS at
TISS/185.A05
on or before
Friday, 10 March 2017, 1.00 pm.
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.
Please make an appointment by e-mail or phone.
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/13/2017.
|
Pre-Meeting
(03/02/2017)
| Motivation,
organizational issues
| pdf
| Latest update: 02/28/2017.
|
Tutorial
|
Due date/2nd due date
|
Assignments
|
Hints and remarks
|
Tue, 13.06.2017
| Tue, 20.06.2017 (12:00) /
Tue, 27.06.2017 (12:00)
|
Assignment 8
| Code fragments for assignment 8 (Final assignment).
|
Tue, 06.06.2017
| Tue, 13.06.2017 (12:00) /
Tue, 20.06.2017 (12:00)
|
Assignment 7
| Slides_170606.pdf
|
Tue, 16.05.2017
| Tue, 23.05.2017 (12:00) /
Tue, 30.05.2017 (12:00)
|
Assignment 6
| None.
|
Tue, 02.05.2017
| Tue, 16.05.2017 (12:00) /
Tue, 23.05.2017 (12:00)
|
Assignment 5
| Initial submission period: two weeks.
|
Fri, 07.04.2017
| Tue, 02.05.2017 (12:00) /
Tue, 09.05.2017 (12:00) (Easter break)
|
Assignment 4
| None.
|
Tue, 28.03.2017
| Tue, 04.04.2017 (12:00) /
Tue, 25.04.2017 (12:00) (Easter break)
|
Assignment 3
| None.
|
Tue, 21.03.2017
| Tue, 28.03.2017 (12:00) /
Tue, 04.04.2017 (12:00)
|
Assignment 2
| None.
|
Tue, 14.03.2017
| Tue, 28.03.2017 (12:00) /
Tue, 04.04.2017 (12:00)
|
Assignment 1
|
Submitting assignments: home directory of your group account.
Signatures for null and relativenull added (17.03.2017);
Signatures for remaining functions added; submission
deadline extended (20.03.2017)
|
Lecturer
Jens Knoop, Tel.: 58801-18510, E-mail:
knoop@complang.tuwien.ac.at