Компьютерные науки

Введение в теорию программирования. Функциональный подход

Программа об основах функционального программирования через синтез формальных теорий. Рассматриваются лямбда-исчисление, комбинаторная логика и теория типов с использованием метаязыка SML.NET.
Студентов 3435 Выпускников 242 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебная программа посвящена основам функционального подхода к разработке программного обеспечения. В рамках обучения рассматриваются абстрактные математические модели вычислений, включая лямбда-исчисление, комбинаторную логику и категориальные абстрактные машины. Изложение материала движется от формальных основ к практической реализации с использованием метаязыка SML.NET. Темы, касающиеся рекурсивных функций и оптимизации вычислений, сопровождаются проверочным тестированием для глубокого понимания семантики языков.
Цели
  • Сформировать системное представление о функциональном подходе к программированию.
  • Познакомить с математическими моделями ламбда-исчисления и комбинаторной логики.
  • Раскрыть подходы к анализу синтаксиса и семантики языков программирования.
Чему я научусь?
  • Применять базовые концепции функционального программирования на языке SML.
  • Анализировать формальные системы и теорию типов.
  • Разрабатывать функции для синтаксического разбора языковых конструкций.
  • Организовывать рекурсивные вычисления и работать с абстрактными машинами.

Авторы

Зыков Сергей Викторович
Зыков Сергей Викторович
Кандидат технических наук, доцент Московского инженерно-физического института.
Чему я научусь?
  • Применять базовые концепции функционального программирования на языке SML.
  • Анализировать формальные системы и теорию типов.
  • Разрабатывать функции для синтаксического разбора языковых конструкций.
  • Организовывать рекурсивные вычисления и работать с абстрактными машинами.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Вступительная лекция Обзор истории развития научных направлений, сформировавших теоретическое основание курса.
