09.03.04 Б3.В.ДВ.2.1 Функциональное и логическое

advertisement
1. Цели и задачи дисциплины
1.1.
Цель. Задачи дисциплины, ее место в подготовке специалиста (с учетом квалификационных
требований ФГОС)
Целью изучения дисциплины «Функциональное и логическое программирование» является овладение студентами
принципами функционального и логического программирования, формирования у них понимания места
функционального и логического подходов в процессе разработки программного обеспечения в современных условиях,
круга решаемых задач, а также ознакомление с используемыми инструментальными средствами.
Базовые составляющие теоретической части курса включают в себя положения по организации вычислительных
процессов в компьютерах, функциональных и логических подходах в программировании, алгоритмизации,
программировании и защите информации. Практическая часть курса предусматривает тренировку умений работать с
персональной вычислительной техникой и современными программными продуктами.
1.2 Требования к уровню освоения дисциплины
Студент должен знать:
- принципы функционального программирования;
- принципы логического программирования;
- связь функционального и логического программирования с формальными методиками алгоритмизации;
- особенности синтаксиса и семантики в функциональном программировании;
- особенности синтаксиса и семантики в логическом программировании.
Студент должен уметь:
- применять полученные теоретические знания к решению вопросов проектирования, разработки и тестирования
программного обеспечения для решения сложных информационных проблем;
- обосновать требования к информационному и техническому обеспечению;
- разработать алгоритм программы на функциональной основе;
- разработать алгоритм программы на логической основе;
- владеть принципами функционального и логического программирования;
- реализовать алгоритм с использованием инструментальных средств.
Студент должен иметь представление о:
- возможностях современных средств разработки на языках программирования функционального типа;
- возможностях современных средств разработки на языках программирования логического типа;
- методах интеграции с другими применяемыми на практике информационными технологиями.
У студента должны быть сформированы следующие компетенции:
 способность к формализации в своей предметной области с учетом ограничений используемых методов
исследования (ПК-2);
 способность формализовать предметную область программного проекта и разработать спецификации для
компонентов программного продукта (ПК-6);
 навыки чтения, понимания и выделения главной идеи прочитанного исходного кода, документации (ПК-11);
 навыки использования различных технологий разработки программного обеспечения (ПК-16).
