Programowanie funkcyjne zima 2020/21
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 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 pracownię 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ą. Tu również przewiduję bezpośrednią interakcję między prowadzącym i studentami.Wykłady
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Zdzisław Spławski
zdalna |
cz 16:00-18:00 (s. ) | 48 | 66 | 0 |
UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.
Pracownie
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Małgorzata Biernacka
zdalna |
wt 10:00-12:00 (s. ) | 15 | 14 | 0 |
Filip Sieczkowski
zdalna |
wt 12:00-14:00 (s. ) | 15 | 15 | 0 |
Maciej Buszka
zdalna |
wt 18:00-20:00 (s. ) | 15 | 14 | 0 |
Piotr Polesiuk
zdalna |
śr 12:00-14:00 (s. ) | 15 | 14 | 0 |
Zdzisław Spławski
|
cz 10:00-12:00 (s. 108) | 12 | 9 | 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 | 340 | Czwartki godz.9:00-10:00 (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 | czw. 12-14; możliwe inne terminy - proszę o kontakt mailowy |
Maciej Buszka | 340 | Zdalne, termin ustalany emailem |
Piotr Polesiuk | 338 | wtorek 14-16 |