Teoretyczne podstawy języków programowania

Język wykładowy Polski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Zdzisław Spławski
Liczba godzin 30 (wyk.) 30 (ćw.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

Programy i języki programowania (funkcyjne) będą rozpatrywane jako obiekty matematyczne. Nacisk będzie położony na związki programowania z logiką i dowodami formalnymi (izomorfizm Curry'ego-Howarda). Będą omawiane systemy typów, polimorfizm, podtypowanie, teoretyczne podstawy języków obiektowych. Jako "język programowania" będzie wykorzystywany przede wszystkim rachunek lambda, ale będą też przykłady w językach Haskell, OCaml, Idris, ... Wcześniejsza znajomość rachunku lambda ani izomorfizmu Curry'ego-Howarda nie jest wymagana. Nauczanie zdalne W razie konieczności możliwe jest przejście na tryb zdalny. Materiały do wykładów będą umieszczane na SKOSie (jak zawsze), a wykład będzie prowadzony on-line z wykorzystaniem wybranej platformy. Zadania na ćwiczenia też będą umieszczane na SKOSie (jak zwykle), rozwiązania studentów będą dostarczane za pośrednictwem SKOSa, a prowadzący zapewni informację zwrotną. Ćwiczenia też będą prowadzone on-line. Wskazani studenci będą prezentowali swoje rozwiązania na forum grupy z możliwością dyskusji.