Wprowadzenie do programowania funkcyjnego
Podstawy programowania Programowanie funkcyjne Haskell
Wprowadzenie
Zastosowanie języków funkcyjnych jest coraz powszechniejsze zarówno w instytucjach naukowo-badawczych jak i w przemyśle IT. Z drugiej strony, w wielu współcześnie używanych językach tradycyjnie imperatywnych (w tym obiektowych, jak np. Java, C# czy C++), pojawiają się typowe dla języków funkcyjnych konstrukcje jak np. wnioskowanie typu, funkcje wyższego rzędu czy wyrażenia lambda. Widać więc, że znajomość paradygmatu funkcyjnego stała się kluczowa dla każdego wszechstronnie wykształconego programisty.
Szkolenie kładzie nacisk na zasady, techniki i wzorce programowania funkcyjnego, które są uniwersalne i przydatne w większości używanych obecnie języków programowania. W ramach zajęć uczestnicy poznają język Haskell. Jest to język czysto funkcyjny (pure-functional), statycznie (silnie) typowany i oparty na solidnych matematycznych podstawach (rachunek lambda i teoria kategorii). Jego zastosowanie systematycznie wzrasta – używany jest np. przez Facebook, AT&T, NASA i wiele instytucji finansowych. Jest też bardzo często wykorzystywany do nauki programomania funkcyjnego.
Adresaci szkolenia
Każdy, kto chce poznać uniwersalne zasady, techniki i wzorce programowania funkcyjnego, które są przydatne w większości używanych obecnie języków programowania.
Wymagania wobec kandydatów
Kandydaci na kurs powinni znać podstawy programowania w dowolnym języku.
Atuty szkolenia
- nastawienie na zrozumienie kluczowych zagadnień dla każdego programisty, ułatwiających dalszą naukę (także innych języków),
- kadra z wieloletnim doświadczeniem zarówno dydaktycznym (prowadzenie zajęć na studiach, w tym podyplomowych, i kursach realizowanych na zamówienie dla firm z branży IT), jak również w przemyśle IT (role programisty i architekta oprogramowania, prowadzenie rozmów rekrutacyjnych),
- świadectwo ukończenia.
Zakres tematyczny szkolenia
- Paradygmat funkcyjny na tle innych paradygmatów; krótka charakterystyka języka Haskell; podstawowe typy danych; składnia definicji funkcji; polimorfizm; inferencja typów
- Leniwe obliczanie; rekursja; przetwarzanie list; dopasowanie wzorców; funkcje anonimowe; funkcje wyższego rzędu; wzorzec "Collection Pipeline"
- Definicje typów; typy algebraiczne; klasy typów i ich instancje; typy wyższego rzędu
- Moduły i importy; organizacja kodu źródłowego; narzędzie stack; operacje wejścia/wyjścia
- Funktory; funktory aplikatywne; monoidy
- Monady
- Elementy teorii kategorii; testy jednostkowe i parametryczne
Organizacja szkolenia
Czas trwania: dwa dwudniowe zjazdy: 11-12.07 i 25-26.07.2020 r. (w związku z nadal aktualną sytuacją zagrożenia epidemicznego brana jest pod uwagę realizacja szkolenia w trybie zdalnym)
Forma zajęć: mini wykłady, ćwiczenia laboratoryjne/warsztaty
Liczba uczestników: min. 10, maks. 16
Język wykładowy: polski
Forma i warunek zaliczenia: uzyskanie pozytywniej oceny z testu końcowego
Polecane materiały pomocnicze:
- Miran Lipovaca, Learn You a Haskell for Great Good!, http://learnyouahaskell.com
- Graham Hutton, Programming in Haskell, Cambridge University Press, 2007
- Simon Thompson, Haskell: the Craft of Functional Programming, Addison-Wesley, 2011
Kierownik szkolenia: dr inż. Roman Dębski
Szczegółowe informacje o procesie rekrutacji otrzymają Państwo na adres e-mail podany w zgłoszeniu uczenictwa