-
Функциональное программирование. Язык Scala.
-
Базовые типы языка Scala. Базовые управляющие конструкции.
-
Классы и объекты. Определение методов. Бинарные операторы. Унарные операторы. Абстрактные классы. Трейты.
-
Система пакетов. Модификаторы доступа.
-
Немодифицируемые коллекции. List, Vector, Set, Range, Map. Пары.
-
Функции как объекты языка. Локальные определения функций. Передача функций как параметры и возврат в качестве результата.
-
Операции высшего порядка над коллекциями. Цикл for.
-
Параметризованные типы. Ковариантные и контравариантные параметры. Верхние и нижние границы типов.
-
Модифицируемые коллекции. ListBuffer, ArrayBuffer, Map.
-
Сопоставление с образцом. Case classes. Частично-применимые функции. Каррирование.
-
Работа со строками. Регулярные выражения.
-
Модульное тестирование. ScalaTest.
-
Использование Maven для сборки приложения.
-
Генерация документации ScalaDoc.
-
Базовые компоненты Swing.
-
… ?
-
Объекты пакетов.
-
Составные типы.
-
Неявные параметры. Неявные преобразования
-
Трейт DelayedInit
-
Работа с XML
-
Использование неявных преобразований для расширения встроенных объектов.
-
Использование неявных параметров для передачи контекста.
-
Создание новых конструкций языка за счет использования функций высшего порядка.
-
Обработка внешних DSL. Комбинаторные парсеры.
-
Многопоточное программирование. Синхронизация. Взаимные блокировки и борьба с ними.
-
Примитивы синхронизации пакета java.util.concurrent.
-
Безблокировочные алгоритмы. Атомарные операции. Пакет java.util.concurrent.atomic.
-
Парралельные коллекции.
-
Программирование на основе сообщений. Акторы. Библиотека Akka.
-
Транзакционная память.