Энгельсский технологический институт (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Саратовский государственный технический университет имени Гагарина Ю.А.» Кафедра технической физики и информационных технологий РАБОЧАЯ ПРОГРАММА по дисциплине "Функциональное и логическое программирование" для специальности 220400 "Программное обеспечение вычислительной техники и автоматизированных систем" курс 3. Семестр 6. Лекций 34 часа Лабораторные работы – 34 часа. Самостоятельная работа –34 часа Всего часов -140 Экзамен – 6 семестр. Рабочая программа обсуждена на заседании кафедры технической физики "_____"____________20__г. Протокол N_________ Зав. кафедрой ________________Д.В.Терин ЭНГЕЛЬС 2011 2 1. Цель преподавания дисциплины «Функциональное и логическое программирование», её место в учебном процессе. 1.1 Цель преподавания дисциплины Целью преподавания дисциплины "Функциональное и логическое программирование" является изучение студентами основ функционального и логического программирования, языкам программирования VISUAL PROLOG, ЛИСП. 1.2 Задачи изучения дисциплины. Задачами дисциплины формируются на основе требований квалификационной характеристики инженера-прграммиста указанной специальности. 1.3 Перечень дисциплин, усвоение которых студентами необходимо для изучения дисциплины «Базы данных» -- Информатика -- Программирование на языке высокого уровня -- Структуры и алгоритмы обработки данных -- Математическая логика и теория алгоритмов 2. Требования к знаниям и умениям студентов. Студент должен знать: теорию и прикладные аспекты использования языков, перспективы развития средств функционального и логического программирования. Студент должен уметь: создавать системы символьных вычислений, обработки текстов, системы логического вывода и создавать приложения в среде Visual Prolog 3. Распределение трудоёмкости дисциплины по темам и видам занятий № модуля № недели № темы Наименование темы Все- Лек- Лаб Прак Сам Го ции зан тич раб Часов 1 1 1 1 1 1 1 2,3 4,5 6 7,8 9 1 2 3 4 5 6 2 22 12 18 18 6 2 4 4 2 4 2 6 8 4 4 4 1 10 7 6 2 4 1 11, 12 8 16 4 2 10 1 13 9 Введение Основы языка Visual Prolog Унификация и поиск с возвратом Повтор и рекурсия Списки и рекурсия Арифметические вычисления и сравнения Внутренняя база фактов Visual Prolog Разработка графического интерфейса пользователя в среде Visual Prolog Возможности визуальной среды разработки Visual Prolog Язык ЛИСП Определение функций Списки Вычисления в ЛИСПе 14 2 2 10 2 12 2 12 140 2 2 2 2 34 2 14 2 15 2 16 2 17 Итого 10 11 12 13 12 10 10 10 34 10 72 3 № темы 1 Всего часов 2 4. Содержание лекционного курса № Темы лекций. Вопросы, отрабатываемые на лекции лекциях 1 Введение. Цели и задачи дисциплины, ее структура и связь с другими курсами. Исторические предпосылки функционального и логического программирования. 2 4 2,3 Основы языка Visual Prolog Простые и составные объекты. Факты. Правила. Запросы. Основные разделы Visual Prolog – программы. Программа о родственных отношениях. 3 4 4,5 4 2 6 5 4 7,8 6 2 9 Унификация и поиск с возвратом Сопоставление и унификация. Поиск с возвратом. Управление поиском решений. Предикат fail. Прерывание поиска с возвратом. Отсечение. Предикат not. Повтор и рекурсия. Рекурсивные процедуры. Рекурсивное определение правил. Списки и рекурсия. Списки. Операции над списками. Хвостовая рекурсия. Арифметические вычисления и сравнения. Арифметические выражения. Арифметические операции и функции. Вычисление арифметических выражений. Логические предикаты. Сравнения. 7 2 10 Внутренняя база фактов Visual Prolog Объявление и обновление внутренней базы фактов. Сохранение внутренней базы фактов во время работы программы. 8 4 11,12 Разработка графического интерфейса пользователя в среде Visual Prolog. Средства создания графического интерфейса. Окна. События. 9 2 13 10 2 14 11 2 15 12 2 15 13 2 16 Итого 34 Возможности визуальной среды разработки Visual Prolog. Проекты. Эксперт приложений. Команды построения. Язык ЛИСП. Символы и списки. Базовые функции. Определение функций. Лямбда исчисление Черча. Лямбда – выражения. DEFUN – определение функций. Определение рекурсивных функций. Списки. Списки. CONSы. Представление списков CONSами. DOT и LIST – нотации. Селекторные функции CAR и CDR. Конструкторная функция CONS Вычисление в ЛИСПе Последовательность вычислений. Конструкции PROG1, PROG2, PROGN. Разветвление вычислений. Условное предложение COND. 4 5. Перечень практических занятий Учебным планом не предусмотрено 6. ПЕРЕЧЕНЬ ЛАБОРАТОРНЫХ РАБОТ № темы Всего часов № работы 2 5 6 5 3 3 7 Итого 6 4 4 4 4 4 4 34 1 2 3 4 5 6 7 Наименование лабораторной работы Программа «Родственные отношения» на Visual Prolog Операции над списками Арифметические действия Стандартный предикат findall Задача о классификации объектов Отсечение Внутренняя база фактов Visual Prolog 7. Задания для самостоятельной работы студентов. № раз- КолВопросы для самостоятельного изучения дела Во (темы) часов 2 4 5 8 9 12 12 10 10 10 10 10 13 10 Всего: Литература Глобальные разделы программы Visual Prolog 1 Рекурсивные структуры данных 1,2,3 Составные списки 1,2 Создание окон 1 Диалоговые окна 1 Функции сравнения списков, соединение списков в 7,8 ЛИСПе. Арифметические и логические функции ЛИСПа. 7,8 72 8. Курсовой проект Учебным планом не предусмотрен 9. Курсовая работа 1. Турнирная таблица спортивных соревнований. 2. Операции со списками. 3. Дерево родственных отношений. 4. Классификация объектов на примере успеваемости в студенческой группе. 5. Классификация объектов на примере результатов спортивных соревнований. 6. Использование стандартных предикатов Visual Prolog. 7. Операции рисования Visual Prolog. 8. Применение интерфейса редактора Visual Prolog. 9. Простейшая экспертная система. 10. Моделирование элементов аппаратуры. 11. Реализация правил дифференцирования в Visual Prolog. 12. Реализация правил интегрирования в Visual Prolog. 5 10. Расчетно-графическая работа Учебным планом не предусмотрена 11. Контрольная работа Учебным планом не предусмотрена 12. Экзаменационные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Простые и составные объекты вVisual Prolog Объявление типов объектов. Объявление типов составных объектов. Факты, правила, запросы. Основные разделы программы: domains, facts, predicates, clauses, goal. Программа «Родственные отношения» Сопоставление и унификация. Управление поиском решений. Предикат fail. Отсечение. Предикат not. Пример классификации объектов. Рекурсивное определение правил. Списки. Операции над списками. Определение длины списка, поиск элемента списка. Стандартный предикат findall. Арифметические выражения, операции, функции. Логические предикаты. Сравнения. Внутренняя база фактов в вVisual Prolog. Стандартные предикаты для обновления внутренней базы фактов. Символы и списки в Лиспе. Базовые функции. Лямбда исчисление Черча. Лямбда – выражения. DEFUN – определение функций. Определение рекурсивных функций. Списки. CONSы. Представление списков CONSами. DOT и LIST – нотации. Селекторные функции CAR и CDR. Конструкторная функция CONS. Последовательность вычислений. Конструкции PROG1, PROG2, PROGN. Разветвление вычислений. Условное предложение COND. 13. ОСНОВНАЯ И ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 1. Адаменко А., Кучуков А. Логическое программирование и VISUAL PROLOG. Санкт-Петербург: «БХВ-Петербург», 2003. 2. Братко И. Программирование на языке ПРОЛОГ для искусственного интеллекта. – М.: Мир, 1990. 3. Малпас Д. Реляционный язык ПРОЛОГ и его применение. М.: Наука, 1990. 4. Янсон А. ТУРБО-ПРОЛОГ в сжатом изложении. – М.: Мир, 1991. 5. А.Тейз, П. Грибомон и др. Логический подход к искусственному интеллекту: от классической логики к логическому программированию. М.: Мир, 1990. 6. Марселлус Д. Программирование экспертных систем на ТУРБО- ПРОЛОГЕ. М.: Мир, 1990. 7. Хювенен Э., Сеннянен Ий. Мир ЛИСПа. Введение в язык ЛИСП и функциональное программирование. Том 1. – М.: Мир, 1990. 8. Хювенен Э., Сеннянен Ий. Мир ЛИСПа. Методы и системы программирования. Том 2. – М.: Мир, 1990. 6 9. Лавров С.С., Силагадзе Г. С. Автоматическая обработка данных. Язык ЛИСП и его реализация. – М.: Наука, 1978. 10.Программирование на языке R-ЛИСП. /А.Крюков, А. Родионов и др. – М.: Радио и связь, 1991. 14. ИСПОЛЬЗОВАНИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ При выполнении компьютеры . лабораторных работ применяются Рабочую программу составил: доцент_________________В.М.Картамышев "____"____________20__ г. персональные