- •Учебно-методический комплекс дисциплины «Системное программирование»
- •Алматы, 2016
- •Опись содержания учебно-методического комплекса дисциплины
- •1. Цели и задачи дисциплины.
- •2. Содержание дисциплины
- •2.1.Лекционный курс
- •2.3. Лабораторные занятия
- •2.4. Самостоятельная работа студентов под руководством преподавателя
- •2.5. Самостоятельная работа студентов
- •3. Учебно-методические материалы по дисциплине
- •3.1.Список рекомендуемой литературы
- •3.2. Вопросы для подготовки к экзамену
- •1. Информация о дисциплине
- •2. Краткое описание дисциплины
- •4. Литература для изучения
- •5. Критерии оценки
- •Карта учебно-методической обеспеченности
- •Тезисы лекций
- •Лекция 2. Базовые конструкции структурного программирования
- •Лекция 3. Указатели и массивы
- •Лекция 4. Типы данных, определяемые пользователем
- •Лекция 5. Модульное программирование
- •Лекция 6. Объектно-ориентированное программирование
- •Лекция 7. Операционные системы и их интерфейсы
- •Лекция 8. Управление потоками и процессами
- •Лекция 9. Синхронизация потоков и процессов
- •Лекция 10. Обмен данными между параллельными процессами
- •Лекция 11. Структурная обработка исключений
- •Лекция 12. Работа с виртуальной памятью
- •Лекция 13. Динамически подключаемые библиотеки
- •Планы семинарских, практических, лабораторных и студийных занятий
- •4.1. Индивидуальное задание:
- •4.2. Описание метода решения
- •4.3. Описание логической структуры
- •4.4. Данные для тестирования
- •4.5. Текст программы
- •5.1. Описание методов решения
- •5.1.1. Представление в памяти
- •5.1.2. Модульная структура программного изделия
- •5.2. Описание логической структуры
- •5.2.1. Общие переменные
- •5.3. Программа пользователя
- •5.4. Тексты программных модулей
- •5.5. Варианты.
- •5. Варианты индивидуальных заданий
- •6. Пример решения задачи
- •6.1. Индивидуальное задание:
- •6.2. Описание методов решения
- •6.3. Описание логической структуры
- •6.4. Текст программы
- •5.1. Структура данных программы
- •5.2. Структура программы
- •5.3. Описание переменных
- •5.4. Описание алгоритма программы
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Индивидуальное задание.
- •5.2. Разработка алгоритма
- •5.3. Текст программы
- •5.4. Результаты работы программы
- •4. Порядок выполнения
- •5. Индивидуальные задания
- •6. Пример решения задачи
- •6.3. Индивидуальное задание.
- •6.4. Разработка алгоритма решения
- •6.4.1. Структура программы
- •6.5. Текст программы
- •6.6. Результаты работы программы
- •4. Порядок выполнения
- •5. Пример решения задачи
- •5.1. Индивидуальное задание.
- •5.4. Разработка алгоритм решения
- •5.5. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритм программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.6. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.3. Результаты работы программы
- •5.1. Разработка алгоритма решения
- •5.1.3. Описание алгоритма программы
- •5.2. Текст программы
- •5.1. Разработка алгоритма решения
- •5.1.1. Структура программы
- •5.1.2. Описание переменных
- •5.3. Результаты работы программы
- •5.1.3. Описание алгоритма программы
- •5.2 Текст программы
- •5.3. Результаты работы программы
- •Материалы для мониторинга и контроля образованности обучающихся (уровня сформированности предметных компетенций):
- •Методические разработки (рекомендации)
- •Официально изданные преподавателями учебные и учебно-методические пособия (при условии публикации)
- •Перечень:
- •Учебная литература и/или материалы на электронных носителях
3. Учебно-методические материалы по дисциплине
3.1.Список рекомендуемой литературы
Основная литература
Побегайло А. П. Системное программирование в Windows. — СПб.: БХВ-Петербург, 2006. - 1056 с: ил.
Харт, Дж.. Системное программирование в среде Windows: изд.3. – М.: Диалектика, 2005 г. – 592 с.
Дейтел Х.М., Дейтел П.Дж. Как программировать на С. –М.: «Бином-Пресс», 2009. –910 с.
Б. Страуструп Язык программирования C++, изд. 2010 г./Пер. с англ. — СПб.; М.: «Невский Диалект» — «Издательство БИНОМ», 2015 г. –1136 с.
Щупак Ю.А. Win32 API. Разработка приложений для Windows. - СПб, ПИТЕР. 1-е издание, 2008 - 592 с.
Дополнительная литература
Джонсон М. Харт. Системное программирование в среде Win32, 2-е изд.: Пер. с англ.: - М: Издательский дом «Вильяме», 2001. -464 с: ил.
Подбельский В.В. Язык С++: Учеб. пособие. –5-е издание. –М.: «Финансы и статистика», 2003. –560 с.
Танеев P.M. Проектирование интерфейса пользователя средствами Win32 API: учеб. пособие для вузов.-М: Горячая линия -Телеком, 2007.-357 с: ил.
Сучкова Л.И. Win32 API: основы программирования: учебное пособие – Барнаул, АлтГТУ, 2010. - 138 с, ил.
Фленов М.Е. Программирование на C++ глазами хакера. -СПб: БХВ-Петербург, 2007. - 336 с.
3.2. Вопросы для подготовки к экзамену
Базовые средства языка C++
Типы данных C++
Базовые конструкции структурного программирования
Типы данных, определяемые пользователем
Модульное программирование
Объектно-ориентированное программирование
Описание класса
Наследование
Простое наследование
Виртуальные методы
Механизм позднего связывания
Абстрактные классы
Множественное наследование
Отличия структур и объединений от классов
Назначение операционной системы
Типы операционных систем
Интерфейс программирования приложений Win32 API
Типы данных в Win32 API
Объекты и их дескрипторы в Windows
Диспетчеризация и планирование потоков
Процессы в Windows
Синхронизация потоков в Windows
Критические секции
Объекты синхронизации и функции ожидания
Мьютексы
События
Семафоры
Взаимоисключающий доступ к переменным
Исключения и их обработчики
Организация виртуальной памяти
Работа с виртуальной памятью в Windows
Работа с кучей в Windows
Концепция механизма отображения файлов в память
Динамически подключаемые библиотеки
Динамическая локальная память потока
|
|
1. Информация о дисциплине
Наименование дисциплины Системное программирование
Количество кредитов 3
Курс, семестр 4 курс, 7 семестр
Шифр - наименование специальности 5В011100 - Информатика
Институт, кафедра ИМФИ, кафедра ИиИО
Время и место проведения дисциплины по расписанию
Степень, звание, должность
Ф.И.О преподавателя к.п.н., ст.препод. Киселёва Е.А.
контактная информация
(телефон, e-mail) 8(727)2611576, kisseleva@gmail.com
2. Краткое описание дисциплины
Целью дисциплины «Системное программирование» является изучение теоретических основ современного системного программирования с использованием интерфейса Win32 API, принципов синхронизации и диспетчеризации потоков и процессов, способов обмена данными между процессами, управления устройствами компьютера и файлами.
Основными задачами дисциплины «Системное программирование» являются:
формирование представлений об интерфейсах программирования API Win32, API Win64;
знакомство с основными принципами работы с файловой системы, обеспечения консольного ввода/вывода;
освоение методов управления памятью для отображения файлов в оперативной памяти с целью их последующей обработки;
введение в теорию управления процессами и потоками, выполнения синхронизации процессов для повышения эффективности их работы;
обеспечение структурной обработки исключений, возникающих при выполнении сложных вычислений;
изучение возможностей использования статических и динамических библиотек.
В результате изучения дисциплины «Системное программирование» студент должен знать:
принципы построения современных операционных систем и особенности их применения;
понятие программных модулей как разделяемых ресурсов в операционных системах и средах;
принципы разработки многопоточных программных модулей и системные примитивы синхронизации;
технологии разработки алгоритмов и программ, методов отладки и решения задач на ЭВМ в различных режимах, основы объектно-ориентированного подхода к программированию;
cтудент должен уметь:
использовать средства, предоставляемые интерфейсом прикладных программ (API) одной из современных ОС;
осуществлять проектирование и реализацию типовых разновидностей пользовательского интерфейса системных программных средств;
разрабатывать интерфейсы библиотек динамической компоновки;
cтудент должен владеть:
навыками работы с различными операционными системами и их администрирования;
методами и инструментальными средствами отладки и тестирования программ;
языком программирования С++;
профессиональными средствами разработки системного программного обеспечения, включая оригинальную справочную документацию от поставщиков программных технологий.
3. Календарно-тематический план.
№ |
Наименование разделов дисциплины |
недели |
Аудиторные занятия |
Вид задания |
Всего (ч.) |
||
Лекц (ч.) |
Лаб. (ч.) |
СРСП (ч.) |
СРС (ч) |
||||
|
|
Объектно-ориентированное программирование |
1-2 |
2 |
3 |
5 |
5 |
15 |
|
|
Операционные системы и их интерфейсы |
3-4 |
2 |
4 |
6 |
6 |
18 |
|
|
Управление потоками и процессами |
5-6 |
2 |
4 |
6 |
6 |
18 |
|
|
Синхронизация потоков и процессов |
7-8 |
2 |
4 |
5 |
5 |
16 |
|
|
Обмен данными между параллельными процессами |
9-10 |
2 |
4 |
6 |
6 |
18 |
|
|
Структурная обработка исключений |
11-12 |
2 |
4 |
6 |
6 |
18 |
|
|
Работа с виртуальной памятью |
13-14 |
2 |
4 |
6 |
6 |
18 |
|
|
Динамически подключаемые библиотеки |
15 |
1 |
3 |
5 |
5 |
14 |
|
|
|
15 |
30 |
45 |
45 |
135 |
