University of Warsaw - Central Authentication System
Strona główna

Advanced functional programming

General data

Course ID: 1000-2M11ZPF
Erasmus code / ISCED: 11.303 The subject classification code consists of three to five digits, where the first three represent the classification of the discipline according to the Discipline code list applicable to the Socrates/Erasmus program, the fourth (usually 0) - possible further specification of discipline information, the fifth - the degree of subject determined based on the year of study for which the subject is intended. / (0612) Database and network design and administration The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Advanced functional programming
Name in Polish: Zaawansowane programowanie funkcyjne
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: (in Polish) Grupa przedmiotów obieralnych dla informatyki magisterskiej- specjalność Języki programowania
(in Polish) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Elective courses for Computer Science and Machine Learning
ECTS credit allocation (and other scores): 6.00 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: English
Main fields of studies for MISMaP:

computer science

Type of course:

elective monographs

Requirements:

Programming languages and paradigms 1000-216bJPP

Short description:

The lecture aims to present central issues in modern functional programming in languages such as Haskell, Coq, Idris, especially focusing on usung types for program specification and verification.

Full description:

1. Types and type classes (ca 3 weeks)

• Algebraic data types and type classes

• Constructor classes

• Multi-parameter classes, functional dependencies

• Type families. Associated types, generalised algebraic datatypes (GADT)

2. Specifying and testing Haskell programs

Parallel programming in Haskell

• Multi-core and multi-processor programming (SMP)

• Data parallelism (Data Parallel Haskell)

3. Programming with dependent types in Idris

4. Programming with dependent types in Coq

5. Program verification and theorem proving in Coq

6. Parallel programming in Haskell

Bibliography:

1. B. O'Sullivan, J. Goerzen, D. Stewart Real World Haskell O'Reilly Media 2008, http://book.realworldhaskell.org/

2. Adam Chlipala, Certified Programming with Dependent Types, A

Pragmatic Introduction to the Coq Proof Assistant, MIT Press 2013,

http://adam.chlipala.net/cpdt/

3. Yves Bertot, Pierre Castéran, Interactive Theorem Proving and

Program Development Coq'Art: The Calculus of Inductive Constructions,

Springer 2004, https://www.labri.fr/perso/casteran/CoqArt/

4. Simon Marlow, Parallel and Concurrent Programming in Haskell, O'Reilly Media 2013,

http://chimera.labs.oreilly.com/books/1230000000929/

Learning outcomes:

Knowledge

1. has profound knowledge of functional programming

2. knows methods of functional language specification

3. knows methods of parallel programm in a functional language

Abilities

1. is able to design a middle-size functional program

2. is able to use types to specify and verify programs

3. is able to apply functional program parallalisation techniques

Social competences

1. knows limits of own knowledge and understand the need of further education

2. is able to precisely formulate questions, destined to improve understanding of the subject

3. understands the need of systematic work on all long-term projects

Assessment methods and assessment criteria:

Final grade based on lab assignments and their presentation.

Classes in period "Summer semester 2024/25" (past)

Time span: 2025-02-17 - 2025-06-08
Selected timetable range:
Go to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Marcin Benke, Daria Walukiewicz-Chrząszcz
Group instructors: Marcin Benke, Daria Walukiewicz-Chrząszcz
Students list: (inaccessible to you)
Credit: Examination

Classes in period "Summer semester 2025/26" (future)

Time span: 2026-02-16 - 2026-06-07

Selected timetable range:
Go to timetable
Type of class:
Lab, 30 hours more information
Lecture, 30 hours more information
Coordinators: Marcin Benke, Daria Walukiewicz-Chrząszcz
Group instructors: Marcin Benke, Daria Walukiewicz-Chrząszcz
Students list: (inaccessible to you)
Credit: Course - Examination
Lecture - Examination
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
contact accessibility statement site map USOSweb 7.1.2.0-bc9fa12b9 (2025-06-25)