Республики Беларусь «24»
Вид материала | Пояснительная записка |
- В перечень банков Республики Беларусь, имеющих право обязываться по векселю, утверждаемый, 419.3kb.
- Республики Беларусь 15 августа 2006, 202.35kb.
- Одобрен Советом Республики 8 февраля 1999 года общая часть глава 1 общие положения, 799.65kb.
- Об утверждении Инструкции о порядке взаимодействия государственных органов, ответственных, 157.85kb.
- Республики Беларусь «Об органах внутренних дел Республики Беларусь», 9.85kb.
- Конституции Республики Беларусь Совет Республики Национального собрания Республики, 11.32kb.
- Конституции Республики Беларусь Совет Республики Национального собрания Республики, 11.74kb.
- Совета Министров Республики Беларусь от 31 октября 2001 г. N 1592 "Вопросы Министерства, 1509.5kb.
- Постановление государственного комитета по авиации республики беларусь, 78.75kb.
- Конституции Республики Беларусь Совет Республики Национального собрания Республики, 13.86kb.
Утверждена
УМО вузов Республики Беларусь по образованию в области информатики и радиоэлектроники
« 03 » июня 2003 г.
Регистрационный № ТД-40-002/тип.
^
ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Учебная программа для высших учебных заведений
по специальности І-40 01 01 Программное обеспечение
информационных технологий
Согласована с Учебно-методическим управлением БГУИР
« 28 » мая 2003 г.
Составитель:
И.А. Мурашко, доцент кафедры программного обеспечения информационных технологий Учреждения образования «Белорусский государственный университет информатики и радиоэлектроники», кандидат технических наук
Рецензенты:
Г.П. Апарин, ведущий научный сотрудник лаборатории обработки и распознавания изображений Института технической кибернетики Национальной академии наук Беларуси;
^ Кафедра программного обеспечения вычислительной техники и автоматизированных систем Учреждения образования «Белорусский национальный технический университет» (протокол № 15 от 06.05.2002 г.)
^ Рекомендована к утверждению в качестве типовой:
Кафедрой программного обеспечения информационных технологий Учреждения образования «Белорусский государственный университет информатики и радиоэлектроники» (протокол № 16 от 18.03.2002 г.);
Научно-методическим советом по направлению І-40 Вычислительная техника УМО вузов Республики Беларусь по образованию в области информатики и радиоэлектроники (протокол № 2 от 20.06.2002 г.)
^
Разработана на основании Образовательного стандарта РД РБ 02100.5.112-98.
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Типовая программа «Функциональное и логическое программирование» разработана в соответствии с Образовательным стандартом РД РБ 02100.5.112-98 для студентов специальности І-40 01 01 Программное обеспечение информационных технологий высших учебных заведений. Она предусматривает изучение методов декларативного программирования, освоение языков функционального и логического программирования, введение в проблематику искусственного интеллекта. Теоретический материал курса базируется на курсах «Конструирование программ и языки программирования», «Спецглавы высшей математики». Материал курса используется в курсах «Базы данных, знаний и экспертные системы», «Программное обеспечение систем искусственного интеллекта». Целью изучения дисциплины является знакомство с принципами декларативного программирования, а также его отличиями от императивного.
В результате освоения курса «Функциональное и логическое программирование» студент должен:
знать:
- принципы декларативного программирования, его отличия от императивного программирования;
- основы построения рекурсивных функций;
- основные приемы функционального программирования;
- основы логического программирования;
уметь анализировать:
- эффективность решения задачи различными методами программирования;
- достоинства применения стиля программирования для решения конкретного класса задач;
приобрести навыки:
- работы в среде программирования ЛИСП;
- разработки программ на языке Турбо-Пролог.
Программа рассчитана на объем 136 учебных часов. Примерное распределение учебных часов по видам занятий: лекций – 68 часов, лабораторных работ – 68 часов(см. таблицу).
Распределение учебных часов
№ п.п. | ^ Наименование темы | Лек-ции, часов | Практические занятия, часов | Лаборатор- ные занятия, часов | Все-го |
1 | 2 | 3 | 4 | 5 | 6 |
1 | Тема 1. Императивное и декларативное программирование | 2 | | | 2 |
2 | Тема 2. Введение в функциональное программирование | | | | |
2.1 | Функции и функциональное представление алгоритмов | 6 | | | 6 |
Окончание таблицы
1 | 2 | 3 | 4 | 5 | 6 |
2.2 | Введение в лямбда-исчисление | 2 | | 4 | 6 |
3 | Тема 3. Программирование на языке ЛИСП | | | | |
3.1 | Символьное представление данных и элементарные функции языка ЛИСП | 6 | | 8 | 14 |
3.2 | Построение рекурсивных функций и основные приемы функционального программирования | 6 | | 8 | 14 |
3.3 | Вычислимые функции и функционалы | 2 | | 4 | 6 |
3.4 | Ассоциативные списки и списки свойств | 2 | | 4 | 6 |
4 | Тема 4. Объектно-ориентированное программирование на языке ЛИСП | 4 | | | 4 |
5 | Тема 5. Язык ЛИСП в решении задач искусственного интеллекта | 4 | | 4 | 8 |
6 | Тема 6. Введение в логическое программирование | 4 | | | 4 |
7 | Тема 7. Язык программирования Пролог | | | | |
7.1 | Синтаксис языка Пролог. Факты, запросы, переменные, сложные цели и правила | 6 | | 8 | 14 |
7.2 | Логический вывод в Прологе. Сопоставление, поиск, унификация | 6 | | 8 | 14 |
7.3 | Рекурсия и основные приемы логического программирования | 6 | | 4 | 10 |
8 | Тема 8. Структуры данных в Прологе | 4 | | 4 | 8 |
9 | Тема 9. Управление поиском в Прологе | 4 | | 8 | 12 |
10 | Тема 10. Язык Пролог в решении задач искусственного интеллекта | 4 | | 4 | 8 |
| Итого | 68 | | 68 | 136 |
^ СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
Тема 1. Императивное и декларативное программирование
Классификация языков и стилей программирования. Процедурное и декларативное программирование, их отличие и области применения.
Тема 2. Введение в функциональное программирование
Функции и функциональное представление алгоритмов. Введение в лямбда-исчисление. Лямбда-выражение, лямбда-преобразование и лямбда-вызов.
^ Тема 3. Программирование на языке ЛИСП
Область применения языка ЛИСП. Диалекты языка ЛИСП. Символьное представление данных. Атомы, списки, выражения и элементарные функции ЛИСПа. Понятие функции в ЛИСПе. Базовые функции для работы со списками. Понятие предиката. Понятие рекурсии. Виды рекурсии. Построение рекурсивных функций и основные приемы функционального программирования. Понятие функционала. Способы композиции функций в ЛИСПе. Понятие типов данных ЛИСПа - числа, символы, списки, строки, ассоциативные списки и списки свойств. Ввод-вывод информации в ЛИСПе.
Тема 4. ^ Объектно-ориентированное программирование
на языке Лисп
Объекты, классы, методы в ЛИСПе. Объектная система ЛИСПа CLOS (Common LISP Object System).
^ Тема 5. Язык Лисп в решении задач искусственного интеллекта
Методы поиска. Сопоставление с образцом. Реализация семантических сетей. Применение ЛИСПа в экспертных системах, системах поддержки принятия решения, системах распознавания образов и изображений.
^ Тема 6. Введение в логическое программирование
Объекты, отношения, свойства. Логика предикатов. Понятие логического вывода.
Тема 7. Язык программирования Пролог
Синтаксис языка Пролог. Факты, запросы, переменные, сложные цели и правила. Логический вывод в Прологе. Сопоставление, поиск, унификация. Рекурсия и основные приемы логического программирования.
^ Тема 8. Структуры данных в Прологе
Списки в языке Пролог. Атрибуты списков. Операции над списками. Принципы организации баз данных. Реляционные базы данных. Формирования запросов.
Тема 9. Управление поиском в Прологе
Возврат и отсечение. Построение рекурсивных программ и использование сложных структур данных.
^ Тема 10. Язык Пролог в решении задач искусственного интеллекта
Принципы построения экспертных систем. Структура экспертных систем. Представление знаний. Экспертные системы, базирующиеся на правилах и на логике. Решение задач в играх и головоломках.
Примерный перечень тем лабораторных работ
- Ознакомление с системой программирования ЛИСП.
- Построение, интерпретация и вычисление выражений.
- Создание и отладка рекурсивных программ в среде интерпретатора.
- Ознакомление с системой Турбо-Пролог. Создание баз данных и формирование запросов.
- Использование сложных цепей и правил в Прологе.
- Построение рекурсивных программ и использование сложных структур.
- Возврат и отсечение. Управление поиском.
- Отладка программ в среде Турбо-Пролог.
- Файловая система Турбо-Пролог.
- Работа с динамическими и внешними базами данных.
Примерный перечень компьютерных программ
1. Система программирования мю-ЛИСП, Open LISP либо иная, поддерживающая диалект Common LISP.
2. Система программирования Турбо-Пролог или подобная.
ЛИТЕРАТУРА
Основная
- Хендерсон Н. Функциональное программирование. Применение и реализация. - М.: Мир, 1988.
- Хювенен Э., Сеппянен И. Мир ЛИСПа. В 2 т. - М.: Мир, 1990.
- Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. - М.: Мир, 1990.
- Хоггер К. Введение в логическое программирование. - М.: Мир, 1988.
- Братко И. Программирование на языке Пролог для искусственного интеллекта. - М.: Мир, 1990.
- Ин П., Соломон Д. Использование Турбо-Пролога. - М.: Мир, 1993.
- Малпас Дж. Реляционный язык Пролог и его применение. - М.: Наука, 1990.
- Приобретение знаний / С. Осуг, Ю. Саэки. - М.: Мир, 1990.
Дополнительная
- Лавров С.С., Силагадзе Г.С. Автоматическая обработка данных. Язык ЛИСП и его реализация. - М.: Наука, 1978.
- Клоксин У., Меллиш К. Программирование на языке Пролог. - М.: Мир, 1987.
- Логический подход к искусственному интеллекту: от классической логики к логическому программированию. - М.: Мир,1990.
- Крицкий С.В. Программирование на языке ЛИСП. - Мн.: МРТИ, 1991.
5. Прихожий А.А. Функциональное и логическое программирование. - Мн.: БГУИР, 1998.