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

Podobne