alno / hse-ofp-scala

Материалы для занятий по курсу "Объектно-функциональное программирование" на 3-4 курсе ГУ ВШЭ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Темы занятий

1 модуль

Основы функционального программирования и языка Scala

  • Функциональное программирование. Язык Scala.

  • Базовые типы языка Scala. Базовые управляющие конструкции.

  • Классы и объекты. Определение методов. Бинарные операторы. Унарные операторы. Абстрактные классы. Трейты.

  • Система пакетов. Модификаторы доступа.

  • Немодифицируемые коллекции. List, Vector, Set, Range, Map. Пары.

  • Функции как объекты языка. Локальные определения функций. Передача функций как параметры и возврат в качестве результата.

  • Операции высшего порядка над коллекциями. Цикл for.

  • Параметризованные типы. Ковариантные и контравариантные параметры. Верхние и нижние границы типов.

  • Модифицируемые коллекции. ListBuffer, ArrayBuffer, Map.

  • Сопоставление с образцом. Case classes. Частично-применимые функции. Каррирование.

  • Работа со строками. Регулярные выражения.

Технологии разработки Scala-приложений

  • Модульное тестирование. ScalaTest.

  • Использование Maven для сборки приложения.

  • Генерация документации ScalaDoc.

Графические библиотеки AWT и Swing

  • Базовые компоненты Swing.

  • … ?

2 модуль

Продвинутые возможности языка

  • Объекты пакетов.

  • Составные типы.

  • Неявные параметры. Неявные преобразования

  • Трейт DelayedInit

  • Работа с XML

Метапрограммирование и построение DSL

  • Использование неявных преобразований для расширения встроенных объектов.

  • Использование неявных параметров для передачи контекста.

  • Создание новых конструкций языка за счет использования функций высшего порядка.

  • Обработка внешних DSL. Комбинаторные парсеры.

Многопоточное и распределенное программирование на Scala

  • Многопоточное программирование. Синхронизация. Взаимные блокировки и борьба с ними.

  • Примитивы синхронизации пакета java.util.concurrent.

  • Безблокировочные алгоритмы. Атомарные операции. Пакет java.util.concurrent.atomic.

  • Парралельные коллекции.

  • Программирование на основе сообщений. Акторы. Библиотека Akka.

  • Транзакционная память.

About

Материалы для занятий по курсу "Объектно-функциональное программирование" на 3-4 курсе ГУ ВШЭ


Languages

Language:Scala 100.0%