310 likes | 612 Views
Рекурсивно-логическое программирование. Представление дисциплины. Общие сведения по дисциплине. Рекурсивно-логическое программирование Читается для специальности 010503 – «Математическое обеспечение и администрирование информационных систем»
E N D
Рекурсивно-логическое программирование Представление дисциплины
Общие сведения по дисциплине • Рекурсивно-логическое программирование • Читается для специальности 010503 – «Математическое обеспечение и администрирование информационных систем» • Настоящая дисциплина включает понятия, нацеленные на выработку у студента декларативного навыка описания задач, в отличие от алгоритмического. Ознакомление с декларативным программированием и методами решения задач с использованием функционального и логического программирования . • Сфера профессионального использования – разработка экспертных и интеллектуальных информационных систем
Краткое описаниедисциплины • Курс посвящен изложению различных подходов к решению задач функционального и логического программирования, преставления данных, приемах разработки программ, об основных методах и средствах автоматизации проектирования, используемых в программных средствах декларативного программирования.
Цели и задачи преподавания дисциплины • Основной целью дисциплины является формирование у студентов знаний, умений и навыков, нацеленных на знакомство с декларативным программированием и методами решения задач с использованием функционального и логического программирования.
Место дисциплины среди смежных дисциплин • Данная дисциплина требует предварительного изучения курсов: информатика, вычислительная техника, дискретная математика, математическая логика, программирование, базы данных. • В то же время дисциплина является одной из базовых дисциплин для дисциплины «Системы искусственного интеллекта».
Начальные знания • Для успешного освоения курса требуется знание основ информатики, вычислительной техники, дискретной математики, математической логики, владеть основами программирования, уметь программировать на одном из языков высокого уровня, иметь опыт пользовательской работы с Базами Данных и системой Delphi.
Итоговые знания, умения и навыки • В результате изучения дисциплины студенты должны иметь ПРЕДСТАВЛЕНИЯ: • о логических языках программирования; • о декларативном стиле написания программ; • об экспертных системах; • В результате изучения дисциплины студенты должны получить ЗНАНИЯ: • о синтаксисе языка Пролог; • об алгоритме работы Пролог-машины; • о технологии декларативного программирования ; • о метапрограммах; • В результате изучения дисциплины студенты должны приобрести УМЕНИЯ И НАВЫКИ: • ориентироваться в современных языках декларативного программирования; • обосновывать выбор метода, языка и представления данных для решения поставленной задачи ; • иметь практические навыки работы с Amzi Prolog; • уметь разрабатывать и тестировать программы.
Содержание лекционного курса • Тема 1. Введение в дисциплину Логическое программирование • Тема 2. Синтаксис языков логического программирования • Тема 3. Интерпретатор пролог машины • Тема 4. Рекурсивные правила • Тема 5. Средства управления программой • Тема 6. Базы данных и списки • Тема 7. Расширение синтаксиса языка • Тема 8. Не полные структуры данных • Тема 9. Рекурсивные типы данных • Тема 10. Работа с базой данных • Тема 11. Связь с файлами • Тема 12. Технология программирования с использованием языка логического программирования • Тема 13. Моделирование недетерминированных автоматов • Тема 14. Использование базы знаний в Delphi - приложениях • Тема 15. Экспертные системы • Тема 16. Выбор направления поиска с помощью эвристики
Тема 1. Введение в дисциплину Логическое программирование • Целью изучения данной темы является знакомство с основными идеями логического программирования и примерами программы на языке Пролог.
Тема 2. Синтаксис языков логического программирования • Целью изучения данной темы является знакомство с основными синтаксическими конструкциями языка Пролог. Рассматриваются структуры, арифметические выражения и правила составления программ.
Тема 3. Интерпретатор пролог машины • Данная тема освещает вопросы механизма работы интерпретатора пролог машины, а также вводится понятие и правила унификации.
Тема 4. Рекурсивные правила • Данная тема раскрывает особенности построения рекурсивных правил на языке Пролог. Дается понятие базиса рекурсии и шага рекурсии. Приведены примеры, иллюстрирующие удачные и неудачные способы задания рекурсивных правил. В теме рассматривается влияние порядка подцелей в теле рекурсии на ее выполнение.
Тема 5. Средства управления программой • В данной теме рассматривается порядок составления программ на языке Пролог, встроенные предикаты для загрузки программы в Пролог-машину. Приводятся примеры, иллюстрирующие написание функций.
Тема 6. Базы данных и списки • В этой теме обсуждается программирование баз данных. Помимо этого в теме рассматривается определение и работа со списками. Приводятся примеры процедур, обрабатывающих списки.
Тема 8. Не полные структуры данных • Данная тема необходима для того, чтобы познакомиться с применением неполных структур данных. На основе применения неполных структур данных могут быть развиты мощные методы программирования.
Тема 9. Рекурсивные типы данных • Данная тема посвящена изучению рекурсивных типов данных - бинарные деревья, бинарные справочники и их представлениям на Прологе.
Тема 10. Работа с базой данных • В теме рассматриваются встроенные предикаты Пролога для работы с внутренней базой данных.
Тема 11. Связь с файлами • Данная тема знакомит со встроенными предикатами, открывающими и закрывающими входные и выходные потоки файлов.
Тема 12. Технология программирования с использованием языка логического программирования • В этой теме мы рассмотрим некоторые общие принципы хорошего программирования и обсудим, в частности, следующие вопросы: «Как представлять себе прологовские программы? Из каких элементов складывается хороший стиль программирования на Прологе? Как отлаживать пролог-программы? Как повысить их эффективность?»
Тема 13. Моделирование недетерминированных автоматов • Целью данной темы является изучение возможностей Пролога, которые позволяют представить такую абстрактную математическую конструкцию как недетерминированный автомат.
Тема 14. Использование базы знаний в Delphi - приложениях. Метаинтерпретаторы. • Задачами темы являются: знакомство с компонентом среды Borland Delphi для работы с прологовской базой знаний и возможностями программирования метаинтерпретатора на Прологе.
Тема 15. Экспертные системы • Цели и задачи изучения темы: познакомиться с понятием экспертной системы, а также ее реализацией на языке логического программирования.
Тема 16. Выбор направления поиска с помощью эвристики
Лабораторный практикум • Лабораторная работа №1 (по темам №1,2,3). Ознакомление с оболочкой AMZI! Prolog. Изучение основ программирования на языке Пролог. Отношения между данными. • Лабораторная работа №2 (по теме №4). Использование рекурсивных правил. • Лабораторная работа №3 (по теме №2). Структурированные типы данных. • Лабораторная работа №4 (по теме №6). Работа со списками. • Лабораторная работа №5 (по теме №9). Бинарные деревья. • Лабораторная работа №6 (по теме №10). Работа с динамическими базами данных. • Лабораторная работа №7 (по теме №14). Использование возможностей логического сервера AMZI! Prolog в среде Delphi
Формы контроля • Текущий контроль • Тестпо каждой теме • Итоговый контроль • Тест по дисциплине в целом
Глоссарий • Глоссарий – обеспечивает толкование и определение основных понятий, необходимых для адекватного осмысления материала. • Например: • Бинарное дерево – структура данных, которая либо пуста, либо состоит из трёх компонентов: корень, левое поддерево, правое поддерево, где левое и правое поддеревья это бинарные деревья; • Бинарный справочник – это бинарное дерево, у которого все вершины левого поддерева меньше корня, а все вершины правого поддерева больше корня и оба поддерева упорядочены.
Список литературы • Основная • БраткоИ. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990. – 560С. • СтерлингЛ., ШапироЭ. Искусство программирования на языке Пролог. – М.: Мир, 1990. – 235С. • Метакидес Г., Нероуд А. Принципы логики и логического программирования. – М.: Факториал, 1998. • Хоггер К. Введение в логическое программирование. – М.: Мир, 1988.
Список литературы • Дополнительная • Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, 1993. – 608 С. • Клоксин У., Меллиш Д. Программирование на языке Пролог. – М.: Мир, 1987. – 336 С. • Стобо Дж. Язык программирования Пролог. – М.: Мир, 1993. – 368 С . • Малпас Дж. Реляционный язык Пролог и его применение. – М.: Наука, 1990. – 463 С . • МаурерУ. Введение в программирование на языке ЛИСП. – М.: Мир, 1978. – 104С.
Сведения об авторах • ФИО: Хачатрян Владимир Ервандович • Место работы: Белгородский государственный университет • Ученая степень:кандидат физико-математических наук • Ученое звание:доцент • Должность:доцент • Кафедра:математического и программного обеспечения информационных систем • ФИО: Великая Яна Геннадьевна • Место работы: Белгородский государственный университет • Ученая степень: • Ученое звание: • Должность:ассистент • Кафедра:математического и программного обеспечения информационных систем • Контактная информация: • Адрес: Белгород, ул. Победы 85, корпус 14, факультет компьютерных наук и телекоммуникаций • Рабочий телефон: (4722) 30-13-57 • E-mail: khachatryan@bsu.edu.ru,velikaya@bsu.edu.ru