Республики Беларусь «24»

Вид материалаПояснительная записка

Содержание


Функциональное и логическое программирование
Кафедра программного обеспечения вычислительной техники и автоматизированных систем
Рекомендована к утверждению в качестве типовой
Разработана на основании Образовательного стандарта РД РБ 02100.5.112-98.
Наименование темы
Содержание дисциплины
Тема 3. Программирование на языке ЛИСП
Объектно-ориентированное программирование
Тема 5. Язык Лисп в решении задач искусственного интеллекта
Тема 6. Введение в логическое программирование
Тема 8. Структуры данных в Прологе
Тема 10. Язык Пролог в решении задач искусственного интеллекта
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   18




Утверждена


УМО вузов Республики Беларусь по образованию в области информатики и радиоэлектроники

« 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. Ознакомление с системой программирования ЛИСП.
  2. Построение, интерпретация и вычисление выражений.
  3. Создание и отладка рекурсивных программ в среде интерпретатора.
  4. Ознакомление с системой Турбо-Пролог. Создание баз данных и формирование запросов.
  5. Использование сложных цепей и правил в Прологе.
  6. Построение рекурсивных программ и использование сложных структур.
  7. Возврат и отсечение. Управление поиском.
  8. Отладка программ в среде Турбо-Пролог.
  9. Файловая система Турбо-Пролог.
  10. Работа с динамическими и внешними базами данных.


Примерный перечень компьютерных программ


1. Система программирования мю-ЛИСП, Open LISP либо иная, поддерживающая диалект Common LISP.

2. Система программирования Турбо-Пролог или подобная.

ЛИТЕРАТУРА




Основная
  1. Хендерсон Н. Функциональное программирование. Применение и реализация. - М.: Мир, 1988.
  2. Хювенен Э., Сеппянен И. Мир ЛИСПа. В 2 т. - М.: Мир, 1990.
  3. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. - М.: Мир, 1990.
  4. Хоггер К. Введение в логическое программирование. - М.: Мир, 1988.
  5. Братко И. Программирование на языке Пролог для искусственного интеллекта. - М.: Мир, 1990.
  6. Ин П., Соломон Д. Использование Турбо-Пролога. - М.: Мир, 1993.
  7. Малпас Дж. Реляционный язык Пролог и его применение. - М.: Наука, 1990.
  8. Приобретение знаний / С. Осуг, Ю. Саэки. - М.: Мир, 1990.



Дополнительная
  1. Лавров С.С., Силагадзе Г.С. Автоматическая обработка данных. Язык ЛИСП и его реализация. - М.: Наука, 1978.
  2. Клоксин У., Меллиш К. Программирование на языке Пролог. - М.: Мир, 1987.
  3. Логический подход к искусственному интеллекту: от классической логики к логическому программированию. - М.: Мир,1990.
  4. Крицкий С.В. Программирование на языке ЛИСП. - Мн.: МРТИ, 1991.

5. Прихожий А.А. Функциональное и логическое программирование. - Мн.: БГУИР, 1998.