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
Lista| Prowadzą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
Lista| Prowadzą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 | 336 | jesień '25: czwartki 1230–1400 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 | wt. 12-14 (poza terminami Rady Wydziału); możliwe inne terminy - proszę o kontakt mailowy |
| Maciej Buszka | 340 | Zdalne, termin ustalany emailem |
| Piotr Polesiuk | 338 | wtorek 14-16 |