Желтов Валериан Павлович рабочая программа

Вид материалаПрограмма

Содержание


Управление разработкой программных проектов
1. Цели освоения дисциплины
2. Место дисциплины в структуре ООП бакалавриата
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
4. Структура и содержание дисциплины
Неделя семестра
5. Образовательные технологии
7. Учебно-методическое и информационное обеспечение дисциплины
Подобный материал:
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ


Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н.Ульянова»


Факультет дизайна и компьютерных технологий


«УТВЕРЖДАЮ»

Проректор по учебной работе


______________ А.Ю. Александров


«______»______________ 20__ г.


РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

«Логическое и функциональное программирование»


Направление подготовки

231000 Программная инженерия


Профиль подготовки

Управление разработкой программных проектов


Квалификация (степень) выпускника

Бакалавр


Форма обучения

очная


Чебоксары

2011

Рабочая программа основана на требованиях Федерального государственного стандарта высшего профессионального образования по направлению подготовки 231000 Логическое и функциональное программирование, утвержденного Приказом Минобрнауки 9.11.2009 № 542.


Составитель: доцент Павлова Н.В. ____________


Рабочая программа рассмотрена и одобрена на заседании обеспечивающей кафедры – компьютерных технологий (протокол № _____ от ___________2010 г.).

Зав. кафедрой: профессор Желтов Валериан Павлович


Рабочая программа согласована с Методической комиссией выпускающего факультета Дизайна и компьютерных технологий.


Председатель комиссии, декан: профессор Желтов Валериан Павлович____________


СОГЛАСОВАНО:

Зам. начальника УМУ: доцент М.Ю. Харитонов ____________


1. Цели освоения дисциплины


Основной целью дисциплины является формирование и закрепление системного подхода при разработке программ с применением языков логического и функционального программирования, в дисциплине рассматриваются средства и методы создания таких программ.

Задачи дисциплины: разработка программ с применением языков логического и функционального программирования.


2. Место дисциплины в структуре ООП бакалавриата

Дисциплина входит в вариативную профессионального цикла образовательной программы бакалавра. В дисциплине выделены две родственные составляющие: логическое программирование и функциональное программирование, соответственно рассматриваются средства и методы создания программ для каждой составляющей; в дисциплине закрепляются такие общепредметные умения, как выбор язык программирования для решения поставленной задачи, выбор способа представления исходных данных и выбор метода решения поставленной задачи. Для успешного изучения дисциплины студенту необходимо знать основы математической логики.


3. Компетенции обучающегося, формируемые в результате освоения дисциплины


Процесс изучения дисциплины направлен на формирование следующих компетенций:

Умение применять основные методы и инструменты разработки программного обеспечения (ПК-17);

Понимание концепций и атрибутов качества программного обеспечения (надежности, безопасности, удобства использования), в том числе, роли людей, процессов, методов, инструментов и технологий обеспечения качества (ПК-18);

Понимание методов контроля проектов и умение осуществлять контроль версий (ПК-25);


В результате освоения дисциплины обучающийся должен:
  • Знать: системы разработки программ с использованием языков логического и функционального программирования, методы программирования с использованием языков логического и функционального программирования, базовые понятия и определения, используемые в логическом и функциональном программировании; методы и уровни представления данных, способы обработки и хранения данных; основы технологии программирования в программных средствах, используемых в современных языках логического и функционального программирования.



  • Уметь: ориентироваться в современных языках логического и функционального программирования, их возможностях; обосновывать выбор языка для решения конкретных задач; разрабатывать и тестировать программы с применением программных средств, используемых в современных языках логического или функционального программирования.



  • Владеть: современными языками логического и функционального программирования, их возможностями.



4. Структура и содержание дисциплины


4.1. Структура дисциплины

Общая трудоемкость дисциплины составляет 3 зачетных единиц, 108 часов.






пп/п

Раздел дисциплины

Семестр

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы текущего контроля успеваемости (по неделям семестра)

Форма промежуточной аттестации (по семестрам)

Лекции

Практ. зан.

Лабор. зан.

КСР *

СРС **

Всего

Из ауд. зан. в интер. форме

1.

Применение языков логического и функционального программирования, особенности декларативных языков программирования.

8

3

4




4




10

18







2.

Способы представления данных и методы логического и функционального программирования.

8

7

4




4




10

18







3.

