Многопоточное программирование на С/С++

Дмитрий Калугин-Балашов

Mail.Ru Group

В курсе принцип многопоточного программирования рассматривается в контексте разработки сетевых и высоконагруженных систем. Ядром курса является обучение межпроцессному взаимодействию (IPC) и синхронизации потоков. Пройдя курс, учащиеся смогут разработать собственный веб-сервер, который позволит отработать полученные навыки.

Syllabus

1. Пролог
1.1 Вводный урок курса
1.2 Пролог
1.3 Диагностический экзамен
2. Контейнеры. Умные указатели. Аллокаторы
2.1 Контейнеры
2.2 Умные указатели
2.3 Аллокаторы
3. Сокеты Беркли. Мультиплексирование
3.1 Сокеты Беркли
3.2 Мультиплексирование
4. Асинхронная работа с сетью
4.1 Библиотека libevent
4.2 Библиотека libev
4.3 Библиотека libuv
4.4 Библиотека boost::asio
5. Процессы. Каналы. Сигналы
5.1 Процессы Unix
5.2 Сигналы
5.3 Файлы
5.4 Каналы
6. Очереди сообщений. Семафоры. Общая память
6.1 Классическое Unix IPC
6.2 Очереди сообщений
6.3 Семафоры
6.4 Общая память
7. Потоки. Средства синхронизации
7.1 Потоки POSIX
7.2 Мьютексы
7.3 Условные переменные. Барьеры
7.4 Потоки C++11
8. Параллельное программирование
8.1 OpenMP
8.2 Intel TBB
8.3 MPI
9. Эпилог
9.1 Финальный экзамен
9.2 Эпилог
9.3 Заключительный урок

key words, tags

многопоточное программирование, язык С, язык С++, IPC, контейнеры, веб-сервер


Course properties

Competition track
Science and engineering
Form of education
Informal
Learning language
Russian
Discipline
Information and Communication Technologies (ICTs)
Course authors
Дмитрий Калугин-Балашов
Author’s characterization
Руководитель группы разработки поиска по почте в Mail.Ru Group и преподаватель в Техносфере.
Organization
Mail.Ru Group
Organization characterization
Mail.Ru Group реализует системную работу в области развития образования в сфере IT в России, в том числе в рамках корпоративной социальной ответственности компании. Ежегодно Mail.Ru Group проводит международную олимпиаду для программистов Russian Code Cup, крупнейший чемпионат по программированию искусственного интеллекта Russian AI Cup, конкурс дизайнеров и разработчиков проектировщиков интерфейсов Russian Design Cup, Форумы Технологий, активно сотрудничает с кафедрами в вузах. Ключевыми проектами подготовки стажеров для компании являются проекты дополнительного образования: Технопарк (МГТУ), Техносфера (МГУ), Технотрек (МФТИ), Техноатом (МИФИ).
Knowledge level entrance requirements
Знание C/C++. Умение обращаться с Unix-like операционными системами. В начале курса учащимся предлагается пройти диагнстический экзамен, чтобы оценить свою готовность к курсу
Output knowledge, abilities, skills
Пройдя курс, учащиеся смогут разработать собственный веб-сервер, который позволит отработать полученные навыки.
Entrance test
Groups formation by readiness level
Teachers presence
Tutors presence
Facilitators presence
Training materials forms
texts, multimedia, video lecture, presentation, synchronous video
Interactivity in training materials
Collaborative learning presence
Practical activities
labs
Discussions, forums presence
Webinars, video conferences presence
meetup presence
LMS integration
Learning Analytics
Certification presence
Certification types
Электронный сертификат
Certificate name
Сертификат Stepik.org
Course time limits
Duration
9 (weeks)
Learning types (sync/async)
asynchronous
Assessment types
test
Course modules number
9
Tests (exams) number
2
Personal learning path possibility, course individualization
Operating System
Windows (начиная с версии 7), Linux, Ubuntu, Debian, MacOS, iOS, Android (начиная с версии 4.0)
Supported browsers
Минимальные версии поддерживаемых браузеров: IE / Edge 10 Firefox 38 Chrome 31 Safari 8 Opera 30 iOS Safari 9 Android Browser 4.4 Chrome for Android 44
Learner’s devices
Компьютер, ноутбук, планшет, телефон
Special needs support

Comments