Министерство образования и науки Российской Федерации Учебно-методическое объединение вузов по образованию в области информационной безопасности сборник примерных программ учебных дисциплин по направлению подготовки (специальности)
Вид материала | Документы |
- Министерство образования и науки Российской Федерации Учебно-методическое, 5418.2kb.
- Ступности (государственной, воинской, транснациональной и иной) мы будем, 86.46kb.
- Лекция по теме № Условия конкретного преступления, 298.33kb.
- Расписание занятий на цикле сертификационного усовершенствования для интернов, 88.88kb.
- Министерство образования Российской Федерации Министерство путей сообщения Российской, 653.58kb.
- Министерство образования Российской Федерации Министерство путей сообщения Российской, 657.68kb.
- Общая характеристика работы Актуальность темы, 398.26kb.
- Рекомендации по организации профилактической работы, направленной на предупреждение, 1352.37kb.
- История исторической науки, 496.22kb.
- Министерство здравоохранения и социального развития Российской Федерации Государственное, 408.11kb.
Разработчики: УМО ИБ
УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЪЕДИНЕНИЕ ПО ОБРАЗОВАНИЮ
В ОБЛАСТИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
ПРОЕКТ
ПРИМЕРНАЯ УЧЕБНАЯ ПРОГРАММА
Наименование дисциплины
«Языки программирования»
Рекомендуется для направления подготовки (специальности)
090105.65 Информационная безопасность автоматизированных систем
Квалификация (степень) выпускника
«Специалист»
МОСКВА 2011
1. Цели и задачи дисциплины
Целью изучения дисциплины «Языки программирования» является подготовка специалистов к деятельности, связанной с разработкой программного обеспечения для решения профессиональных задач.
Задачи дисциплины:
ознакомление с теоретическими основами программирования;
изучение основ алгоритмизации;
изучение средств описания данных и средств описания действий языков программирования;
овладение навыками программирования;
освоение современных сред создания программных продуктов.
2. Место дисциплины в структуре ООП
Дисциплина «Языки программирования» относится к числу дисциплин базовой части профессионального цикла.
Для успешного усвоения данной дисциплины необходимо, чтобы студент владел знаниями, умениями и навыками, сформированными в процессе изучения дисциплин:
«Информатика» – уметь пользоваться сетевыми средствами для обмена данными, в том числе с использованием глобальной информационной сети Интернет; владеть навыками работы с офисными приложениями;
«Английский язык» – владеть иностранным языком в объеме, необходимом для получения и изложения информации по профессиональной тематике.
Дисциплина "Языки программирования" является предшествующей для изучения следующих базовых дисциплин: «Технологии и методы программирования», «Программно-аппаратные средства обеспечения информационной безопасности».
3. Требования к результатам освоения дисциплины
Процесс изучения дисциплины направлен на формирование следующих компетенций:
способность к логически-правильному мышлению, обобщению, анализу, критическому осмыслению информации, систематизации, прогнозированию, постановке исследовательских задач и выбору путей их решения на основании принципов научного познания (ОК-9);
способность использовать языки, системы и инструментальные средства программирования в профессиональной деятельности (ПК-3);
способность к освоению новых образцов программных, технических средств и информационных технологий (ПК-8);
способность разрабатывать научно-техническую документацию, готовить научно-технические отчеты, обзоры, публикации по результатам выполненных работ (ПК16);
способность участвовать в разработке защищенных автоматизированных систем по профилю своей профессиональной деятельности (ПК-18).
В результате изучения дисциплины студент должен
знать:
области и особенности применения языков программирования высокого уровня;
язык программирования высокого уровня (объектно-ориентированное программирование);
возможности, классификацию и область применения макрообработки;
способы обработки исключительных ситуаций;
особенности параллельного программирования, способы реализации взаимного исключения;
уметь:
работать с интегрированной средой разработки программного обеспечения;
реализовывать на языке высокого уровня алгоритмы решения профессиональных задач, в том числе задач обработки битовых потоков;
использовать шаблоны классов;
использовать шаблоны классов и средства макрообработки;
использовать динамически подключаемые библиотеки;
реализовывать основные структуры данных и базовые алгоритмы средствами языков программирования;
использовать в разрабатываемых программах возможности многопоточной обработки;
владеть:
навыками разработки, документирования, тестирования и отладки программ.
навыками программирования на языке программирования высокого уровня;
навыками использования средств синхронизации потоков MS Windows;
4. Объём дисциплины и виды учебной работы
Вид учебной работы | Всего часов | Семестры | ||
2 | 3 | |||
Аудиторные занятия (всего) | 124 | 52 | 72 | |
В том числе: | | | | |
Лекции (Л) | 54 | 22 | 32 | |
Практические занятия (ПЗ) | 66 | 28 | 38 | |
Семинары (С) | - | - | - | |
Лабораторные работы (ЛР) | - | - | - | |
Контрольные работы (КР) | 4 | 2 | 2 | |
Самостоятельная работа (всего) | 126 | 54 | 72 | |
В том числе: | | | | |
Курсовой проект (работа) | - | - | - | |
Расчётно-графические работы | - | - | - | |
Коллоквиум | - | - | - | |
Реферат | - | - | - | |
Домашнее задание | 40 | 20 | 20 | |
Другие виды самостоятельной работы (подготовка к занятиям, зачету) | 86 | 34 | 52 | |
Вид промежуточной аттестации и его трудоемкость | 38 | Зачет (2) | Экзамен (36) | |
Общая трудоёмкость | часов | 288 | 108 | 180 |
зачетных единиц | 8 | 3 | 5 |
5. Содержание дисциплины
5.1. Содержание разделов (тем) дисциплины
Раздел 1. Основы языков программирования высокого уровня. Язык С/С++
Тема 1. Общая характеристика языков программирования
Начальные сведения о языках программирования. Роль языков программирования. Характеристики и свойства языков программирования. История развития языков программирования. Поколения языков. Основные элементы языков программирования. Инструментальные средства разработки программ на языках высокого уровня в различных операционных системах.
Тема 2. Базовые понятия языка
Алфавит, идентификаторы, служебные слова, константы, комментарии. Структура программы. Этапы создания исполняемой программы. Типизация языка. Определение типа. Контроль типов. Уровни типизации. Эквивалентность типов. Простые типы данных. Переменные. Классы памяти. Операции, выражения, операторы.
Тема 3. Указатели, ссылки, массивы
Указатели. Ссылки. Одномерные и многомерные массивы. Строки. Связь указателей и массивов. Динамические массивы.
Тема 4. Функции
Определение, описание и вызов функции. Способы передачи параметров в функцию. Рекурсивные функции. Подставляемые функции. Перегрузка функций. Шаблоны функций. Указатели на функции. Аргументы по умолчанию. Передача массивов в функции.
Тема 5. Типы данных, определяемые пользователем
Структуры, объединения, битовые поля. Переименование типов. Перечисления.
Тема 6. Ввод –вывод. Работа с файлами
Ввод-вывод данных. Функции для работы с файлами и директориями.
Тема 7. Препроцессорные средства
Стадии препроцессорной обработки. Директивы. Макроподстановки. Условная компиляция.
Тема 8. Операции с разрядами
Поразрядные логические операции и операции сдвига, области их применения. Использование битовых полей. Битовые поля и поразрядные операции.
Тема 9. Межпроцессное взаимодействие. Параллельное программирование.
Основные понятия. Средства обеспечения работы процессов. Средства реализации взаимных исключений и синхронизации процессов с общей памятью. Программное решение проблемы взаимного исключения. Двоичные семафоры. Простые критические интервалы. Мониторы. Синхронизация потоков и процессов в Windows.
Раздел 2. Введение в объектно-ориентированное программирование. Язык С++
Тема 10. Основные принципы объектно-ориентированного программирования
Основные понятия объектно-ориентированного программирования (ООП). Отличия ООП от процедурного программирования. Принцип инкапсуляции. Понятия наследования и полиморфизма.
Тема 11. Классы и объекты
Конструкторы и деструкторы. Дружественные классы и функции. Статические элементы класса. Константные методы и объекты. Указатель this. Указатели и ссылки на объекты, массивы объектов.
Раздел 3. Основы объектно-ориентированного программирования. Язык С++
Тема 12. Перегрузка операций
Концепция и основные правила перегрузки операций. Перегрузка операций методами класса, дружественными и обычными функциями. Перегрузка различных операций.
Тема 13. Наследование
Механизм наследования. Базовые и производные классы. Типы наследования. Правила наследования различных методов. Множественное наследование.
Тема 14. Виртуальные функции и полиморфизм
Полиморфизм. Виртуальные и чистые виртуальные функции. Абстрактные классы. Статическое и динамическое связывание. Механизм динамического связывания. Виртуальные деструкторы.
Тема 15. Шаблоны классов
Определение шаблона класса. Использование шаблона класса. Правила описания шаблонов. Специализация шаблона класса.
Тема 16. Потоковый ввод-вывод
Иерархия классов потокового ввода-вывода. Принципы организация потоков. Стандартные потоки. Работа с файлами. Форматирование ввода-вывода. Строковые потоки. Перегрузка операций ввода-вывода.
Тема 17. Обработка исключительных ситуаций
Принципы обработки исключений. Классы и исключения. Стандартные исключения.
Тема 18. Стандартная библиотека шаблонов (STL)
Общие принципы функционирования STL. Контейнеры. Итераторы. Алгоритмы. Функторы.
Тема 19. Приложения с графическим интерфейсом пользователя
Принципы программирования для операционной системы на языке С/С++ с применением API. Взаимодействие операционной системы и приложений. Создание графического интерфейса пользователя.
5.2. Разделы (темы) дисциплины и междисциплинарные связи
с обеспечиваемыми (последующими) дисциплинами
№ п/п | Наименование обеспечиваемых (последующих) дисциплин | № разделов (тем) данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин | ||
| 1 | 2 | 3 | |
1. | Технологии и методы программирования | + | + | + |
2. | Программно-аппаратные средства обеспечения информационной безопасности | + | + | + |
5.3. Разделы (темы) дисциплины и виды занятий
№ п/п | Наименование раздела (темы) дисциплины | Лекц., час | Практ. зан., час | Лаб. раб., час | Семин., кр час | СР, час | Всего, час |
1 | Основы языков программирования высокого уровня. Язык С/С++ | 22 | 28 | - | 2 | 54 | 106 |
2 | Введение в объектно-ориентированное программирование. Язык С++ | 6 | 4 | - | - | 8 | 18 |
3 | Основы объектно-ориентированного программирования. Язык С++ | 26 | 34 | - | 2 | 64 | 126 |
6. Лабораторный практикум
Лабораторный практикум не предусмотрен
7. Примерная тематика курсовых проектов (работ)
Курсовой проект (работа) не предусмотрен.
8. Учебно-методическое и информационное обеспечение дисциплины
8.1. Основная литература
- Лаптев В.В. С++. Объектно-ориентированное программирование: Учебное пособие. – СПб.: Питер, 2008. – 464 с.
- Павловская Т.А. С/С++. Программирование на языке высокого уровня. Учебник. – СПб.: Питер, 2010. – 460 с.
- Подбельский В. В., Фомин С. С. Программирование на языке Си. Учебное пособие для ВУЗов : – М. : Финансы и статистика, 2009. – 600 с.
- Подбельский В.В. Стандартный Си++. Учебное пособие. – М.: Финансы и статистика, 2008. – 688 с.
- Шилдт Г. C++ : базовый курс. : Пер. с англ. – М.: Издательский дом «Вильямс», 2010. – 624 с.: ил.
8.2. Дополнительная литература
- Гриффитс А. GCC. Настольная книга пользователей, программистов и системных администраторов. – К.: ООО «ТИД ДС», 2004. – 624 с.
- Дейтел Х.М., Дейтел П.Дж. Как программировать на С++. – 4-е изд. М.: Бином-Пресс, 2010. – 1456 с.
- Лафоре Р. Объектно-ориентированное программирование в C++. : Пер. с англ. – 4-е изд. – СПб. : Издательство «Питер», 2004. – 924 с.
- Мюссер Д.Р., Дердж Ж.Дж., Сейни А. С++ и STL: справочное руководство. – М. : Издательский дом «Вильямс», 2010. – 432 с.
- Павловская Т.А., Щупак Ю.А. С/С++. Структурное и объектно-ориентированное программирование. Практикум. – СПб.: Питер, 2010. – 352 с.
- Подбельский В. В. Практикум по программированию на языке Си. – М.: Финансы и статистика, 2004. – 575 с.
- Прата С. Язык программирования С. Лекции и упражнения.- М. : Издательский дом Вильямс, 2006. – 960 с.
- Себеста Р.У. Основные концепции языков программирования – М. : Издательский дом Вильямс, 2001. – 668 с.
- Страуструп Б. Программирование: принципы и практика использования C++ : Пер. с англ. – М. : Издательский дом «Вильямс», 2010. – 1248 с.: ил.
- Хортон А. Visual C++ 2010. Полный курс. – М. : Диалектика, 2010. – 1216 с.
8.3. Программное обеспечение
Операционные системы: семейства Windows (не ниже Windows XP), Linux.
Современная интегрированная среда программирования ( например, Visual Studio; справочная система Microsoft Development Network).
8.4. Базы данных, информационно-справочные и поисковые системы
Не требуется.
9. Материально-техническое обеспечение дисциплины
Для проведения всех видов занятий необходимо презентационное оборудование (мультимедийный проектор, ноутбук, экран) – 1 комплект.
Для проведения практических занятий необходимо наличие компьютерных классов оборудованных современной вычислительной техникой из расчета одно рабочее место на одного обучаемого.
Для эффективной работы в рамках дисциплины рекомендуется иметь возможность работать с исходными текстами программ, сохраненными на съемных накопителях информации.