Онлайн-курс «Функциональное программирование на языке Scala»

Scala — весьма перспективный язык программирования, работающий на виртуальной машине Java. Он появился в 2003 году, но уже успел завоевать солидную репутацию. Достаточно сказать, что Twitter частично перешёл на Scala, чтобы справиться с возросшими нагрузками.

Курс «Функциональное программирование на языке Scala» ведёт Мартин Одерски, создатель языка Scala. Он работает в EPFL (Швейцария), одном из самых известных технических вузов мира. Для того, чтобы понимать материалы курса, надо быть знакомым с программированием и знать основы Java.

Все задания на программирование надо будет писать на Scala, но сам курс достаточно фундаментальный. Он основан на классическом учебнике «Структура и интерпретация компьютерных программ» (SICP) Харольда Абельсона и Джеральда Сассмана. В курсе пойдёт речь о функциональном программировании и о том, как его эффективно сочетать с объектно-ориентированным программированием.
scala

План занятий

Курс начался 18 сентября 2013 и рассчитан на 7 недель. Темы каждой из семи недель:

  1. Функции и вычисление значения
  2. Функции высокого порядка
  3. Данные и абстракции
  4. Типы и сопоставление с образцом
  5. Списки
  6. Коллекции
  7. Отложенные вычисления

Ожидаемая нагрузка — 5-7 часов в неделю.
Запись на курс

Сильные стороны курса

Этот курс — отличное введение в функциональное программирование. Если до этого вы работали только с процедурным программированием, то здесь вы найдёте принципиально новые подходы к решению задач. По отзыву одного из прошлых студентов, многие функции в этом курсе занимают одну-две строчки, но додуматься до них не так просто.

Слабые стороны курса

Многие студенты потратили на курс намного больше времени, чем заявленные 5-7 часов в неделю. Задания проверяются досконально, пусть и автоматически. На сдачу даётся всего пять попыток, поэтому студентам придётся внимательно отнестись к отладке своего кода и написанию дополнительных тестов. Кроме того, в самом начале курса следует настроить среду программирования и разобраться, как отправлять задания.

Что изучать дальше?

Если вам понравилось «Функциональное программирование», то обратите внимание на два следующих курса:

sdk

Энтузиаст онлайн-образования. Активный участник проекта Coursera с самого его открытия.