Материалы курса "Современные методы программирования"

Материалы лекций

Введение
Современные динамические языки
Язык Ruby
Объектная модель Ruby
Регулярные выражения
Парадигмы программирования
Основы языков семейства Lisp
Отложенные вычисления и потоки
Символьные вычисления
Управляемая кодогенерация
Разделение ответственностей
Параллелизм и транзакции (часть 1)
Параллелизм и транзакции (часть 2)
Специализированные объектные модели
Динамический полиморфизм
Аспектно-ориентированное программирование

Вопросы к экзамену

Обязательные задания

Срок сдачи
Ruby121.09.2019
Ruby228.09.2019
Ruby305.10.2019
Clojure112.10.2019
Clojure219.10.2019
Clojure3-126.10.2019
Clojure3-226.10.2019
Clojure402.11.2019

Задания для курсовых

Общие правила и требования к выполнению заданий
  1. Объектная модель
  2. Представление данных в S-выражениях
  3. Конвейерная обработка
  4. Облачные вычисления
  5. DI-контейнер
  6. Объектная персистентность
  7. Lisp-машина
  8. Неизменяемые структуры данных (Persistent Data Structures)
  9. Версионная память

Рекомендуемая литература

Абельсон Х., Сассман Дж. Структура и интерпретация компьютерных программ. Добросвет, 2012

Halloway S. Programming Clojure. Pragmatic Bookshelf, 2009

Seibel P. Practical Common Lisp. APRESS, 2005

Kizcales G., Rivieres J., Bobrow D. The Art of Metaobject Protocol. MIT Press, 1991

Дополнительные материалы

SVN-репозиторий:
https://ccfit.nsu.ru/svn/DT6/<yyyy>/group-<gggg>/<project_name>
Пример: https://ccfit.nsu.ru/svn/DT6/1995/group-1234/chicago

Основаная реализация Ruby

Ruby Core Library Reference

Реализация Ruby на JVM

Сайт Clojure

Система сборки для Clojure (требуется также Maven)

Плагин с поддержкой Clojure для Eclipse

Online Clojure REPL