Programowanie funkcyjne zima 2023/24

Język wykładowy Polski
Opiekun Piotr Polesiuk
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

Programowanie funkcyjne jest stylem programowania opartym na obliczaniu wartości wyrażeń, w przeciwieństwie do programowania imperatywnego, wykorzystującego modyfikacje stanu programu przez instrukcje. Studenci znają już ten paradygmat z przedmiotu "Metody programowania", gdzie były wykorzystywane języki Racket i Plait. Celem tego wykładu jest pogłębiona prezentacja programowania funkcyjnego w świecie języków z bogatymi systemami typów. W trakcie wykładu będą przedstawione pojęcia i techniki programowania funkcyjnego z wykorzystaniem dwóch dojrzałych języków programowania (OCaml i Haskell) oraz kilku eksperymentalnych (Helium, Idris, ...). Spora część wykładu będzie dotyczyła programowania z rozmaitymi efektami obliczeniowymi (stan, wejście/wyjście, nawroty, kontynuacje) w czysto funkcyjny sposób. ### Wymagania * Metody programowania ### Program 1. Algebraiczne typy danych i dopasowanie wzorca 2. Abstrakcja danych i system modułów 3. Wybrane trwałe struktury danych 4. Modyfikowalny stan i leniwość 5. Uogólnione algebraiczne typy danych (GADT) 6. Styl kontynuacyjny (CPS) 7. Monady 8. Klasy typów 9. Transformatory monad 10. Indeksowane rodziny typów 11. Efekty algebraiczne 12. Elementy programowania z typami zależnymi

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Piotr Polesiuk
wt 12:00-14:00 (s. 25) 65 46 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Maciej Piróg
śr 08:00-10:00 (s. 139) 15 11 0
Maciej Piróg
śr 10:00-12:00 (s. 139) 15 10 0
Piotr Lisowski
pt 08:00-10:00 (s. 109) 15 11 0
Piotr Polesiuk
pt 10:00-12:00 (s. 139) 15 14 2

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Piotr Polesiuk 338 wtorek 14-16
Maciej Piróg 336 środa 10-11
Piotr Lisowski 325 czwartek 14:15 - 16:00. Wyłącznie po wcześniejszym kontakcie mailowym