Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Zaawansowane programowanie funkcyjne

Informacje ogólne

Kod przedmiotu: 1000-2M11ZPF
Kod Erasmus / ISCED: 11.303 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Zaawansowane programowanie funkcyjne
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty monograficzne dla III - V roku informatyki
Przedmioty obieralne dla informatyki
Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

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 2021/22" (zakończony)

Okres: 2022-02-21 - 2022-06-15
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 2022/23" (jeszcze nie rozpoczęty)

Okres: 2023-02-20 - 2023-06-18

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.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 6.8.0.0-2a4334331 (2022-08-26)