Основы языка логического программирования (Prolog).

8

11

6




6




14

26







4.

Разработка программ для решения задач различных типов с выбором языка программирования, способов представления данных и методов функционального программирования.

8

1-15

4




4




10

18







5.

Основы языка функционального программирования (Lisp).

8

6-17

6




6




14

26










Итого




17

24




24

2

58

108




зачет


* Контроль самостоятельной работы: аудиторные занятия для проверки самостоятельной работы студентов, приема зачета, проведения текущих консультаций.

** Самостоятельная работа студента, включая курсовой проект, курсовую работу, расчетно-графические работы.


4.2. Содержание лекционных занятий


№ п/п

Наименование раздела дисциплины

Содержание раздела

1.

Применение языков логического и функционального программирования, особенности декларативных языков программирования

Понятие декларативного программирования. Общие сведения о языках логического и функционального программирования. Логическая программа: основные конструкции, операционная и декларативная семантика, интерпретация, корректность. Основные секции программы. Вычислительная модель. Анализ структуры термов. Простые и составные объекты данных. Недетерминированное программирование.

2.

Способы представления данных и методы логического и функционального программирования.

Рекурсивное программирование. Хвостовая рекурсия. Списки. Работа со списками. Деревья. Объявление деревьев. Примеры работы с деревьями. Строки. Работа со строками. Программирование второго порядка. Рекурсивные функции и лямбда-исчисление А.Черча. Обработка нечетких данных. Применение логического программирования в задачах искусственного интеллекта. Программирование баз данных

3.

Основы языка логического программирования (Prolog).

Основные принципы поиска с возвратом. Методы поиска. Управление поиском решений (стандартные предикаты fail и !). Стандартные предикаты ввода и вывода. Основы языка Prolog. Предложения: факты и правила. Предикаты. Переменные. Цели. Сопоставление и унификация.

4.

Разработка программ для решения задач различных типов с выбором языка программирования, способов представления данных и методов функционального программирования.

Программирование в функциональных обозначениях Функциональные языки. Строго функциональный язык Приемы программирования. Представление и интерпретация функциональных программ. Отладка программ. Конкретные реализации языков функционального программирования. Соответствие между функциональными и императивными программами.

5.

Основы языка функционального программирования (Lisp).

Основы языка LISP. Программирование с помощью функций и процедур. Символьные выражения атомы и списки. Базовые функции и предикаты. Функции Определение функций. Управляющие предложения языка

LISP. Простая рекурсия. Параллельная и взаимная рекурсия применения функционального программирования;


4.3. Содержание лабораторных занятий.


№ п/п

Раздел дисциплины

Наименование лабораторных работ

Трудо-емкость(час.)

1.

Основы языка логического программирования (Prolog).

Разработка программ для работы с рекурсивными структурами данных (Списки).

Используются способы представления данных в виде фактов и правил вывода для записи программы на языке Prolog; исследуются методы работы с рекурсивными структурами данных (списками); оформляются результаты работы программы; оцениваются полученные результаты.

8



2.

Основы языка логического программирования (Prolog).

Разработка программ для работы с рекурсивными структурами данных (Деревья).

Используются способы представления данных в виде фактов и правил вывода для записи программы на языке Prolog; исследуются методы работы с рекурсивными структурами данных (деревьями);

8

33.

Основы языка функционального программирования (Lisp).

