Раздел «Система компьютерной алгебры GAP (Группы

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Саратовский государственный университет имени Н.Г. Чернышевского
Факультет компьютерных наук и информационных технологий
УТВЕРЖДАЮ
___________________________
"__" __________________20__ г.
Рабочая программа дисциплины
Программные средства решения математических задач
Специальность
090301 Компьютерная безопасность
Специализация
Математические методы защиты информации
Квалификация выпускника
Специалист
Форма обучения
очная
Саратов,
2012
1. Цели освоения дисциплины
Целями освоения дисциплины являются: знакомство с такими
программными средствами решения математических задач, как система
компьютерной алгебры GAP (Группы, алгоритмы и программирование) и
рекурсивно-логическое программирование, которые играют фундаментальную
роль в решении вычислительных задач комбинаторной теории групп, теории
конечных полей, теории графов, криптографии и других разделов прикладной
алгебры, а также в проектировании динамических реляционных баз данных,
разработке экспертных систем, решении задач искусственного интеллекта.
Задачами дисциплины являются: углубление математического образования и
развитие практических навыков в области прикладной математики и информатики; формирование у студентов научного представления об основных положениях,
понятиях и достижениях современной компьютерной алгебры и рекурсивнологического программирования; изучение теоретических основ и практических
навыков разработки программных систем с использованием рекурсивнологического подхода к программированию; освоение современных методов компьютерной науки и защиты информации.
2. Место дисциплины в структуре ООП
Данная учебная дисциплина входит
естественнонаучный цикл. Базовая часть».
в
раздел
«Математический
и
Для изучения дисциплины необходимы компетенции, знания, умения и
готовности, сформированные у обучающихся в результате освоения курсов,
входящих в базовую и вариативную части математического и естественного цикла
и профессионального цикла ООП: «Математический анализ», «Алгебра»,
«Геометрия», «Математическая логика и теория алгоритмов», «Дискретная
математика», «Теория информации», «Языки программирования», «Методы
программирования», «Системы управления базами данных». В ходе изучения
дисциплины происходит систематизация и обобщение знаний, полученных при
освоении указанных математических и компьютерных курсов, их роли в системе
математических и компьютерных наук, реализуется профессиональная
направленность образовательного процесса.
Компетенции, знания, умения и готовности, сформированные у
обучающихся в результате освоения данной дисциплины, могут быть полезны при
изучении следующих курсов: «Алгебраическая теория дискретных систем»,
«Математические основы искусственного интеллекта», «Экспертные системы»,
«Криптографические методы защиты информации», «Криптографические
протоколы», «Теоретико-числовые методы в криптографии», «Введение в
криптоанализ», «Нейронные сети», «Методы алгебраической геометрии в
криптографии».
3 Компетенции обучающегося, формируемые в результате освоения
дисциплины
В результате освоения дисциплины у студента должны сформироваться или
закрепиться следующие общекультурные компетенции (ОК):

способность логически верно, аргументировано и ясно строить
устную и письменную речь на русском языке, готовить и редактировать тексты
профессионального назначения, публично представлять собственные и известные
научные результаты, вести дискуссии (ОК-7);

способность к логически-правильному мышлению, обобщению, анализу,
критическому осмыслению информации, систематизации, прогнозированию,
постановке исследовательских задач и выбору путей их решения на основании
принципов научного познания (ОК-9);
В результате освоения дисциплины у студента должны сформироваться или
закрепиться следующие профессиональные компетенции (ПК):
общепрофессиональные:

способность выявлять естественнонаучную сущность проблем,
возникающих в ходе профессиональной деятельности, и применять
соответствующий физико-математический аппарат для их формализации, анализа
и выработки решения (ПК-1);

способность применять математический аппарат, в том числе с
использованием вычислительной техники, для решения профессиональных задач
(ПК-2);

способность понимать сущность и значение информации в развитии
современного общества, применять достижения современных информационных
технологий для поиска и обработки больших объемов информации по профилю
деятельности в глобальных компьютерных системах, сетях, в библиотечных
фондах и в иных источниках информации (ПК-3);

способность применять методологию научных исследований в
профессиональной деятельности, в том числе в работе над междисциплинарными
и инновационными проектами (ПК-4);

способность
учитывать
современные
тенденции
развития
информатики и вычислительной техники, компьютерных технологий в своей
профессиональной деятельности (ПК-7);

способность использовать языки и системы программирования,
инструментальные средства для решения различных профессиональных,
исследовательских и прикладных задач (ПК-9);

способность формулировать результат проведенных исследований в
виде конкретных рекомендаций, выраженных в терминах предметной области
изучавшегося явления (ПК-10).
В области научно-исследовательской деятельности:

способностью готовить научно-технические
публикации по результатам выполненных работ (ПК-17);
отчеты,
обзоры,

способностью разрабатывать математические модели безопасности
защищаемых компьютерных систем (ПК-18);

способностью проводить анализ и формализацию поставленных задач
в области компьютерной безопасности (ПК-20).
В области проектной деятельности:
 способность участвовать в разработке проектной документации (ПК-22).
В области контрольно-аналитической деятельности:

способность обосновывать правильность выбранной модели решения
профессиональной задачи, сопоставлять экспериментальные данные и
теоретические решения (ПК-28).
Для обучающихся по специализация № 2 «Математические методы защиты
информации»:
способность ориентироваться в современных и перспективных
математических методах защиты информации, оценивать возможность и
эффективность их применения в конкретных задачах защиты информации (ПСК2.1);

способность строить математические модели для оценки безопасности
компьютерных систем и анализировать компоненты системы безопасности с
использованием современных математических методов (ПСК-2.2);
 способность
моделировать алгоритмы в системах компьютерной
математики, оценивать их работоспособность и эффективность (ПСК-2.4);
 способность разрабатывать, анализировать и обосновывать адекватность
математических моделей процессов, возникающих при работе программноаппаратных средств защиты информации (ПСК-2.6).

В результате освоения дисциплины обучающийся должен
Знать:

основные программные средства решения математических задач;

основные понятия и методы современной компьютерной алгебры;

основы логического программирования и сферы его применения, приемы программирования и методы организации баз данных и знаний средствами
языка программирования Пролог,

основные понятия логического программирования и методы разработки логических программ; декларативную и процедурную семантику языка логического программирования.
Уметь:

разрабатывать концептуальные и теоретические модели решаемых
научно-практических проблем и задач в области компьютерной алгебры и ее приложений к компьютерным наукам;

решать стандартные задачи логического программирования организации баз данных и знаний, использовать восходящую и нисходящую рекурсии как
основной метод разработки программ языка логического программирования, организовывать исчерпывающий перебор вариантов, используя механизм поиска с
возвратом; уметь работать с такими сложными структурами данных, как списки,
множества, графы и строки;

логически-правильно мыслить, обобщать, анализировать, критически
осмысливать информацию, систематизировать, прогнозировать, ставить исследовательские задачи и выбирать пути их решения на основании принципов научного
познания;

выявлять естественнонаучную сущность проблем, возникающих в ходе профессиональной деятельности, и применять соответствующий математический аппарат для их формализации и анализа и программные средства для разработки их решения;

применять методологию научных исследований в профессиональной
деятельности, в том числе в работе над междисциплинарными и инновационными
проектами;

применять алгебраический аппарат, в том числе с использованием вычислительной техники, при исследовании информационных систем;

разрабатывать эффективные вычислительные алгоритмы для криптографических приложений.
Владеть:

научным мировоззрением, профессиональной культурой и научноисследовательскими навыками IT-специалиста;

логикой развития математических и вычислительных методов и идей;

навыками публичного представления информации (проект, доклад,
презентация, стендовый доклад);

современными алгебраическими методами и программными средствами реализации решений в области теории информационных систем и компьютерных технологий по профильной специальности 090301 Компьютерная безопасность.
4. Структура и содержание дисциплины
Общая трудоемкость дисциплины составляет 3 зачетных единицы 108 часов.
№
п/п
Раздел дисциплины
Семестр
Неделя
семестра
1
Система
компьютерной
алгебры
GAP
(Группы, алгоритмы
8
1-5
Виды учебной работы,
включая
самостоятельную работу
студентов и
трудоемкость (в часах)
Ле:4
П:
Ла:20
С:8
Формы текущего
контроля
успеваемости (по
неделям
семестра)
Формы
промежуточной
аттестации (по
семестрам)
2
3
4
5
6
7
и
программирование)
Теоретические
основы логического
программирования.
Семантики
и
вычислительная
модель
логической
программы.
Основные
конструкции
логической
программы.
Логическое
программирование
баз данных.
Рекурсивное
программирование.
Использование языка
логического
программирования
для решения задач
искусственного
интеллекта.
Промежуточная
аттестация
Итого:
8
6
Ле:2
П:
Ла:4
С:2
8
7
Ле:2
П:
Ла:4
С:2
8
Ле:2
П:
Ла:4
С:2
8
9-10
Ле:2
П:
Ла:8
С:4
8
11-14
Ле:2
П:
Ла:16
С:6
8
15-16
Ле:2
П:
Ла:8
С:4
Контрольная
работа №1
на 7 неделе
Контрольная
работа №2
на 15 неделе
Зачет
8
1-16
Л:16
П:
Ла:64
С:28
Раздел «Система компьютерной алгебры GAP (Группы, алгоритмы и программирование)». Общие сведения о пакетах прикладных программных средств.
Краткое описание и история создания системы компьютерной алгебры GAP. Состав и возможности системы GAP. Язык программирования GAP. Структуры данных в системе GAP. Основные операции над группами в системе GAP.
На лабораторных занятиях: Основы работы с системой GAP. Списки и целые
числа. Линейные программы и матрицы. Ветвящиеся процессы и многочлены.
Циклические программы и бинарные отношения. Подстановки и группы
подстановок. Изучение свойств элементов и подмножеств группы.
Раздел «Теоретические основы логического программирования». Общие
сведения о логическом программировании. Основные конструкции и механизмы
логического программирования. Логические программы и их теоретикомодельная семантика. Хорновские дизъюнкты. Согласование целевых
утверждений. Синтаксис языка логического программирования: логические
программы и запросы. Декларативная семантика логических программ.
Эрбрановские модели логических программ и теорема о наименьшей
эрбрановской модели.
На лабораторных занятиях: Основные понятия теории автоматического доказательства теорем: нормальные формы формул исчисления предикатов и скулемовские функции, метод Эрбрана и эрбрановские интерпретации, унификаторы формул и метод резолюций для исчисления предикатов. Основные понятия хорнов-
ского логического программирования. Теоретико-модельная интерпретация логических программ. Декларативная семантика логической программы.
Раздел «Процедурная семантика и вычислительная модель логической
программы». Использование метода резолюций для нахождения ответов на запросы. Истолкование резолютивного вывода как вычисления. Согласование целевых утверждений логической программы с помощью унификаторов. Корректность
процедурной семантики логической программы. Абстрактный интерпретатор логических программ. Дерево поиска и сложность логической программы.
На лабораторных занятиях: Процедурная семантика логической программы.
Использование метода резолюций для нахождения ответов на запросы. Истолкование резолютивного вывода как вычисления. Дерево вычислений логической
программы и стратегии его обхода. Вычислительная модель логической программы.
Раздел «Основные конструкции логической программы». Основные элементы языка логического программирования и работа с ними. Факты, вопросы и
правила. Логические переменные и термы. Подстановки и примеры. Экзистенциальные вопросы и универсальные факты и правила. Схема абстрактного интерпретатора логической программы.
На лабораторных занятиях: Представление логического программирования в
виде формального исчисления. Структура и компоненты логической программы.
Алгоритм абстрактного интерпретатора логической программы.
Раздел «Логическое программирование баз данных». Структурированные
данные. Простые базы данных. Рекурсивные правила определения баз данных.
Логическая программа как расширенная модель реляционной базы данных.
Управление выполнением логической программы. Преобразования баз знаний и
вычисления в базах данных.
На лабораторных занятиях: Методы описания предметных областей с помощью средств логического программирования. Создание баз знаний на языке логического программирования. Логическое программирование основных операций
баз данных. Методы управления выполнением логических программ путем реализации таких базовых структур программирования, как цепочки, ветвления и циклы. Логическое программирование преобразования баз знаний и вычисления в базах данных.
Раздел «Рекурсивное программирование». Арифметика в языке логического
программирования и рекурсивное задание типов данных в арифметике. Рекурсивное задание списков и операций над ними. Рекурсивное задание бинарных деревьев и операций над ними. Рекурсивное задание графов и операций над ними.
На лабораторных занятиях: Методы решения алгоритмических задач с помощью средств рекурсивно-логического программирования. Методы рекурсивного
задания типов данных и операций в арифметике. Методы рекурсивного задания
списков и операций над ними. Методы рекурсивного задания множеств и операций над ними. Методы рекурсивного задания множеств бинарными деревьями и
операций над ними. Методы рекурсивного задания операций над графами.
Раздел «Использование языка логического программирования для решения задач искусственного интеллекта». Планирование и машинное обучение.
Представление знаний и экспертные системы. Обработка лингвистической информации с помощью грамматических правил.
На лабораторных занятиях: Методы решения задач искусственного интеллекта
с помощью языка логического программирования.
На лабораторных занятиях студенты с преподавателем разбирают примеры
решения типовых задач из [3,4,8,15-18] и затем под руководством преподавателя
самостоятельно выполняют задания из учебно-методических пособий [8,15-18] с
практической реализацией в форме компьютерных программ с использованием
системы компьютерной алгебры GAP (Группы, алгоритмы и программирование) и
языка логического программирования Visual Prolog.
5. Образовательные технологии
Рекомендуемые образовательные технологии: мультимедийные лекции,
лабораторные занятия в компьютерной лаборатории, научно-исследовательская
работа студентов, знакомство с образовательными ресурсами научноисследовательской библиотеки СГУ и с Интернет-ресурсами.
6. Учебно-методическое обеспечение самостоятельной работы
студентов. Оценочные средства для текущего контроля успеваемости,
промежуточной аттестации по итогам освоения дисциплины.
7. Учебно-методическое и информационное обеспечение дисциплины
а) основная литература:
1. Шрайнер П.А. Основы программирования на языке Пролог: курс лекций:
учебное пособие / П.А. Шрайнер – М.: Интернет-Университет Информационных Технологий, 2005. http://www.intuit.ru/department/pl/plprolog/lit.html
б) дополнительная литература:
2. Авдеенко Т.В. Введение в искусственный интеллект и логическое программирование: Учеб. пособие. - Новосибирск: НГТУ. 2006.
3. Адаменко А., Кучуков А. Логическое программирование и Visual Prolog. Санкт-Петербург: БХВ-Петербург, 2003.
4. Братко И. Алгоритмы искусственного интеллекта на языке PROLOG, 3-е издание: Пер. с англ. – М. : Издательский дом "Вильямс", 2004.
5. Джексон П. Введение в экспертные системы: Пер. с англ.: уч. пос. – М.: Изд.
дом «Вильямс» , 2001.
6. Клоксин У., Меллиш К. Программирование на Прологе. – М.: Мир, 1987.
7. Ковальски Р. Логика в решении проблем. – М.: Наука, 1990.
8. Коновалов А.Б. Система компьютерной алгебры GAP 4.4: Методические указания. Запорожье: Изд-во Запорожского гос.ун-та, 1999. http://www.gapsystem.org/ukrgap/gapbook/manual.pdf
9. Марселлус Д. Программирование экспертных систем на Турбо Прологе. – М.:
Финансы и статистика, 1994.
10. Метакидес Г., Нероуд А. Принципы логики и логическое программирование /
Пер. с англ. под ред. к.ф.м.н В.А. Захарова и акад. В.А. Садовничего. – М.:
Изд-во «Факториал», 1998.
11. Молчанов В.А. Математическая логика. Саратов: Изд-во СГСЭУ, 2011.
12. Рассел С., Норвиг П. Искусственный интеллект: современный подход, 2-е
изд.: Пер. с англ. – М.: Изд. дом «Вильямс» , 2006.
13. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог: Пер.
с англ. – М.: Мир, 1990.
14. Стобо Д.Ж. Язык программирования Пролог: Пер. с англ. – М.: Радио и связь,
1993.
15. Цуканова Н., Дмитриева Т. Логическое программирование на языке Visual
Prolog. Учебное пособие для вузов. – М., 2008.
16. Большакова Е.И. Практикум на языке программирования Пролог: методическое пособие / МГУ. – Москва, 1999.
17. Сборник задач по математической логике и логическому программированию
для семинарских занятий http://mathcyb.cs.msu.su/paper/zakh/exercises.pdf
18. Сборник задач по математической логике и логическому программированию
для самостоятельной работы http://mathcyb.cs.msu.su/paper/zakh/tasks.pdf
в) программное обеспечение и Интернет-ресурсы
Стандартное программное обеспечение компьютерного класса, система компьютерной алгебры GAP, программный продукт «Visual Prolog 5.2», доступ к сети
Интернет.
8. Материально-техническое обеспечение дисциплины
Лекционная аудитория с возможностью демонстрации электронных презентаций при уровне освещения, достаточном для работы с конспектом.
Для обеспечения лабораторных занятий необходим компьютерный класс со
стандартным программным обеспечением, системой компьютерной алгебры GAP,
программным продуктом «Visual Prolog 5.2» и доступом к сети Интернет.
Программа составлена в соответствии с требованиями ФГОС ВПО с учетом
рекомендаций и Примерной ООП ВПО по специальности 090301 «Компьютерная
безопасность» и специализации «Математические методы защиты информации».
Автор
д.ф.-м.н., профессор
В.А.Молчанов
Программа одобрена на заседании кафедры теоретических основ компьютерной
безопасности и криптографии от «___» __________2012 года, протокол № ___
Зав. кафедрой
теоретических основ
компьютерной безопасности и криптографии
профессор
В.Н.Салий
Декан факультета
компьютерных наук
и информационных технологий
доцент
А.Г.Федорова
Download