Zaawansowane programowanie funkcyjne 1000-2M11ZPF
1. Typy i klasy
• Typy algebraiczne i klasy typów
• Klasy konstruktorowe
• Klasy wieloparametrowe, zależności funkcyjne
• Rodziny typów, typy skojarzone, uogólnione typy algebraiczne (GADT)
2. Testowanie programów w Haskellu
3. Programowanie z typami zależnymi w języku Idris
4. Programowanie z typami zależnymi w systemie Coq
5. Dowodzenie własności w systemie Coq
6. Programowanie równoległe w Haskellu
• Programowanie wielordzeniowe i wieloprocesorowe (SMP)
• Równoległość danych (Data Parallel Haskell)
Kierunek podstawowy MISMaP
Rodzaj przedmiotu
Wymagania (lista przedmiotów)
Koordynatorzy przedmiotu
Efekty kształcenia
Wiedza
1. ma pogłebioną wiedze w zakresie paradygmatu programowania funkcyjnego
2. zna metody specyfikowania programów funkcyjnych
3. zna metody programowania równoległego w języku funkcyjnym (K_W04)
Umiejętności
1. potrafi stworzyć średniej wielkości program w języku funkcyjnym
2. umie stosować typy do specyfikowania i weryfikacji programów
3. umie stosować techniki zrównoleglania obliczeń w języku funkcyjnym (K_U07)
Kompetencje
1. zna ograniczenia własnej wiedzy i rozumie potrzebę dalszego kształcenia (K_K01)
2. potrafi precyzyjnie formułować pytania, służące pogłębieniu własnego zrozumienia danego tematu (K_K02)
3. rozumie konieczność systematycznej pracy nad wszelkimi projektami, które mają długofalowy charakter (K_K03)
Kryteria oceniania
Ocena końcowa na podstawie projektów zaliczeniowych oraz ich prezentacji
Literatura
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/
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: