Języki i Paradygmaty Programowania
Usually the first problems you solve with the new paradigm are the ones that were unsolvable with the old paradigm.
Joel A. Barker
Zasady zaliczenia
- Ocena wystawiana z grupy kursów jest średnią ważoną ocen osiągniętych przez studenta z kolokwium (waga 60%) i z laboratorium (waga 40%), przy czym obie oceny muszą być pozytywne.
- Kolokwium odbędzie się w ostatnim tygodniu zajęć (termin i miejsce kolokwium będzie podane na tej stronie).
- Podczas laboratorium komputerowego student prezentuje samodzielnie rozwiązane zadania z przygotowanych przez wykładowcę list zadań (lista 0 jest rozruchowa i nie na ocenę).
- Osoba prowadząca laboratorium ocenia wykonanie wszystkich list zadań. Każdy tydzień spóźnienia zaliczenia listy skutkuje obniżeniem oceny o pół stopnia (maksymalna ocena za listę: po tygodniu spóźnienia 4.5, po dwóch 4.0, po trzech 3.5, po czterech 3.0). Jeśli student nie odda listy zadań, to ma za nią 0 punktów.
- Zadania należy rozwiązywać samodzielnie. Osoba sprawdzająca rozwiązanie zadania na laboratorium ma prawo nie zaliczyć zadania jeśli student nie potrafi wyjaśnić działania programu, nie zna jego elementów, nie potrafi wykonać drobnych modyfikacji kodu itp.
- Zaliczenie list odbywa się podczas laboratorium przy komputerze (nie przysyłać programów e-mailem).
- W ostatnim tygodniu zajęć prowadzący zajęcia laboratoryjne wysyłają do wykładowcy oceny jakie osiągnęli studenci w ich grupach (ocena z laboratorium).
- Nie można zaliczać laboratorium w czasie sesji - ocena z laboratorium musi być wystawiona w ostatnim tygodniu zajęć.
- Wykładowca oblicza średnią ważoną ocen z kolokwium i z laboratorium a następnie wyliczoną średnią wpisuje studentowi do protokołu w JSOS.
- Jeśli student otrzymał z kolokwium i z laboratorium obie oceny bardzo dobre, to może odpowiadać u wykładowcy na ocenę celującą. Powinien poinformować wykładowcę o takim zamiarze jeszcze przed rozpoczęciem sesji egzaminacyjnej i umówić się na konsultacje w pierwszym tygodniu sesji.
Plan wykładu
- Koncepcje i paradygmaty programowania (4g) (prezentacja)
- Przegląd paradygmatów na przykładzie języka programowania Oz (8g) (prezentacja)
- Elementy języka programowania Scheme (4g) (prezentacja)
- Elementy języka programowania Haskell (4g) (prezentacja)
- Elementy języka programowania Erlang (4g) (prezentacja)
- Elementy języka programowania Prolog (4g) (prezentacja)
- Kolokwium (2g)
Wybrane przykłady do wykładu będą zamieszczane w repozytorium all-all-jpp.git.
Literatura
Literatura podstawowa
- Peter Van Roy, Seif Haridi. Programowanie: Koncepcje, Techniki i Modele. Helion, 2005.
Literatura uzupełniająca
- R. Kent Dybvig. The Scheme Programming Language. The MIT Press, 2009.
- Graham Hutton. Programming in Haskell. Cambridge University Press, 2007.
- Joe Armstrong. Programming Erlang. Software for a Concurrent World. Pragmatic Bookshelf, 2013.
- William Clocksin, Christopher Mellish. Prolog. Programowanie. Helion, 2003.
Materiały dodatkowe
diagram wykonał Peter Van Roy
- Peter Van Roy. Programming Paradigms for Dummies: What Every Programmer Should Know.
- Film z lat osiemdziesiątych o języku Erlang:
Film o monadach:
Narzędzia
Mozart/Oz
Scheme
Haskell
Erlang
Prolog
Laboratorium
- Lista 0 (instalacja narzędzi)
- Lista 1 (elementy języka Oz) [termin zaliczenia: do 7 laboratorium]
- Lista 2 (elementy języka Scheme) [termin zaliczenia: do 9 laboratorium]
- Lista 3 (elementy języka Haskell) [termin zaliczenia: do 11 laboratorium]
- Lista 4 (elementy języka Erlang) [termin zaliczenia: do 13 laboratorium]
- Lista 5 (elementy języka Prolog) [termin zaliczenia: do 15 laboratorium]
Kolokwium
Termin i miejsce
Wyniki
Kolokwium poprawkowe
Termin i miejsce
Wyniki
TBA