Advanced functional programming
General data
Course ID: | 1000-2M11ZPF |
Erasmus code / ISCED: |
11.303
|
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
|
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 |
Go to timetable
MO TU WYK
LAB
LAB
W TH FR |
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
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 |
Go to timetable
MO TU W TH FR |
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
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 |
Copyright by University of Warsaw.