Рекурсивно-логическое программирование Представление дисциплины
2 Общие сведения по дисциплине Рекурсивно-логическое программирование Читается для специальности – «Математическое обеспечение и администрирование информационных систем» Настоящая дисциплина включает понятия, нацеленные на выработку у студента декларативного навыка описания задач, в отличие от алгоритмического. Ознакомление с декларативным программированием и методами решения задач с использованием функционального и логического программирования. Сфера профессионального использования – разработка экспертных и интеллектуальных информационных систем
3 Краткое описание дисциплины Курс посвящен изложению различных подходов к решению задач функционального и логического программирования, преставления данных, приемах разработки программ, об основных методах и средствах автоматизации проектирования, используемых в программных средствах декларативного программирования.
4 Цели и задачи преподавания дисциплины Основной целью дисциплины является формирование у студентов знаний, умений и навыков, нацеленных на знакомство с декларативным программированием и методами решения задач с использованием функционального и логического программирования.
5 Место дисциплины среди смежных дисциплин Данная дисциплина требует предварительного изучения курсов: информатика, вычислительная техника, дискретная математика, математическая логика, программирование, базы данных. В то же время дисциплина является одной из базовых дисциплин для дисциплины «Системы искусственного интеллекта».
6 Начальные знания Для успешного освоения курса требуется знание основ информатики, вычислительной техники, дискретной математики, математической логики, владеть основами программирования, уметь программировать на одном из языков высокого уровня, иметь опыт пользовательской работы с Базами Данных и системой Delphi.
7 Итоговые знания, умения и навыки В результате изучения дисциплины студенты должны иметь ПРЕДСТАВЛЕНИЯ: о логических языках программирования; о декларативном стиле написания программ; об экспертных системах; В результате изучения дисциплины студенты должны получить ЗНАНИЯ: о синтаксисе языка Пролог; об алгоритме работы Пролог-машины; о технологии декларативного программирования ; о метапрограммах; В результате изучения дисциплины студенты должны приобрести УМЕНИЯ И НАВЫКИ: ориентироваться в современных языках декларативного программирования; обосновывать выбор метода, языка и представления данных для решения поставленной задачи ; иметь практические навыки работы с Amzi Prolog; уметь разрабатывать и тестировать программы.
8 Содержание лекционного курса Тема 1. Введение в дисциплину Логическое программирование Тема 2. Синтаксис языков логического программирования Тема 3. Интерпретатор пролог машины Тема 4. Рекурсивные правила Тема 5. Средства управления программой Тема 6. Базы данных и списки Тема 7. Расширение синтаксиса языка Тема 8. Не полные структуры данных Тема 9. Рекурсивные типы данных Тема 10. Работа с базой данных Тема 11. Связь с файлами Тема 12. Технология программирования с использованием языка логического программирования Тема 13. Моделирование недетерминированных автоматов Тема 14. Использование базы знаний в Delphi - приложениях Тема 15. Экспертные системы Тема 16. Выбор направления поиска с помощью эвристики
9 Тема 1. Введение в дисциплину Логическое программирование Целью изучения данной темы является знакомство с основными идеями логического программирования и примерами программы на языке Пролог.
10 Тема 2. Синтаксис языков логического программирования Целью изучения данной темы является знакомство с основными синтаксическими конструкциями языка Пролог. Рассматриваются структуры, арифметические выражения и правила составления программ.
11 Тема 3. Интерпретатор пролог машины Данная тема освещает вопросы механизма работы интерпретатора пролог машины, а также вводится понятие и правила унификации.
12 Тема 4. Рекурсивные правила Данная тема раскрывает особенности построения рекурсивных правил на языке Пролог. Дается понятие базиса рекурсии и шага рекурсии. Приведены примеры, иллюстрирующие удачные и неудачные способы задания рекурсивных правил. В теме рассматривается влияние порядка подцелей в теле рекурсии на ее выполнение.
13 Тема 5. Средства управления программой В данной теме рассматривается порядок составления программ на языке Пролог, встроенные предикаты для загрузки программы в Пролог-машину. Приводятся примеры, иллюстрирующие написание функций.
14 Тема 6. Базы данных и списки В этой теме обсуждается программирование баз данных. Помимо этого в теме рассматривается определение и работа со списками. Приводятся примеры процедур, обрабатывающих списки.
15 Тема 7. Расширение синтаксиса языка.
16 Тема 8. Не полные структуры данных Данная тема необходима для того, чтобы познакомиться с применением неполных структур данных. На основе применения неполных структур данных могут быть развиты мощные методы программирования.
17 Тема 9. Рекурсивные типы данных Данная тема посвящена изучению рекурсивных типов данных - бинарные деревья, бинарные справочники и их представлениям на Прологе.
18 Тема 10. Работа с базой данных В теме рассматриваются встроенные предикаты Пролога для работы с внутренней базой данных.
19 Тема 11. Связь с файлами Данная тема знакомит со встроенными предикатами, открывающими и закрывающими входные и выходные потоки файлов.
20 Тема 12. Технология программирования с использованием языка логического программирования В этой теме мы рассмотрим некоторые общие принципы хорошего программирования и обсудим, в частности, следующие вопросы: «Как представлять себе прологовские программы? Из каких элементов складывается хороший стиль программирования на Прологе? Как отлаживать пролог- программы? Как повысить их эффективность?»
21 Тема 13. Моделирование недетерминированных автоматов Целью данной темы является изучение возможностей Пролога, которые позволяют представить такую абстрактную математическую конструкцию как недетерминированный автомат.
22 Тема 14. Использование базы знаний в Delphi - приложениях. Метаинтерпретаторы. Задачами темы являются: знакомство с компонентом среды Borland Delphi для работы с прологовской базой знаний и возможностями программирования мета интерпретатора на Прологе.
23 Тема 15. Экспертные системы Цели и задачи изучения темы: познакомиться с понятием экспертной системы, а также ее реализацией на языке логического программирования.
24 Тема 16. Выбор направления поиска с помощью эвристики
25 Лабораторный практикум Лабораторная работа 1 (по темам 1,2,3). Ознакомление с оболочкой AMZI! Prolog. Изучение основ программирования на языке Пролог. Отношения между данными. Лабораторная работа 2 (по теме 4). Использование рекурсивных правил. Лабораторная работа 3 (по теме 2). Структурированные типы данных. Лабораторная работа 4 (по теме 6). Работа со списками. Лабораторная работа 5 (по теме 9). Бинарные деревья. Лабораторная работа 6 (по теме 10). Работа с динамическими базами данных. Лабораторная работа 7 (по теме 14). Использование возможностей логического сервера AMZI! Prolog в среде Delphi
26 Формы контроля Текущий контроль Тест по каждой теме Итоговый контроль Тест по дисциплине в целом
27 Глоссарий Глоссарий – обеспечивает толкование и определение основных понятий, необходимых для адекватного осмысления материала. Например: 1. Бинарное дерево – структура данных, которая либо пуста, либо состоит из трёх компонентов: корень, левое поддерево, правое поддерево, где левое и правое поддеревья это бинарные деревья; 2. Бинарный справочник – это бинарное дерево, у которого все вершины левого поддерева меньше корня, а все вершины правого поддерева больше корня и оба поддерева упорядочены.
28 Список литературы Основная Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, – 560 С. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. – М.: Мир, – 235 С. Метакидес Г., Нероуд А. Принципы логики и логического программирования. – М.: Факториал, Хоггер К. Введение в логическое программирование. – М.: Мир, 1988.
29 Список литературы Дополнительная Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, – 608 С. Клоксин У., Меллиш Д. Программирование на языке Пролог. – М.: Мир, – 336 С. Стобо Дж. Язык программирования Пролог. – М.: Мир, – 368 С. Малпас Дж. Реляционный язык Пролог и его применение. – М.: Наука, – 463 С. Маурер У. Введение в программирование на языке ЛИСП. – М.: Мир, – 104 С.
30 Сведения об авторах ФИО: Хачатрян Владимир Ервандович Место работы: Белгородский государственный университет Ученая степень: кандидат физико-математических наук Ученое звание:доцент Должность:доцент Кафедра:математического и программного обеспечения информационных систем ФИО: Великая Яна Геннадьевна Место работы: Белгородский государственный университет Ученая степень: Ученое звание: Должность:ассистент Кафедра:математического и программного обеспечения информационных систем Контактная информация: Адрес: Белгород, ул. Победы 85, корпус 14, факультет компьютерных наук и телекоммуникаций Рабочий телефон: (4722)
31