Podstawy programowania w języku Scala
Programowanie obiektowe Programowanie generyczne Programowanie funkcyjne Scala Programowanie reaktywne
Adresaci szkolenia
Osoby bez kierunkowego wykształcenia zarówno już związane z branżą IT, jak również poszukujące takiej pracy. Szkolenie umożliwi uczestnikom nie tylko zapoznanie się z językiem Scala, ale także opanowanie podstaw programowania (obiektowego i funkcyjnego) ułatwiających dalszą naukę (także innych języków).
Wymagania wobec kandydatów
Kandydaci powinni znać podstawy programowania w dowolnym języku obiektowym (np. Java, C#, C++).
Program szkolenia
-
Wprowadzenie
Krótka charakterystyka języka, skrypty w Scali, REPL, podstawowe typy danych, zmienne, inferencja typów (type inference), instrukcje vs. wyrażenia, pętle, wyrażenie warunkowe, wyrażenie "for-yield”, metody vs. funkcje, parametry metod/funkcji. -
Elementy programowania obiektowego w Scali I
Hierarchia klas/typów w Scali, klasy, konstruktory, @BeanProperty, obiekty, obiekty "towarzyszące" (companion objects), obiekt aplikacji, klasy abstrakcyjne, dziedziczenie, przesłanianie (overriding) metod, cechy (traits), domieszki (mix-ins), typy strukturalne. -
Elementy programowania obiektowego w Scali II/Elementy programowania generycznego w Scali
Obsługa wyjątków, pakiety i importy, obiekt pakietu, specyfikatory dostępu, klasy/obiekty przypadku (case classes/objects), sealed classes, klasy wewnętrzne, enumeratory, równość obiektów. Kolekcje generyczne, parametryzacja typu, polimorfizm parametryczny, górne i dolne ograniczenia parametrów typu, kowariantność, kontrawariantność i inwariantność operatorów, typy abstrakcyjne (vs. generyczne). -
Elementy programowania funkcyjnego w Scali I
Programowanie imperatywne vs. funkcyjne, rekursja, rekursja ogonowa, dopasowanie wzorców, typ "Option". -
Elementy programowania funkcyjnego w Scali II
Literały funkcyjne vs. obiekty funkcyjne (function literals vs. function values), funkcje wyższego rzędu, funkcje jako elementy struktur danych, porównanie: "call by value" vs. "call by name", domknięcie funkcji (closure), funkcje częściowe (partial functions) vs. "partially applied functions", składanie i "rozwijanie" funkcji (currying). -
Elementy programowania funkcyjnego w Scali III
Listy, operatory: filter, map, flatten, flatMap, reduce, fold, zip, foreach; podstawowe kolekcje dostępne w Scali, wzorzec "Collection Pipeline", leniwe wartościowanie (lazy evaluation): lazy val, Stream, view. -
Elementy programowania reaktywnego w Scali
Modele współbieżności, aktorowy model współbieżności, Akka - omówienie wybranych aspektów (przykłady, API), systemy reaktywne, Lightbend Reactive Platform.
Organizacja szkolenia
Czas trwania: 7 spotkań 4-godzinnych (od 17.45 do 21.00)
Forma zajęć: mini wykłady, ćwiczenia laboratoryjne/warsztaty
Liczba uczestników: min. 10, maks. 26
Język wykładowy: polski
Forma i warunek zaliczenia: uzyskanie pozytywniej oceny z testu końcowego
Polecane materiały pomocnicze:
-
Martin Odersky, Programming in Scala: A Comprehensive Step-by-Step Guide (3rd Edition), Artima Press, 2016
-
Cay S. Horstmann, Scala for the Impatient (2nd edition), Addison-Wesley Professional, 2016
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