Разработка программы, использующая для нахождения решений рекурсию.(используются способы представления данных в виде функций для записи программы на языке LISP; проверяются правильность работы созданной программы; исследуется рекурсия как метод нахождения решения; оформляются результаты работы программы; оцениваются полученные результаты.

8


5. Образовательные технологии


В процессе изучения дисциплины используются:

• раздаточный материал для изучения лекционного материала;

• учебный материал в электронном виде;

• контрольные программы по курсу для подготовки к сдаче семестровой аттестации и экзамена;

• программное обеспечение в соответствии с содержанием дисциплины;


6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.


6.1. Перечень заданий для самостоятельной работы и проведения текущего контроля:

  1. Анализ структуры термов.
  2. Простые и составные объекты данных.
  3. Недетерминированное программирование.
  4. Рекурсивное программирование.
  5. Хвостовая рекурсия.
  6. Списки.
  7. Работа со списками. Деревья.
  8. Рекурсивные функции и лямбда-исчисление А.Черча.
  9. Основы языка Prolog. Предложения: факты и правила. Предикаты. Переменные. Цели.
  10. Основы языка LISP.
  11. Функциональные языки.
  12. Строго функциональный язык
  13. Приемы программирования.
  14. Простая рекурсия.
  15. Параллельная и взаимная рекурсия применения функционального программирования;
  16. Основные принципы поиска с возвратом.
  17. Методы поиска.
  18. Понятие декларативного программирования.


6.2. Перечень вопросов к промежуточной аттестации.


1. Сравнительная характеристика декларативных и процедурных языков программирования. Основные отличия, области применения.

2. Предикаты. Предложения: факты и правила. (Prolog)

3. Запросы (цели).

4. Переменные. Анонимные переменные. Конкретизация переменных. (Prolog)

5. Сопоставление и унификация. Предикат равенства. (Prolog)

6. Основные секции программы. (Prolog)

7. Основные стандартные домены. (Prolog)

8. Детерминизм. (Prolog)

9. Основные принципы поиска с возвратом. (Prolog)

10. Управление поиском решений (предикат fail). (Prolog)

11. Управление поиском решений (предикат !). (Prolog)

12. Простые и составные объекты данных. Многоуровневые составные объекты данных. (Prolog)

13. Аргументы множественных доменов. (Prolog)

14. Предикат repeat. (Prolog)

15. Рекурсия. (Prolog)

16. Хвостовая рекурсия. (Prolog)

17. Деревья: объявление и примеры работы. (Prolog)

18. Списки: объявление и примеры работы. (Prolog)

19. Строки. Работа со строками. (Prolog)

20. Стандартные предикаты ввода и вывода. (Prolog)

21. Работа с файлами: чтение и запись. (Prolog)

22. Анализ и контроль потока параметров. (Prolog)

23. Основы языка LISP. Символьные выражения: атомы и списки. (Lisp)

24. Базовые функции и предикаты. (Lisp)

25. Управляющие предложения cond, do, let, prog1, prog2, progn. (Lisp)

26. Функции, определение функций. Параметры функции: передача и область

действия. (Lisp)

27. Простая рекурсия. Рекурсия по значению и по аргументу. (Lisp)

28. Параллельная и взаимная рекурсия. (Lisp)


7. Учебно-методическое и информационное обеспечение дисциплины


а) основная литература:

1. Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. – СПб.: БХВ-Петербург, 2003. – 992 С.

2. Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990. – 560 С.

3. Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, 1993. – 608 С.

4. Клоксин У., Меллиш Д. Программирование на языке Пролог. – М.: Мир,1987. – 336 С.

5. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. –М.: Мир, 1990. – 235 С.

6. Доорс Дж. и др., Рейблейн А.Р., Вадера С. Пролог - язык программирования будущего. – М.: ФиС, 1990. – 144 С.

7. Стобо Дж. Язык программирования Пролог. – М.: Мир, 1993. – 368 С.

8. Хювёнен Э., Сеппянен Й. Мир Лиспа. - М.: Мир, 1990. – 447 С.

9. Хендерсон П. Функциональное программирование: применение и реализация. - М.: Мир, 1983. – 349 С.

10. Филд А., Харрисон П. Функциональное программирование. - М.: Мир, 1993


б) дополнительная литература:

1. Новицкая Ю.В. Основы логического и функционального программирования (учебное пособие). – nstu.ru/flp/

2. Сырецкий Г.А. Информатика. Часть III. Основы логического программирования на PDC Prolog (учебное пособие). – Новосибирск: НГТУ, 1994. – 93 С.

3. Малпас Дж. Реляционный язык Пролог и его применение. – М.: Наука, 1990. – 463 С.

4. Янсон А. Турбо-Пролог в сжатом изложении. – М.: Мир, 1991. – 94 С.

5. Маурер У. Введение в программирование на языке ЛИСП. – М.: Мир, 1978. – 104 С.

в) программное обеспечение и Интернет-ресурсы

Prolog - интегрированная среда логического (символьного) языка программирования.

Lisp - интегрированная среда функционального языка программирования.


8. Материально-техническое обеспечение дисциплины


Лабораторные работы необходимо проводить в специализированных компьютерных классах, с установленным программным обеспечением. Если количество студентов в группе более 15 человек, группу необходимо разбить на две подгруппы.