Zaawansowane programowanie funkcyjne
Informacje ogólne
Kod przedmiotu: | 1000-2M11ZPF |
Kod Erasmus / ISCED: |
11.303
|
Nazwa przedmiotu: | Zaawansowane programowanie funkcyjne |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obieralne dla informatyki Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | angielski |
Kierunek podstawowy MISMaP: | informatyka |
Rodzaj przedmiotu: | monograficzne |
Wymagania (lista przedmiotów): | Języki i paradygmaty programowania 1000-216bJPP |
Skrócony opis: |
Wykład ma na celu przedstawienie najważniejszych zagadnień nowoczesnego programowania funkcyjnego w językach takich jak Haskell, Coq, Idris ze szczególnym uwzględnieniem wykorzystania typów do specyfikowania i weryfikacji programów. |
Pełny opis: |
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) |
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/ |
Efekty uczenia się: |
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) |
Metody i kryteria oceniania: |
Ocena końcowa na podstawie projektów zaliczeniowych oraz ich prezentacji |
Zajęcia w cyklu "Semestr letni 2023/24" (zakończony)
Okres: | 2024-02-19 - 2024-06-16 |
Przejdź do planu
PN WT WYK
LAB
ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Marcin Benke, Daria Walukiewicz-Chrząszcz | |
Prowadzący grup: | Marcin Benke, Daria Walukiewicz-Chrząszcz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Zajęcia w cyklu "Semestr letni 2024/25" (jeszcze nie rozpoczęty)
Okres: | 2025-02-17 - 2025-06-08 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Marcin Benke, Daria Walukiewicz-Chrząszcz | |
Prowadzący grup: | Marcin Benke, Daria Walukiewicz-Chrząszcz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.