Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Zaawansowane programowanie funkcyjne

Informacje ogólne

Kod przedmiotu: 1000-2M11ZPF Kod Erasmus / ISCED: 11.303 / (0612) Database and network design and administration
Nazwa przedmiotu: Zaawansowane programowanie funkcyjne
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty monograficzne dla III - V roku informatyki
Przedmioty obieralne dla informatyki
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
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 2018/19" (zakończony)

Okres: 2019-02-16 - 2019-06-08
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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 2019/20" (jeszcze nie rozpoczęty)

Okres: 2020-02-17 - 2020-06-10
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
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
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.