Connect with us

Видео и подкасты для разработчиков

Принципы функционального программирования — Обучающий курс Университета Карнеги-Меллона

Пройдя этот курс, вы поймете, как функциональное программирование помогает улучшить нашу способность общаться как программистов — с помощью описательного, модульного и сопровождаемого кода.

Фото аватара

Опубликовано

/

     
     

Записи занятий и материалы вводного курса Университета Карнеги-Меллона (CMU) по функциональному программированию, который преподавался летом 2023 года, теперь доступны в свободном доступе.

В этом курсе рассматривается концепция компьютерных наук, которая обычно не изучается глубоко или просто включается в более широкий модуль по программированию. Курс же «15-150: Принципы функционального программирования» посвящен именно им.

И на то есть веские причины. Брэндон Ву, преподаватель курса, который сейчас работает инженером по анализу программ в Semgrep, так объясняет причины его появления:

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

Несмотря на это, я (и CMU) считаю, что это очень важно. Дисциплинированный, ориентированный на типы, безопасный взгляд на программирование может принести огромную пользу начинающим в области компьютерных наук, и я часто слышал отзывы студентов о том, что этот курс изменил их представление о компьютерных науках в целом.

Курс состоит из 22 лекций, каждая из которых длится более часа:

  1. Пролог
  2. Эквивалентность, связывание и область применения
  3. Индукция и рекурсия
  4. Структурная индукция и хвостовая рекурсия
  5. Деревья
  6. Асимптотический анализ
  7. Сортировка и параллелизм
  8. Полиморфизм
  9. Функции высшего порядка
  10. Комбинаторы и постановка
  11. Стиль продолжения-прохождения
  12. Исключения
  13. Регулярные выражения
  14. Структуры и подписи
  15. Функторы
  16. Красно-черные деревья
  17. Последовательности
  18. Ленивое программирование
  19. Императивное программирование
  20. Компиляторы
  21. Анализ программ
  22. Финал

Лекции выложены на YouTube в плейлисте, также их можно смотреть по отдельности на основном сайте курса Брэндона, где каждая лекция сопровождается описанием изложенных концепций. Они также сопровождаются очень подробными слайдами, но, к сожалению, без привязки ко времени.

На протяжении всего курса используется функциональный язык программирования Standard ML (SML). Необычный выбор, но суть в том, что курс учит не языкам программирования, а концепциям, лежащим в их основе, и с SML легче их объяснить, потому что он не учитывает тонкости и идиомы, привнесенные остальными языками программирования, а значит, не отвлекает от первоначальной цели.

Пройдя этот курс, вы поймете, как функциональное программирование помогает улучшить нашу способность общаться как программистов — с помощью описательного, модульного и сопровождаемого кода.

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: