ТРУДОЕМКОСТЬ ДИСЦИПЛИНЫ
Общая трудоемкость дисциплины составляет 5 ЗЕТ (180 час.).
ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ
Дисциплина «Функциональное и логическое программирование» читается студентам по направлению подготовки бакалавров
230100.62 – «Информатика и вычислительная техника» в седьмом семестре, предусматривает чтение лекций,
проведение практических и лабораторных работ, получение различного рода консультаций. Целью дисциплины является
формирование у студентов профессиональных знаний и практических навыков по разработке и созданию моделей с помощью
языков функционального и логического программирования.
МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕ ООП
Дисциплина «Функциональное и логическое программирование» относится к числу дисциплин профессионального цикла
(вариативной части) по выбору. Для эффективного освоения дисциплины студент должен знать основные положения дисциплин:
"Математика", "Математическая логика и теория алгоритмов", "Программирование", "Структуры и алгоритмы обработки данных на
ЭВМ". Знания и навыки, полученные при ее изучении, используются в последующих дисциплинах профессионального цикла
«Системы искусственного интеллекта».
ТРЕБОВАНИЯ К УРОВНЮ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Процесс изучения дисциплины направлен на формирование следующих общекультурных (ОК), профессиональных компетенций (ПК):
- осознает социальную значимость своей будущей профессии, обладает высокой мотивацией к выполнению профессиональной деятельности (ОК-8);
- использует основные законы естественнонаучных дисциплин в профессиональной деятельности, применяет методы математического анализа и моделирования, теоретического и экспериментального исследования (ОК-10);
- осваивать методики использования программных средств для решения практических задач (ПК-2);
- разрабатывать модели компонентов информационных систем, включая модели баз данных (ПК-4);
- разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5).
В результате изучения дисциплины студент должен:
Знать:
- Языки функционального и логического программирования;
- Основные методы и средства эффективной разработки программного продукта;
- Типовые роли в процессе разработки программного обеспечения;
- Методологии разработки программного обеспечения;
- Математические основы лямбда-исчисления, предикатов первого порядка.
Уметь:
- Использовать методы и технологии разработки для генерации исполняемого кода;
- Анализировать поставленные задачи, разрабатывать алгоритмы, представлять знания для решения поставленных задач;
- Разрабатывать модели различных классов систем с применением языков функционального и логического программирования;
- Программировать на языках Лисп и Пролог.
Владеть:
- Основными методологиями процессов разработки программного обеспечения;
- Математическим аппаратом, применяемым в функциональном и логическом программировании;
- Языками Лисп и Пролог для построения моделей искусственного интеллекта.
СОДЕРЖАНИЕ ДИСЦИПЛИНЫ. ОСНОВНЫЕ РАЗДЕЛЫ
- Тема 1. Функциональное программирование. Функция как «черный ящик». Понятие функциональности.
- Тема 2. Основы языка Лисп. Символы и списки. Константы и переменные. Построение списков из атомов и подсписков. Различные интерпретации списка. Понятие функции.
- Тема 3. Базовые функции в Лиспе. Основные функции обработки списков. Внутреннее представление списков в Лиспе. Указатели. Логическое и физическое равенство.
- Тема 4. Математические основы Лиспа. Лямбда-исчисление. Порядок редукция и нормальные формы. Лямбда-выражение в Лиспе.
- Тема 5. Рекурсия в Лиспе. Формы рекурсии: простая, взаимная, параллельное ветвление, рекурсия более высокого порядка.
- Тема 6. Функционалы в Лиспе. Замыкания. Абстрагирование вычислений. Автофункции.
- Тема 7. Логическое программирование. Метод резолюций. Унификация. Применение метода резолюция для ответа на вопросы.
- Тема 8. Основы языка Пролог. Символы и списки. Константы и переменные. Синтаксис.
- Тема 9. Порядок предложений и целей. Процедурная и декларативная семантика Пролога.
- Тема 10. Ограничения перебора. Примеры, использующие отсечение. Отрицание как неудача.
- Тема 11. Внелогические предикаты: доступ к программам и обработка программ.
- Тема 12. Метапрограммирование. Модификация синтаксиса.
ВИДЫ УЧЕБНОЙ РАБОТЫ
Лекции -18 часов, лабораторная работа – 36 часов, практическая работа - 18 часов, самостоятельная работа: 72 часа.
ФОРМА АТТЕСТАЦИИ ПО ДИСЦИПЛИНЕ
Изучение дисциплины заканчивается экзаменом (7 семестр).