Бакалавриат
2019/2020
Научно-исследовательский семинар "Декларативное программирование"
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Ломазова Ирина Александровна
Язык:
русский
Кредиты:
3
Контактные часы:
50
Программа дисциплины
Аннотация
Научно-исследовательский семинар "Декларативное программирование" преподается студентам 1 курса образовательной программы «Программная инженерия». Курс направлен на формирование у студентов представлений о различных парадигмах программирования, теоретических знаний в области математических основ декларативного программирования и практических навыков программирования на языке Пролог. Также студенты получат опыт самостоятельной работы с учебной и научной литературой, ведения самостоятельного исследования, представления результатов своей работы на научном семинаре, участия в обсуждениях и дискуссиях.
Цель освоения дисциплины
- Формирование у студентов представлений о различных парадигмах программирования, теоретических знаний в области математических основ декларативного программирования и практических навыков программирования на языке Пролог
Планируемые результаты обучения
- Знать об основных парадигмах программирования и их особенностях
- Иметь навыки работы с литературой и ведения самостоятельных исследований
- Знать основы логики предикатов и теории логического вывода
- Уметь формулировать условия задачи на языке логики предикатов
- Знать основы языка программирования Пролог
- Иметь навыки программирования на языке Пролог
- Иметь навыки выступлений с научными докладами
Содержание учебной дисциплины
- Парадигмы программирования. Императивное и декларативное программирование.Исторический обзор парадигм программирования. Современные парадигмы. Отличия императивного и декларативного программирования, их преимущества и недостатки.
- Основы логики предикатов.Синтаксис и семантика языка логики предикатов. Перевод утверждений с естественного языка на формальный язык логики предикатов.
- Основы логического вывода.Понятие формального доказательства. Пример исчисления высказываний. Аксиомы и правила вывода логики предикатов. Приемы построения строгих доказательств.
- Метод резолюций.Правило резолюции. Построение доказательств методом резолюций. Метод резолюций и автоматическое доказательство теорем.
- Начальные понятия языка Пролог.Работа с интерпретатором SWI Prolog. Факты, предложения и запросы в Прологе.
- Унификация в языке Пролог.Правила унификации термов в языке Пролог. Роль переменных в Прологе. Вывод на основе унификации.
- Декларативная и процедурная интерпретация логических программ.Рекурсивное программирование на Прологе. Процедурная интерпретация рекурсивных программ. Виды рекурсии. Рекурсивные функции и эффективность рекурсивных процессов. Внелогические предикаты в Прологе.
- Эффективность исполнения логических программ. Понятие отсечения.Понятие отсечения. Зеленое и красное отсечение. Управление логическим выводом.
- Списки в языке Пролог.Представление списков в языке Пролог. Работа со списками. Вложенные списки и деревья.
- Решение задач на Прологе.Разбор типичных задач логического программирования: логические задачи, задачи эвристического поиска, работа со списками и деревьями.
- Презентация и обсуждение докладов.Представление студентами решений своих задач на языке Пролог. Обсуждение представленных решений.
Элементы контроля
- Посещаемость и активность (ПА)
- Доклад (Д)Экзамен письменный, без прокторинга. Технические требования: web-камера, микрофон, наушники / колонки
Промежуточная аттестация
- Промежуточная аттестация (3 модуль)0.5 * Доклад (Д) + 0.5 * Посещаемость и активность (ПА)
Список литературы
Рекомендуемая основная литература
- Глухов М. М., Шишков А. Б. - Математическая логика. Дискретные функции. Теория алгоритмов - Издательство "Лань" - 2012 - 416с. - ISBN: 978-5-8114-1344-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/4041
Рекомендуемая дополнительная литература
- Математическая логика : учеб. пособие для вузов, Колмогоров, А. Н., 2005