МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саратовский государственный университет имени Н.Г. Чернышевского Факультет компьютерных наук и информационных технологий УТВЕРЖДАЮ ___________________________ "__" __________________20__ г. Рабочая программа дисциплины РЕКУРСИВНО-ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Направление подготовки 010500 Математическое обеспечение и администрирование информационных систем Профиль подготовки Параллельное программирование Квалификация (степень) выпускника Бакалавр Форма обучения очная Саратов, 2011 год 1. Цели освоения дисциплины Формирование у студентов общих методологических основ и практических навыков разработки программных систем с использованием рекурсивно-логического подхода к программированию. Вместе с другими дисциплинами изучение материалов курса должно способствовать становлению профессиональной культуры бакалавра по направлению Математическое обеспечение и администрирование информационных систем. 2. Место дисциплины в структуре ООП бакалавриата Данная учебная дисциплина входит в раздел «Профессиональный цикл. Вариативная часть» ФГОС-3. Для изучения дисциплины необходимы знания и умения сформированные у обучающихся в результате освоения курсов «Информатика и программирование», «Дискретная математика», «Математическая логика». 3. Компетенции обучающегося, формируемые в результате освоения дисциплины Данная дисциплина способствует формированию следующих компетенций: - способность применять знания на практике (ОК 5); - исследовательские навыки (ОК 6); - способность учиться (ОК 7); - фундаментальную подготовку по основам профессиональных знаний (ОК 10); - базовые знания в различных областях (ОК 13); - способность к анализу и синтезу (ОК 14); - определение общих форм, закономерностей, инструментальных средств для данной дисциплины (ПК 1); - умение понять поставленную задачу (ПК 2); - умение формулировать результат (ПК 3); - умение грамотно пользоваться языком предметной области (ПК 7); - умение ориентироваться в постановках задач (ПК 8); - самостоятельное построение алгоритма и его анализ (ПК 11); - знание проблемы и направления развития технологий программирования (ПК 23); - знание основных концептуальных положений функционального, логического, объектно-ориентированного и визуального направлений программирования, методов, способов и средств разработки программ в рамках этих направлений (ПК 27); В результате освоения дисциплины обучающийся должен: Знать: - основные концептуальные положения функционального и логического направлений программирования, методов и средств разработки этих направлений; - направления развития технологий функционального и логического программирования; - один из языков логического программирования; - один из языков функционального программирования. Уметь: - самостоятельно составлять алгоритм на одном из языков функционального программирования; - самостоятельно составлять алгоритм на одном из языков логического программирования; - анализировать алгоритмы, составленные на языках функционального или логического программирования. - обосновать выбор программирования для решения конкретных задач; - обосновать выбор представление данных для решения поставленной задачи; - обосновать выбор методов обработки данных для решения поставленной задачи; - разрабатывать и тестировать программы с применением современных программных средств. Владеть: - навыками использования языков функционального программирования; - навыками использования языков логического программирования. 4. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 2 зачетные единицы, 72 часа. № п/ п Раздел дисциплины 1 Декларативное программирование. Лямбда-исчисление А.Черча. Функциональные языки. 2 3 Сем естр Недел я семест ра Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) 6 1 Л:1 СР:1 6 1-3 Л:4 СР:2 6 3-5 Л:4 СР:2 Формы текущего контроля успеваемости (по неделям семестра) Формы промежуточной аттестации (по семестрам) Контрольная на 11 неделе Контрольная на 11 неделе 4 5 6 7 8 9 10 Основы языка Scheme. Рекурсия. 6 5-9 Л:8 СР:7 6 9-10 Л:2 СР:8 Функции высшего порядка. Логическое программирование. Основы языка Prolog. Недетерминирован ное программирование. Методы поиска. 6 10 Л:1 СР:4 6 11 Л:2 СР:2 6 12-14 Л:6 СР:6 6 15 Л:2 СР:4 6 16 Л:2 СР:4 32 40 Промежуточная аттестация ИТОГО Контрольная на 11 неделе Контрольная на 11 неделе Контрольная на 11 неделе Контрольная на 16 неделе Контрольная на 16 неделе Контрольная на 16 неделе Контрольная на 16 неделе Зачет Декларативное программирование. Общие сведения о языках логического и функционального программирования. Лямбда-исчисление А.Черча. Программирование в функциональных обозначениях. Функциональные языки. Строго функциональный язык. Приемы программирования. Представление и интерпретация функциональных программ. Отладка программ. Соответствие между функциональными и императивными программами. Основы языка Scheme. Программирование с помощью функций. Символьные выражения: атомы и списки. Базовые функции и предикаты. Функции. Определение функций. Специальные конструкции языка Scheme. Рекурсия. Простая рекурсия. Параллельная и взаимная рекурсия. Хвостовая рекурсия. Списки. Работа со списками. Деревья. Строки. Функции высшего порядка. Логическое программирование. Логическая программа: основные конструкции, операционная и декларативная семантика, интерпретация, корректность. Основы языка Prolog. Предложения: факты и правила. Предикаты. Металогические предикаты. Внелогические предикаты. Переменные. Цели. Сопоставление и унификация. Основные секции программы. Основные стандартные домены. Объявление нестандартных доменов. Детерминизм. Вычислительная модель. Анализ структуры термов. Простые и составные объекты данных. Неполные структуры данных. Недетерминированное программирование. Методы поиска. Основные принципы поиска с возвратом. Поиск всех решений. Управление поиском решений. Стандартные предикаты ввода и вывода. 5. Образовательные технологии В учебном процессе при реализации компетентностного подхода используются такие активные и интерактивные формы проведения занятий как модельный метод обучения, разбор конкретных ситуаций. Широко используются мультимедийные презентации при представлении учебного материала. 6. Учебно-методическое и информационное обеспечение дисциплины а) основная литература: 1. Сергиевский Г. М., Волчёнков Н. Г. Функциональное и логическое программирование: учеб. пособие для студентов вузов - М. : Изд. центр "Академия", 2010 б) дополнительная литература: 1. Городняя Л. В. Основы функционального программирования: курс лекций – М.: Интернет-Ун-т Информ. Технологий, www.intuit.ru, 2004 в) программное обеспечение и Интернет-ресурсы. Интерпретатор языка Scheme, Интерпретатор языка Prolog 7. Материально-техническое обеспечение дисциплины Лекционная аудитория с возможностью демонстрации электронных презентаций при уровне освещения, достаточном для работы с конспектом. Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ПООП ВПО по направлению и профилю подготовки Параллельное программирование. Автор доцент кафедры математической кибернетики и компьютерных наук ___________ С. В. Миронов Программа одобрена на заседании кафедры математической кибернетики и компьютерных наук от «___» ________ 2011 года, протокол № ___. Заведующий кафедрой математической кибернетики и компьютерных наук ___________ А. С. Иванов Декан факультета КНиИТ, доцент ___________ А. Г. Федорова