Scala programming

Старт обучения
Берестейская Дату уточните у администрации
Позняки Дату уточните у администрации
ВДНХ Дату уточните у администрации
42 час. по 2-3 раза в неделю

Описание курса

Цель курса – научить студентов программированию на языке Scala. Курс предназначен для тех, кто уже владеет основами разработки на Java (или на другом языке) и понимает принципы ООП.  В ходе уроков вы научитесь разработке, отладке и настройке приложений на Scala, познакомитесь как с функциональными, так и с объектно-ориентированными конструкциями языка. Вы получите знания, необходимые для изучения таких популярных фреймворков, как Spark, Play Framework, Akka и углубиться в работу с BigData и Web-разработкой.

После курса вы сможете:

  • Использовать функциональные и объектно-ориентированные конструкции языка Scala
  • Разрабатывать и проводить отладку Scala-приложений
  • Собирать Scala-проекты с помощью SBT
  • Тестировать написанный код
  • Начать изучение фреймворков: Spark, Play Framework, Akka и др.

Программа курса:

  • Общая характеристика Scala
    • История языка
    • Байт-код
    • Виртуальная машина (JVM)
    • Поиск и загрузка классов
    • Создание и запуск приложения на Scala
    • Использование IDE для создания и выполнения Scala-программ
  • Чтение-вычисление-вывод/REPL — read-eval-print loop
    • Особенности реализации
    • Основные функции
    • Power-мод
  • Переменные в Scala
    • Values
    • Variables
  • Операторы
    • Типы операторов
    • Создание и использование
    • Порядок очередности
  • Строки
    • Создание строк и работа с ними
    • Интерполяция
    • “s” интерполятор 
    • “f” интерполятор
    • “raw” интерполятор
  • Типы данных
    • Иерархия типов
    • Type inference
    • Типы Any, AnyVal, AnyRef
    • Тип Nothing
    • Scala Null
  • Функции и методы
    • Функция и метод
    • Side effect, pure functions
    • Рекурсия 
    • Функции высшего порядка (Higher-order functions)
    • Анонимные функции 
    • Частичные функции 
    • Частичное применение функций 
    • Currying
    • Функциональные комбинаторы
  • Классы и объекты
    • ООП в Scala
    • Класс
    • Объект
    • Companion object
    • Сопоставление с образцом (Pattern matching)
      • Сопоставление с образцом: литералы 
      • Сопоставление с образцом: классы 
      • Сопоставление с образцом: коллекции 
      • Запечатанные (Sealed) классы
    • Кейс класс
    • Кейс объект
    • Вложенный класс
    • Trait
    • Примеси и множественное наследование
    • Обобщения
  • Валидация
  • Package & package
  • Монады в Scala 
    • Определение монады
    • Монады в коллекциях
    • Монада “Option”, класс “Some” и объект “None” 
    • For-comprehension
  • Обработка исключений 
    • Как работают исключения в Scala
    • Иерархия исключений
    • Способы обработки исключений
  • Массивы 
    • Создание и использование массивов
    • Одномерные массивы
    • Многомерные массивы
    • Операции над массивами
  • Коллекции 
    • Иерархия коллекций 
    • Кортежи/Tuple
    • Списки/List
    • Коллекции неповторяющихся элементов /Set
    • Последовательности упорядоченных элементов /Seq
    • Карты/Map
    • Объект Nil
    • Обход коллекций, операции над коллекциями
    • Сравнение производительности коллекций
  • Implicits
    • Неявные параметры
    • Неявные преобразования
    • Неявные классы
    • Type classes
  • Future
    • Определение, создание и использование
    • Callbacks
    • Projections
    • Promises
  • SBT (Scala Build Tool)
  • Testing

Минимальные требования:

  • Знания Java Core (Базовый курс Java)
  • Понимание ООП

* Примечание: указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Скидка применяется только к новым заявкам и при условии полной оплаты. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!

spinner-it