Programowanie funkcyjne zima 2018/19

Język wykładowy Polski
Opiekun Zdzisław Spławski
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

_Do r. akad. 2016/17 Programowanie funkcyjne było przedmiotem I2.T (JP Języki programowania i logika - 100%), od r. akad. 2017/18 - I1._ Programowanie funkcyjne jest stylem programowania opartym na obliczaniu wartości wyrażeń, w przeciwieństwie do programowania imperatywnego, wykorzystującego modyfikacje stanu programu przez instrukcje. Studenci znają już ten paradygmat z przedmiotu "Metody programowania", gdzie był wykorzystywany język Scheme, w którym jest stosowana typizacja dynamiczna. Celem tego wykładu jest pogłębiona prezentacja programowania funkcyjnego. Paradygmat ten obecnie staje się bardzo popularny (również w językach imperatywnych), ponieważ wysoki poziom abstrakcji ułatwia składanie komponentów, a bezstanowość jest wykorzystywana w wysokopoziomowych mechanizmach programowania współbieżnego, które pozwalają pisać efektywne programy, wykorzystujące procesory wielordzeniowe. W trakcie wykładu będą przedstawione pojęcia i techniki programowania funkcyjnego z wykorzystaniem dwóch języków z typizacją statyczną. OCaml (język z rodziny ML) wykorzystuje ewaluację gorliwą, najpopularniejszą w implementacjach języków programowania. Pozwala też programować imperatywnie i obiektowo.  Język F# z platformy .Net jest w znacznym stopniu kompatybilny z językiem OCaml. Haskell jest czystym językiem funkcyjnym z ewaluacją leniwą. Będzie omawiany m.in. system typów z polimorfizmem parametrycznym, funkcje wyższych rzędów, rekursja ogonowa, mechanizm dopasowania do wzorca, sygnatury, struktury, funktory i monady, klasy typów, strategie ewaluacji wyrażeń. Na zajęciach w pracowni studenci będą pisali proste programy, których tematyka będzie zsynchronizowana z zagadnieniami, omawianymi na wykładzie.  Wymagania: Metody programowania

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Zdzisław Spławski
cz 10:00-12:00 (s. 119) 75 61 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Filip Sieczkowski
śr 14:00-16:00 (s. 108) 15 13 0
Piotr Polesiuk
śr 18:00-20:00 (s. 108) 15 11 0
Małgorzata Biernacka
śr 10:00-12:00 (s. 107) 15 14 0
Zdzisław Spławski
cz 08:00-10:00 (s. 108) 15 12 0
Tomasz Wierzbicki
cz 14:00-16:00 (s. 108) 15 11 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Filip Sieczkowski 308 jesień '20: wtorki 14–16 lub inny umówiony (mailowo) termin
Zdzisław Spławski 311 Czwartki godz.12:00-12:45 (konieczne jest wcześniejsze uzgodnienie). Możliwe są też inne terminy po uzgodnieniu za pośrednictwem poczty elektronicznej: zs@cs.uni.wroc.pl.
Małgorzata Biernacka 348 wt., pt. 13-14 + możliwe inne terminy, po wcześniejszym umówieniu się
Tomasz Wierzbicki 303 Po wcześniejszym umówieniu pocztą elektroniczną. Nie w trakcie lub bezpośrednio przed moimi zajęciami (plan zajęć jest dostępny w systemie Zapisy).
Piotr Polesiuk 338 wtorek 14-16