1.3 Связь с другими дисциплинами Учебного плана
Перечень действующих и предшествовавших дисциплин
1. Дискретная математика
2. Информатика
3. Математическая логика
Перечень последующих дисциплин, видов работ
1. Системы искусственного интеллекта
2. Проектирование экспертных систем
3. Дипломное проектирование
2. Содержание дисциплины, способы и методы учебной деятельности преподавателя
Методы обучения – система последовательных, взаимосвязанных действий, обеспечивающих усвоение содержания
образования, развитие способностей студентов, овладение ими средствами самообразования и самообучения;
обеспечивают цель обучения, способ усвоения и характер взаимодействия преподавателя и студента; направлены на
приобретение знаний, формирование умений, навыков, их закрепление и контроль.
Монологический (изложение теоретического материала в форме монолога)
М
Показательный (изложение материала с приемами показа)
П
Диалогический (изложение материала в форме беседы с вопросами и ответами)
Д
Эвристический (частично поисковый) (под руководством преподавателя студенты рассуждают, решают
Э
возникающие вопросы, анализируют, обобщают, делают выводы и решают поставленную задачу)
Проблемное изложение (преподаватель ставит проблему и раскрывает доказательно пути ее решения)
ПБ
Исследовательский (студенты самостоятельно добывают знания в процессе разрешения проблемы,
И
сравнивая различные варианты ее решения)
Программированный (организация аудиторной и самостоятельной работы студентов осуществляется в ПГ
индивидуальном темпе и под контролем специальных технических средств)
Другой метод, используемый преподавателем (формируется самостоятельно), при этом в п.п. 2.1.-2.4.
дается его наименование, необходимые пояснения
Приведенные в таблице сокращения обозначения педагогических методов используются составителем Рабочей
программы для заполнения п.п. 2.1., 2.2. и 2.3. в столбце «Методы».
Реализуемые компетенции
Вид занятия, тема и краткое содержание
Методы
Кол. час
Неделя
в том числе в интерактивной
форме, час.
Аудиторные занятия (лекции, лабораторные, практические, семинарские) – очная форма обучения
2.1.
Лекции
4
Модуль 1. Основы функционального программирования
М, П
ПК-2, ПК-6,
ПК-11, ПК-16
Лекция 1.
Введение в функциональное программирование, основные идеи.
Общее представление о функциональном программировании и
его применении. Понятие о функциях как о механизме
представления и анализе решений задач. Функциональный
стиль. Связь функционального программирования с
математическими основами.
Лекция 2. Язык функционального программирования Лисп.
История создания. Диалект ЛИСПа. Синтаксис ЛИСПа.
Примитивы ЛИСПа. Символы и списки. Понятие функции.
Базовые функции.
Лекция 3. Списки и функции ЛИСПа
Представление списков. Точечная и списочная запись.
Логическое и физическое равенство.
Определение функций ЛИСПа. Передача параметров и область
их действия. Основы рекурсии.
Лекция 4. Функционалы
Функционалы. Способы композиции функций. Применяющие и
отображающие функционалы.
Типы данных. Иерархия типов.
Модуль 2. Логическое программирование.
М, П
ПК-2, ПК-6,
ПК-11, ПК-16
П, ПБ
ПК-2, ПК-6,
ПК-11, ПК-16
М, П,
ПБ
ПК-2, ПК-6,
ПК-11, ПК-16
М
ПК-2, ПК-6,
ПК-11, ПК-16
М, П
ПК-2, ПК-6,
ПК-11, ПК-16
М, П
ПК-2, ПК-6,
ПК-11, ПК-16
Лекция 6. Семантика языка Пролог.
Порядок предложений и целей. Процедурная и декларативная
семантика. Синтаксис языка Пролог. Арифметические
выражения, функции, предикаты.
Лекция 7. Списки.
Списки. Ограничение перебора. Отсечение. Программирование
повторяющихся ситуаций.
Лекция 8. Альтернативные подходы к декларативному
программированию.
Обзор языка Lisp. Обзор языка Рефал. Обзор языка Ruby.
Сравнительный анализ сильных сторон и недостатков
рассмотренных языков.
Лабораторные работы
П, ПБ
ПК-2, ПК-6,
ПК-11, ПК-16
М, П,
ПБ
ПК-2, ПК-6,
ПК-11, ПК-16
М, П
ПК-2, ПК-6,
ПК-11, ПК-16
Модуль 1 Основы функционального программирования.
Э, И,
ПГ
ПК-2, ПК-6,
ПК-11, ПК-16
1-9
10
1
2
3
2
5-7
4
9
2
2
1117
8
4
11
2
Лекция 5. Основы логического программирования.
Логический вывод. Метод резолюций. Унификация. Введение в
Пролог. Особенности языка Пролог.
13
2
15
2
2
17
2
2
210
10
6
2
2-6
6
4
Лабораторная работа 1. Язык функционального
программирования Лисп
Э, И,
ПГ
ПК-2, ПК-6,
ПК-11, ПК-16
810
1218
4
2
Лабораторная работа 2. Функционалы.
Э, И,
ПГ
Э, И,
ПГ
ПК-2, ПК-6,
ПК-11, ПК-16
ПК-2, ПК-6,
ПК-11, ПК-16
8
4
Модуль 2. Логическое программирование.
1214
4
2
Лабораторная работа 3. Язык логического программирования
Пролог.
Э, И,
ПГ
ПК-2, ПК-6,
ПК-11, ПК-16
1918
2.2.
4
2
Лабораторная работа 4. Списки.
Э, И,
ПГ
ПК-2, ПК-6,
ПК-11, ПК-16
Неделя
Кол. час
Методы
Реализуемые
компетенции
Самостоятельная работа студента
Темы, разделы, вынесенные на самостоятельную подготовку, вопросы к
практическим и лабораторным занятиям; тематика рефератной работы;
курсовые работы и проекты, контрольные, рекомендации по использованию
литературы и ЭВМ и др.
1-18
36
Усвоение текущего материала.
ПГ,
И, Э
ПК-2, ПК-6,
ПК-11, ПК-16
1-18
36
Темы и вопросы, определяемые преподавателем с учетом интересов
студента.
И
ПК-2, ПК-6,
ПК-11, ПК-16
2.3.
Интерактивные технологии и инновационные методы, используемые в образовательном процессе
Основаны на использовании современных достижений науки и информационных технологий. Направлены на
повышение качества подготовки путем развития у студентов творческих способностей и самостоятельности (методы
проблемного обучения, исследовательские методы, тренинговые формы, рейтинговые системы обучения и контроля
знаний и др.). Нацелены на активизацию творческого потенциала и самостоятельности студентов и могут
реализовываться на базе инновационных структур (научных лабораторий, центов, предприятий и организаций и др.).
№
Наименование основных методов
1.
Компьютерные симуляции
При введении в
программирование.
2.
Ролевые и деловые игры
При работе с исходными данными.
3.
Разбор конкретных ситуаций
Применяется в темах:
«Программирование повторяющихся ситуаций»,
«Сравнительный анализ сильных сторон и недостатков
рассмотренных языков»,
«Примитивы ЛИСПа»,
«Отсечение».
3.
3.1.
№
Краткое описание и примеры, использования в темах и
разделах, место проведения
функциональное
и
логическое
Часы
4
4
10
Средства обучения
Информационно-методические
Перечень основной и дополнительной литературы, методических разработок; с указанием наличия в
библиотеке, на кафедре
Основная литература:
1.
Братко И. Программирование на языке ПРОЛОГ для искусственного
интеллекта. – М.: Мир, 2004
1
2.
Малпас Д. Реляционный язык ПРОЛОГ и его применение. М.: Наука,
2004.
10
3.
Хювенен Э., Сеннянен Ий. Мир ЛИСПа. Методы и системы
программирования. Том 2. – М.: Мир, 2005.
5
Дополнительная литература:
1.
2.
3.
Адаменко А., Кучуков А. Логическое программирование и VISUAL
PROLOG Санкт-Петербург: «БХВ-Петербург», 2003.
А.Тейз, П. Грибомон и др. Логический подход к искусственному
интеллекту: от классической логики к логическому
программированию. М.: Мир, 2003.
1 (кафедра
ИТиЗИ)
Марселлус Д. Программирование экспертных систем на ТУРБОПРОЛОГЕ. М.: Мир, 2004.
1 (кафедра
ИТиЗИ)
3.2.
Материально-технические
№ ауд. Основное оборудование, стенды, макеты, компьютерная
техника, наглядные пособия и другие дидактические
материалы, обеспечивающие проведение лабораторных и
практических занятий, научно-исследовательской работы
студентов с указанием наличия
1 (кафедра
ИТиЗИ)
Основное назначение (опытное, обучающее,
контролирующее) и краткая характеристика
использования при изучении явлений и
процессов, выполнении расчетов.
201214
Персональные компьютеры.
Обучающее, контролирующее
201214
Операционная система Windows XP.
Обучающее
201214
Офисный интегрированный пакет Microsoft Office 2007
(2010).
Обучающее
201214
Пакет ЛИСП
Обучающее
201214
Пакет ПРОЛОГ
Обучающее
201214
Экран и проектор
Демонстрация слайдов, иллюстрирующих
ключевые вопросы лекции.
4.
Текущий, промежуточный и итоговый контроль знаний студентов.
Вопросы текущего контроля, промежуточный контроль, вопросы для подготовки к зачету
4.1 Текущий контроль
Модуль 1.
1.
Язык программирования функционального типа.
2.
Механизм представления данных в языке функционального типа ЛИСП.
3.
Диалект ЛИСПа.
4.
Синтаксис ЛИСПа.
5.
Примитивы ЛИСПа.
6.
Символы и списки в языке ЛИСП.
7.
Функции в языке ЛИСП.
8.
Передача параметров в ЛИСП, область их действия.
9.
Рекурсия в ЛИСП.
10. Функционалы в ЛИСП.
11. Способы композиции функций в ЛИСП.
12. Типы данных в ЛИСП.
13. Иерархия типов в ЛИСП.
Модуль 2.
1.
Язык программирования логического типа.
2.
Особенности языка Пролог.
3.
Логический вывод данных в языке Пролог.
4.
Метод резолюций в языке Пролог.
5.
Порядок предложений и целей в языке Пролог.
6.
Процедурная семантика в языке Пролог.
7.
Декларативная семантика в языке Пролог.
8.
Синтаксис языка Пролог.
9.
Арифметические выражения, функции, предикаты в языке Пролог.
10. Списки в языке Пролог.
Промежуточный контроль проводится на практических занятиях в виде интерактивных тестов в
компьютерном классе. Два тестирования в течение семестра:
1. Язык ЛИСП – 60 минут.
2. Язык Пролог – 60 минут.
4.3 Итоговый контроль.
Вопросы к зачету:
1.
Язык программирования функционального типа.
2.
Механизм представления данных в языке функционального типа ЛИСП.
3.
Диалект ЛИСПа.
4.
Синтаксис ЛИСПа.
5.
Примитивы ЛИСПа.
6.
Символы и списки в языке ЛИСП.
7.
Функции в языке ЛИСП.
8.
Передача параметров в ЛИСП, область их действия.
9.
Рекурсия в ЛИСП.
10.
Функционалы в ЛИСП.
11.
Способы композиции функций в ЛИСП.
12.
Типы данных в ЛИСП.
13.
Иерархия типов в ЛИСП.
14.
Язык программирования логического типа.
15.
Особенности языка Пролог.
16.
Логический вывод данных в языке Пролог.
17.
Метод резолюций в языке Пролог.
18.
Порядок предложений и целей в языке Пролог.
19.
Процедурная семантика в языке Пролог.
20.
Декларативная семантика в языке Пролог.
21.
Синтаксис языка Пролог.
22.
Арифметические выражения, функции, предикаты в языке Пролог.
23.
Списки в языке Пролог.
24.
Декларативная семантика в языке Пролог.
5.
Дополнения и изменения в рабочей программе на 2012/2013 учебный год
Следующие записи относятся к п.п.
Автор
Зав. кафедрой
Принято УМУ__________________________________ Дата:_____________________
Download