Первый семестр:
Второй семестр:
Вы можете познакомиться со всеми материалами курса - презентациями к лекциям, методических рекомендациям к лабораторным работам на github.
Плейлист с видео по данному курсу досупен на YouTube.
-
Системы контроля версий
- Вначале мы изучаем git для совместной разработки
- Учимся настраивать синхронизацию проектов через GitHub
-
Использование сокетов
- Затем создаем простейшее серверное приложение, которое отправляет потоковое видео
-
Веб-сервер
- Развиваем предыдущий опыт в сокетах до создания простейшего http веб-сервера
- Добавляем функционал многопоточности для http веб-сервера
- Добавляем функционал многопроцессности для ускорения http веб-сервера
- Добавляем библиотеки асинхронного программирования для http веб-сервера
-
Развертывание сетевых приложений
- В итоге пакуем в контейнер - развертываем http веб-сервер на удаленном ресурсе (hub.docker.com)
№ п/п | Вид учебной деятельности | Максимум за семестр |
| Второй семестр изучения дисциплины |
|
| Первая половина семестра |
|
1. | Аудиторная работа “Настройка рабочего окружения” | 2 |
2. | Лабораторная работа DO2.1 “Работа с Git в текстовом и графическом режиме” | 3 |
3. | Лабораторная работа DO2.2 “Работа с Git субмодули и синтаксис README.md” | 2 |
4. | Лабораторная работа “TCP-потоковый сервер видео | 3 |
5. | Лабораторная работа “Многопоточный сервер на Python” (основное задание) | 3 |
6. | Лабораторная работа “Многопоточный сервер” (основное задание и доп. п. 1) | 2 |
7. | Лабораторная работа “Веб-сервер HTTP” (основное задание) | 3 |
8. | Лабораторная работа “Использование параллельного программирования” (основное задание и доп. пп. 1-2) | 2 |
| Вторая половина семестра |
|
9. | Лабораторная работа “Docker-контейнер” (основное задание и доп. п. 1) | 2 |
10. | Лабораторная работа NT4.1 “Docker-контейнер ” | 2 |
11. | Лабораторная работа NT4.2 “Балансировка нагрузки” | 2 |
12. | Лабораторная работа “Docker-Composer”” (основное задание) | 2 |
13. | Лабораторная работа “Контейнеризация приложений курса” | 5 |
14. | Аудиторная работа “VPN” | 1 |
15. | Тестовые опросы на лекциях | 5 |
16. | Составление тестовых заданий (дополнительно) | 5 |
| Всего за семестр | 40 |
| Экзамен |
|
| Решение практической задачи | 20 |
| Теоретический опрос | 40 |
| Всего за экзамен | 60 |
- Напишите программу, которая создает нить. Родительская и вновь созданная нити должны распечатать десять строк текста. README
- Напишите простой эхо-сервер, использующий неблокирующие сокеты и клиент к нему.README
- Напишите простой многопоточный загрузчик URL. Список URL скрипт принимает как аргументы командной строки.README
- Реализуйте простой HTTP-клиент. Он принимает один параметр командной строки - URL. Клиент делает запрос по указанному URL и выдает тело ответа на терминал как текст.
- Напишите программу, которая вычисляет число Пи при помощи ряда Эйлера. Количество потоков программы должно определяться параметром командной строки.
- Дана функция calculate(x, y). Напишите программу, которая создает пул из 5 процессов и распределяет в этом пуле вычисление функции на промежутке х от 0 до 1 с шагом 0,1. у равняется 2 всегда.README
- Напишите программу, которая проверяет все числа от 0 на простоту и выводит простые числа на экран по мере нахождения. Числа должны проверяться в различных потоках (или процессах, по выбору студента) Программа должна работать до тех пор, пока ее не остановит пользователь.
- Напишите программу, которая обходит все файлы в директории, переданной ей как параметр и выводит на экран имена тех, чей размер задан как второй параметр. Реализовать рекурсивный обход поддиректорий.README
- Напишите программу, которая выводит на экран список номеров открытых портов на данной машине. Использовать команду netstat.
- Напишите программу, которая копирует файл с удаленного хоста в текущую папку по SSH. Имя файла и адрес хоста принимать как параметры.
Экзаменационный билет №
- Понятие потокобезопасности. Причины, проблематика, способы обеспечения. (20 баллов)
- Доступ к общим ресурсам в многопоточной программе. Механизмы блокировки ресурсов модуля threading. (20 баллов)
- Напишите программу, которая создает четыре нити, исполняющие одну и ту же функцию. Эта функция должна распечатать последовательность текстовых строк, переданных как параметр. Каждая из созданных нитей должна распечатать различные последовательности строк. (20 баллов)