Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Армавирская государственная педагогическая академия» Институт прикладной информатики, математики и физики Физико-математический факультет Кафедра информатики и информационных технологий обучения Утверждено на заседании кафедры Протокол № ___ от ”_____”_____________2012 г. Зав. кафедрой___________________ УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС по факультативному курсу «ОСНОВЫ ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ» Специальность «Математические методы в экономике» Составитель: Козырева Г.Ф. 4 курс, 8 семестр. Форма отчетности: зачет 2012 год 1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА. Курс “Основы логического программирования ” предназначен для ознакомления студентов с технологией логического программирования Основная задача курса заключается в том, чтобы дать студентам представления о возможностях декларативных языков програм- мирования, ознакомить студентов с методами программирования на этом языке, показать спектр задач, решаемых с помощью этих языков. Теоретическая часть курса включает в себя рассмотрение ПРОЛОГа на концептуальном уровне; изучение основных понятий, особенностей представления данных, наиболее типичных для декларативных языков программирования; задач и методов их решения. Практическая часть предполагает реализацию полученных знаний в виде программ на ЭВМ. В результате изучения курса “Основы логического программирования ” будущий специалист должен иметь четкие представления о ПРОЛОГе как о языке, используемом для решения задач в области экономики. Студенты должны уметь средствами ПРОЛОГа решать простейшие задачи создания динамических баз данных, поиска информации в базе знаний. Курс “Основы логического программирования” должен расширить представления будущего информатика-экономиста о возможностях вычислительной техники, сферах ее применения, показать наиболее перспективные направления развития информатизации общества. Содержание курса “Основы логического программирования” составляет лекционный курс и лабораторные занятия. Лекционный курс позволяет изложить необходимый материал и создает теоретическую основу для практической отработки приемов решения задач. Лабораторные занятия проводятся по подгруппам и предусматривают реализацию полученных студентами заданий в виде программ на ЭВМ. Задания для лабораторных занятий имеют проблемный характер, наиболее типичный для задач, решаемых методами и средствами декларативного программирования. В результате изучения курса «Основы логического программирования» студент должен иметь представление: о множестве задач, решаемых с применением декларативного программирования и о методах их решения с использованием языков логического; о месте и роли, о состоянии развития современных декларативных языков, о проблемах и направлениях развития декларативного программирования; о вопросах представления данных для решения задач логического программирования, о приемах разработки программ с применением декларативных языков программирования. Студент должен знать: базовые понятия и определения, используемые в логическом программировании; методы и уровни представления данных, способы обработки и хранения данных; 2 основы технологии программирования в программных средствах, используемых в современных декларативных языках. Студент должен уметь: разрабатывать и тестировать программы с применением программных средств, используемых в современных декларативных языках; использовать специальную литературу в изучаемой предметной области. 3 2. ТЕМАТИЧЕСКИЙ ПЛАН УЧЕБНОЙ ДИСЦИПЛИНЫ. № Всего Раздел, тема часов В т.ч. аудиторных,час Всего Из них Самост. работа, аудит. Лекции Лаб. работы час 6 7 1 2 3 4 5 1. Представление о логическом программировании Среда программирования Visual Prolog. Основы языка ПРОЛОГ Предложения: факты и правила. Запросы Переменные в ПРОЛОГе Объекты и типы данных в ПРОЛОГе. Структура программы на ПРОЛОГе. Поиск с возвратом. Управление поиском с возвратом: предикаты fail и отсечения Арифметические вычисления. Итого: 4 2 2 8 4 2 2 4 4 2 2 2 2 12 6 2 4 6 8 4 2 2 4 40 20 10 10 20 2. 3. 4. 5. 2 4 3. СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ. 3.1. Содержание лекций. Лекция № 1. Тема: Основы логического программирования. Общие сведения о ПРОЛОГе. Содержание: Процедурные и декларативные языки программирования. Назначение декларативных языков, их особенности. Использование ПРОЛОГа для решения задач, связанных с проблемами искусственного интеллекта. Логика Хорна как основа языка логического программирования Prolog. Фундаментальные свойства ПРОЛОГа. Предикаты как отношения между объектами. Структура предикатов. Объекты и типы данных в ПРОЛОГе. Структура программы на ПРОЛОГе. Лекция № 2. Тема: Представление знаний о предметной области в виде фактов и правил базы знаний Пролога. Содержание: Представление данных при помощи фактов. Факты унарные, бинарные, n-нарные. Представление данных при помощи правил. Структура правила. Запросы программы, их назначение. Запросы простые и составные. Конъюнкция и дизъюнкция целей. Дескриптивный, процедурный и машинный смысл программы на Прологе. Лекция № 3. Тема: Объекты данных. Структура программы ПРОЛОГа. Содержание: 1.Классификация объектов данных: атомы и числа, переменные, структуры. 2. Стандартные типы данных. 3. Разделы программы: domains, database, predicates, goal, clauses. 4. Описание доменов и предикатов. 5.Примеры. Лекция № 4. Тема: Поиск с возвратом. Управление поиском Содержание: Поиск решения задачи в ПРОЛОГе. Сопоставление и унификация. Поиск с возвратом. Управление поиском. Стандартные предикаты fail и отсечения. Механизм действия. Примеры использования Лекция № 5. Тема: Арифметика в Прологе. Рекурсия. Содержание: Математические операции и функции в Прологе. Запись математических выражений. Понятие рекурсии. Рекурсия как метод организации повторяющихся действий в ПРОЛОГе. Достоинства и недостатки рекурсии. Создание рекурсивных правил. Хвостовая 5 рекурсия. Способы задания хвостовой рекурсии. Примеры решения задач с использованием рекурсии. 3.2. Содержание лабораторных работ. Лабораторная работа № 1. (раздел 4.1) Тема: Набор, редактирование и тестирование простейших программ в режиме Test Goal. Цель работы: Отработка практических навыков по набору и редактированию простейших программ в среде Visual Prolog, умения формулировать запросы. Рекомендации к самостоятельной работе: * Изучить литературу [1], [3], [4] * Повторить лекционный материал (лекции №1, 2) * Выполнить электронный тест «Общие сведения о Прологе» для самоподготовки в среде АСТ. *Изучить материалы электронного методического пособия «Основы искусственного интеллекта» (Разделы 5.1, 5.2, 5.3) Содержание работы: 1. Изучить интерфейс среды Visual Prolog. 2. Реализовать в среде Visual Prolog Пример 1 лабораторной работы №1 ([4] c. 8-16) Проанализировать полученные результаты. 3. Выполнить из лабораторной работы №1 ([4] c. 8-16)задания для самостоятельной работы № 1 и №3 Форма представления отчета: Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) листинг программы; 4) результаты ее тестирования. Лабораторная работа № 2. (раздел 4.1) Тема: Создание простейших проектов. Цель работы: Отработка практических навыков по созданию простейших проектов в среде Visual Prolog Рекомендации к самостоятельной работе: * Изучить литературу [1], [2], [6] * Повторить лекционный материал (лекции № 3, 4) * Выполнить электронный тест «Общие сведения о Прологе» для самоподготовки в среде АСТ. *Изучить материалы электронного методического пособия «Основы искусственного интеллекта» (Разделы 5.4, 5.5, 5.6) Содержание работы: 1. Реализовать в среде Visual Prolog Пример1 лабораторной работы №2([4] c. 1620) 2. Проанализировать полученные результаты. 6 3. Выполнить задание для самостоятельной работы лабораторной работы №2([4] c. 16-20) Форма представления отчета: Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) листинг программы; 4) результаты ее тестирования. Лабораторная работа № 3. (раздел 4.3) Тема: Поиск с возвратом Цель работы: изучение механизма поиска с возвратом Рекомендации к самостоятельной работе: * Изучить литературу [2], [3], [5] * Повторить лекционный материал (лекция № 5) * Выполнить электронный тест «Поиск с возвратом» для самоподготовки в среде АСТ. *Изучить материалы электронного методического пособия «Основы искусственного интеллекта» (Раздел 5.8) Содержание работы: 1.Реализовать в среде Visual Prolog Пример 1 лабораторной работы №3([4] c. 2024) 2.Проанализировать полученные результаты. 3.Выполнить задание №1 для самостоятельной работы лабораторной работы №3([4] c. 20-24) Форма представления отчета: Отчет о выполненной самостоятельной работе должен содержать: 1. тему лабораторной работы; 2. условие задачи; 3. листинг программы; 4. результаты ее тестирования; 5. целевое дерево поиска решения. Лабораторная работа № 4. (раздел 4.3) Тема: Управление поиском с возвратом: предикат fail. Цель работы: Отработка практических навыков составления программ с использованием предиката fail Рекомендации к самостоятельной работе: * Изучить литературу [1], [3], [6] * Повторить лекционный материал (лекция № 5) * Выполнить электронный тест «Поиск с возвратом» для самоподготовки в среде АСТ. *Изучить материалы электронного методического пособия «Основы искусственного интеллекта» (Раздел 5.8) Содержание работы: 1.Реализовать в среде Visual Prolog Примеры 1 и 2 лабораторной работы №4([4] c. 24-27) 2.Проанализировать полученные результаты. 3.Выполнить задания №1 и №3 для самостоятельной работы лабораторной работы №4([4] c. 24-27) Форма представления отчета: 7 1) 2) 3) 4) Отчет о выполненной самостоятельной работе должен содержать: тему лабораторной работы; условие задачи; листинг программы; результаты ее тестирования; Лабораторная работа № 5. (раздел 4.3) Тема: Управление поиском с возвратом: предикат отсечения. Цель работы: Отработка практических навыков составления программ с использованием предиката отсечения Рекомендации к самостоятельной работе: * Изучить литературу [2], [3], [5] * Повторить лекционный материал (лекция № 5) * Выполнить электронный тест «Поиск с возвратом» для самоподготовки в среде АСТ. *Изучить материалы электронного методического пособия «Основы искусственного интеллекта» (Раздел 5.8) Содержание работы: 1.Реализовать в среде Visual Prolog Пример 1 лабораторной работы №5([4] c. 2731) 2.Проанализировать полученные результаты. 3.Выполнить задание для самостоятельной работы №1 лабораторной работы №5([4] c. 27-31) Форма представления отчета: Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) листинг программы; 4) результаты ее тестирования; 3.4.Содержание и виды самостоятельной работы студентов 1) Проработка лекционного материала. 2) Работа с литературой: a) к лекции № 1 [1], [6], [7]; b) к лекции № 2 [3], [5],[7], [8]; c) к лекции № 3 [1], [5], [7], [8]; d) к лекции № 4 [3], [5], [7], [8]; e) к лекции № 5 [3], [4], [7], [8]; f) к лекции № 6 [1], [3], [4], [5]; g) к лекции № 7 [1], [3], [4], [8]; h) к лекции № 8 [3], [5],[7], [8]; i) к лекции № 9 [1], [5], [7], [8]; 3) Подготовка к лабораторным занятиям. Изучить литературу: 8 a) b) c) d) e) f) g) h) i) j) k) l) к лаб. раб. № 1 [1], [3], [7]; к лаб. раб. № 2 [1], [2],[5], [8]; к лаб. раб. № 3 [3], [4], [5], [8]; к лаб. раб. № 4 [1], [4], [7], [8]; к лаб. раб. № 5 [1], [3], [7]; к лаб. раб. № 6 [1], [3], [4], [8]. к лаб. раб. № 7 [1], [3], [7]; к лаб. раб. № 8 [1], [2],[5], [8]; к лаб. раб. № 9 [3], [4], [5], [8]; к лаб. раб. № 10 [1], [4], [7], [8]; к лаб. раб. № 11 [1], [3], [7]; к лаб. раб. № 12 [1], [3], [4], [8]. 9 4. РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ Самостоятельная работа студентов состоит в изучении рекомендуемой литературы, проработке лекционного материала, выполнения предложенных заданий. Особое значение имеет самостоятельная работа студентов в компьютерном классе, где они должны получить прочные навыки реализации составленной программы на ЭВМ, умения по набору, редактированию и запуску программы. Одним из результатов самостоятельной работы за ЭВМ является развитие навыков по проведению анализа результатов выполнения программы, умения доказывать правильность составленного алгоритма. Самостоятельная работа студентов должна быть направлена на формирование и углубление практических навыков работы с ЭВМ, на овладение приемами постановки и разработки основных этапов решения задачи. В течение семестра студенты должны изучить основные понятия и методы решения задач на ПРОЛОГе. 5.ТРЕБОВАНИЯ К ЗАЧЕТУ Выполнение и защита всех лабораторных работ. 6. СПИСОК РЕКОМЕНДУЕМОЙ ДЛЯ ИЗУЧЕНИЯ ЛИТЕРАТУРЫ 6.1. Основная литература 1. Братко И. Программирование на языке ПРОЛОГ для искуственного интеллекта.- М., 1990. 2. Ин Ц., Соломон Д. Использование Турбо-Пролога. -М., 1993. 3. Козырева Г.Ф. Лабораторный практикум на языке Visual Prolog: учебнометодическое пособие.-Армавир: , 2004. -54C. 4. Козырева Г.Ф. Практикум решения задач по курсу «Основы искусственного интеллекта» : учебно-методическое пособие.-Армавир: , 2005. -64C. 5. Клоксин У., Меллиш К. Программирование на языке ПРОЛОГ. -М., 1991. 6. Макаллистер Дж. Искусственный интеллект и Пролог на микроЭВМ.- М., 1990. 7. Янсон А. Турбо-Пролог в сжатом изложении. -М.,1990. 6.2.Дополнительная литература 7. Бир Ст. Кибернетика и управление производством. - М., 1963. 8. Вейценбаум Дж. Возможности вычислительных машин и человеческий разум. От суждений к вычислениям. М., 1982. 9. Гутенмахер Л.И. Электронные информационно-логические машины, - М., 1970. 10. Кирсанов Б.С., Попов Э.В. Экспертные системы. Состояние и перспективы.-В сб. “Экспертные системы”.-М., 1986. 11. Попов Э.В. Экспертные системы. М., 1987. 12. Рейтман В.Р. Разработка программ для решения интеллектуальных проблем. “Зарубежная радиоэлектроника”, 1982, №1. 13. Симонс Дж. ЭВМ пятого поколения: компьютеры 90-х годов. - М., 1985 г. 14. Тимофеев А.В. Информатика и искусственный интеллект.- М.,1992. 10 11