Магистратура
2023/2024![Цель освоения дисциплины](/f/src/global/i/edu/objectives.svg)
![Планируемые результаты обучения](/f/src/global/i/edu/results.svg)
![Содержание учебной дисциплины](/f/src/global/i/edu/sections.svg)
![Элементы контроля](/f/src/global/i/edu/controls.svg)
![Промежуточная аттестация](/f/src/global/i/edu/intermediate_certification.svg)
![Список литературы](/f/src/global/i/edu/library.svg)
Разработка на C++ в Linux
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный
Направление:
01.04.02. Прикладная математика и информатика
Кто читает:
Департамент информатики
Когда читается:
1-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Архимандритов Игорь Борисович
Прогр. обучения:
Внедрение и оптимизация комплексных информационных систем
Язык:
русский
Кредиты:
6
Контактные часы:
56
Программа дисциплины
Аннотация
Основная цель дисциплины - научить разрабатывать низкоуровневое программное обеспечение на языке С++ для платформы Linux. Первая часть курса посвящена ознакомлению с программной архитектурой, интерфейсами взаимодействия с операционной системой, работе с системными библиотеками. Вторая – применению современных практик программирования на C++ для разработки сложных программных систем. Предполагается, что на входе студенты знакомы с техниками современного языка С++.
Цель освоения дисциплины
- Формирование у студентов знаний о структуре программного окружения ОС LINUX, интерфейсе системных вызовов, общей структуре ядра ОС
- Формирование знания лучших практик применения языка С++ при разработке системного ПО
- Формирование навыков анализа и разработки системного ПО в ОС Linux
Планируемые результаты обучения
- Знает основные принципы взаимодействия прикладных программ с ядром ОС
- Знает структуру и основные принципы работы ядра ОС
- Умеет использовать современные средства языка С++ для разработки системного ПО
- Умеет использовать средства стандартной библиотеки для разработки системного ПО
- Владеет инструментами компиляции и сборки системного ПО
- Владеет современными практиками использования языка С++ для управления ресурсами, организации взаимодействия компонентов, многопоточного программирования
- Владеет методиками анализа качества архитектуры и реализации системного ПО
Содержание учебной дисциплины
- Среда выполнения программ в ОС LINUX
- Интерфейсы взаимодействия с файловой системой
- Управление ресурсами и обработка ошибок
- Управление процессами и потоками
- Организация параллельных вычислений
- Средства межпроцессного взаимодействия
- Организация взаимодействия между компонентами приложения
- Средства сетевого взаимодействия
- Организация взаимодействия с внешними системами
- Структура ядра ОС
- Основные принципы разработки модулей ядра
- Использование функциональной парадигмы программирования
- Основные элементы метапрограммимрования
- Перспективы развития
Элементы контроля
- Домашнее задание №1Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
- Домашнее задание №2Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
- Домашнее задание №3Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
- Домашнее задание №4Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решение задачи, представленное в виде исходного кода.
- Домашнее задание №5Домашнее задание №5 выдается студентам в одном варианте и состоит из 4 задач. Каждой задаче присвоен свой балл. Срок выполнения домашнего задания - 8 недель. Форма представления обучающимися домашнего задания - решения задач, представленные в виде исходного кода.
- ЭкзаменНа экзамене будет дано 2 вопроса из программы курса. Каждый вопрос оценивается из 5 баллов.
Промежуточная аттестация
- 2023/2024 учебный год 1 модуль«Отлично» (8-10) Решено задач на 20 или более баллов «Хорошо» (6-7) Решено задач на 14-19 баллов «Удовлетворительно» (4-5) Решено задач на 9-13 баллов «Неудовлетворительно» (0-3) Решено задач менее чем на 9 баллов
- 2023/2024 учебный год 2 модуль0.5 * Домашнее задание №5 + 0.5 * Экзамен
Список литературы
Рекомендуемая основная литература
- Стивенс У., Раго С. - UNIX. Профессиональное программирование. 3-е изд. - 978-5-4461-0649-3 - Санкт-Петербург: Питер - 2018 - 356950 - https://ibooks.ru/bookshelf/356950/reading - iBOOKS
- Страуструп, Б. Язык программирования C++ для профессионалов : учебное пособие / Б. Страуструп. — 2-е изд. — Москва : ИНТУИТ, 2016. — 670 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100542 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Corbet, J., Rubini, A., & Kroah-Hartman, G. (2005). Linux Device Drivers: Vol. 3rd ed. O’Reilly Media.