2 Классификация языков программирования В лекции исследуются вопросы истории и эволюции языков и подходов к программированию, анализируются их достоинства и... В лекции исследуются вопросы истории и эволюции языков и подходов к программированию, анализируются их достоинства и недостатки, строится классификация языков и подходов к программированию. ещё
Классификация языков программирования тест для курса Введение в теорию программирования. Функциональный подход 25 мин
3 Концепция и возможности подхода .NET В лекции рассматриваются вопросы, относящиеся к идеологии, технологии и обзору практических возможностей создания программных систем на... В лекции рассматриваются вопросы, относящиеся к идеологии, технологии и обзору практических возможностей создания программных систем на основе наиболее современного подхода к проектированию и реализации программного обеспечения, известного под названием Microsoft .NET. ещё
Концепция и возможности подхода .NET тест для курса Введение в теорию программирования. Функциональный подход 25 мин
4 Функциональный подход к программированию В лекции обсуждаются вопросы, касающиеся истории развития, идеологии, математического обоснования и возможностей программных систем на основе... В лекции обсуждаются вопросы, касающиеся истории развития, идеологии, математического обоснования и возможностей программных систем на основе функционального подхода к проектированию и реализации программного обеспечения. ещё
Функциональный подход к программированию тест для курса Введение в теорию программирования. Функциональный подход 25 мин
5 Ламбда-исчисление как формализация языка функционального программирования В лекции производится анализ идеологии, математического основания и возможностей ламбда-исчисления – математической формализации, моделирующей языки функционального... В лекции производится анализ идеологии, математического основания и возможностей ламбда-исчисления – математической формализации, моделирующей языки функционального программирования. ещё
Ламбда-исчисление как формализация языка функционального программирования тест для курса Введение в теорию программирования. Функциональный подход 25 мин
6 Базисные типы и стандартные функции языка SML Цель: ознакомиться с ядром языка SML, стандартным набором функций, принципами построения функций и типов.
7 Комбинаторная логика как формальная система В лекции обсуждаются вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей комбинаторной логики - математической... В лекции обсуждаются вопросы, относящиеся к идеологии, математическому основанию и обзору возможностей комбинаторной логики - математической формализации, моделирующей языки функционального программирования и абстрактные вычислительные машины. ещё
Комбинаторная логика как формальная система тест для курса Введение в теорию программирования. Функциональный подход 25 мин
8 Теория типов и комбинаторная логика В данной лекции исследуются принципы, математическое основание и выразительные возможности теории типов и типизированной комбинаторной логики... В данной лекции исследуются принципы, математическое основание и выразительные возможности теории типов и типизированной комбинаторной логики - математической формализации, моделирующей типы выражений в языках программирования. ещё
Теория типов и комбинаторная логика тест для курса Введение в теорию программирования. Функциональный подход 25 мин
9 Функции SML для основных комбинаторов Цель: получить представление об отображении комбинаторной логики на язык SML.
10 Синтаксис языков программирования В лекции рассматриваются вопросы, относящиеся к понятийному аппарату, истории развития и выразительным возможностям синтаксического представления формальных... В лекции рассматриваются вопросы, относящиеся к понятийному аппарату, истории развития и выразительным возможностям синтаксического представления формальных теорий и языков программирования. ещё
Синтаксис языков программирования тест для курса Введение в теорию программирования. Функциональный подход 25 мин
11 Семантика языков программирования В лекции излагаются основополагающие принципы, история развития, существующие подходы и выразительные возможности семантического представления формальных теорий... В лекции излагаются основополагающие принципы, история развития, существующие подходы и выразительные возможности семантического представления формальных теорий и языков программирования. ещё
Семантика языков программирования тест для курса Введение в теорию программирования. Функциональный подход 25 мин
12 Функции для синтаксического разбора простых языковых конструкций Цель: ознакомление с механизмами синтаксического разбора (parsing) простых языковых конструкций.
13 Рекурсивные функции и множества В лекции исследуется рекурсивное представление функций и множеств в формальных теориях и языках программирования. Рассматриваются вопросы,... В лекции исследуется рекурсивное представление функций и множеств в формальных теориях и языках программирования. Рассматриваются вопросы, относящиеся к понятийному аппарату и возможностям рекурсивных вычислений. ещё
Рекурсивные функции и множества тест для курса Введение в теорию программирования. Функциональный подход 25 мин
14 Рекурсивные вычисления Цель: ознакомление с принципами работы механизма рекурсии
15 Абстрактные машины и категориальная комбинаторная логика В лекции излагаются основные концепции абстрактных вычислительных машин. При этом обсуждается история развития последних, анализируются существующие... В лекции излагаются основные концепции абстрактных вычислительных машин. При этом обсуждается история развития последних, анализируются существующие подходы к их реализации. ещё
Абстрактные машины и категориальная комбинаторная логика тест для курса Введение в теорию программирования. Функциональный подход 25 мин
16 Категориальная абстрактная машина В лекции предлагается вариант формальной системыкомбинаторной логики, а также систематизируется технология построения категориальной абстрактной машины как... В лекции предлагается вариант формальной системыкомбинаторной логики, а также систематизируется технология построения категориальной абстрактной машины как формализации языков программирования. ещё
Категориальная абстрактная машина тест для курса Введение в теорию программирования. Функциональный подход 25 мин
17 Оптимизация вычислений и абстрактные машины "В лекции рассматриваются возможные направления и ключевые стратегии повышения вычислительной производительности программных систем. Значительное внимание уделяется... "В лекции рассматриваются возможные направления и ключевые стратегии повышения вычислительной производительности программных систем. Значительное внимание уделяется моделированию этих направлений и стратегий путем внесения ""конструктивных изменений"" в инструкции и среду вычислений абстрактных машин, в частности, КАМ." ещё
Оптимизация вычислений и абстрактные машины тест для курса Введение в теорию программирования. Функциональный подход 25 мин
18 Реализация категориальной абстрактной машины Цель: практически ознакомиться с принципами реализации категориальной абстрактной машины (КАМ) на основе примеров фрагментов реализации.
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

Выдается при наличии среднего специального или высшего образования (необходимые документы).

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.