Первый семестр:
Второй семестр:
Вы можете познакомиться с материалами курса - презентациями к лекциям, методических рекомендациям к лабораторным работам на github.
Плейлист с видео по данному курсу досупен на YouTube.
-
Системы контроля версий
- Вначале мы изучаем git для совместной разработки
- Учимся настраивать синхронизацию проектов через GitHub
-
Использование сокетов
- Затем создаем простейшее серверное приложение, которое отправляет потоковое видео
-
Веб-сервер
- Развиваем предыдущий опыт в сокетах до создания простейшего http веб-сервера
- Добавляем функционал многопоточности для http веб-сервера
- Добавляем функционал многопроцессности для ускорения http веб-сервера
- Добавляем библиотеки асинхронного программирования для http веб-сервера
Вторая половина семестра
- Развертывание сетевых приложений
- Пакуем в контейнер - развертываем http асинхронный параллельный веб-сервер на удаленном ресурсе (hub.docker.com)
Cеминар/Лекция дата | № п/п | Вид учебной деятельности | Максимум за семестр |
---|---|---|---|
Лекция DO1.0 | Лабораторная работа-0.1 | Работа с Git | 3 |
Лекция DO1.3 | Лабораторная работа-0.2 | сделать форк этого репозитория и открыть его в IDE | - |
Лекция DO1.1 | Лабораторная работа-0.3 | запушить изменения в проект 1_echo на github | - |
Домашнее задание DO1.4 | Лабораторная работа-0.4 | настроить .gitignore, удалить лишнее | 2 |
Семинар DO1.0 от 05.02-11.02 | Лабораторная работа-0.5 | субмодуль git submodule | - |
Лекция NP1.1 | Лабораторная работа-1.1 | echo-server | 3 |
Семинар NP1.1 от 12.02-18.02 | Лабораторная работа-1.2 | echo-client + telnet/putty | - |
Домашнее задание NP1.1 | Лабораторная работа-1.3 | live stream video server | - |
Семинар NP1.2 | Лабораторная работа-5.1 | ftp-сервер (файлы output+file1) | - |
Домашнее задание NP1.2 | Лабораторная работа-5.2 | файловый менеджер | 2 |
Семинар NP4.4 от 19.02-25.02 | Лабораторная работа-4.1 | Postman (запросы к ruz.fa.ru и к echo-server) | - |
Лекция NP4.4 | Лабораторная работа-4.2 | код http-клиента из Postman | 2 |
Лекция NP4.5 | Лабораторная работа-6.1 | Низкоуровневая работа с веб | 3 |
Семинар NP4.5 от 26.02-3.03 (2дубль) | Лабораторная работа-6.2 | Веб-сервер HTTP Часть1 (webserver1) | - |
Домашнее задание NP4.5 | Лабораторная работа-6.3 | Веб-сервер HTTP Часть2 (фреймворк+вебсервер) | - |
Лекция NP2.1 | Лабораторная работа-2.2 | threaded server | 3 |
Семинар NP2.2 | Лабораторная работа-3.2 | Веб-сервер HTTP Часть3 (threaded) | - |
Домашнее задание NP2.1 | Лабораторная работа-2.1 | threaded+async web-server | - |
Лекция NP2.2 | Лабораторная работа-3.1 | multiprocessing | 2 |
Семинар NP2.1 от 11.03-17.03 | Лабораторная работа-7.1 | UDP/TCP-multiprocess-сервер | - |
Cеминар/Лекция дата | № п/п | Вид учебной деятельности | Максимум за семестр |
---|---|---|---|
Лекция DO2.1 | Лабораторная работа-0.7 | настройка pip | 1 |
Лекция DO2.2 | Лабораторная работа-0.6 | настройка env | 1 |
Лекция NP4.1 | Лабораторная работа-10.1 | apache | 1 |
Лекция NP4.1 | Лабораторная работа-10.2 | nginx | 1 |
Семинар 8.1 | Лабораторная работа-8.1 | Lets_encrypt | - |
Лекция | Лабораторная работа-8.2 | Основные алгоритмы синхронного шифрования | 3 |
Домашнее задание 8.1 | Лабораторная работа-8.3 | Алгоритмы асимметричного шифрования | - |
Домашнее задание NP2.2 | Лабораторная работа-3.2 | Асинхронный сервер | - |
Лекция DO2.3 | Лабораторная работа-13.1 | Создание микросервиса | 5 |
Семинар DO2.3 | Лабораторная работа-13.2 | 1_echo_server в docker | - |
Семинар DO2.3 | Лабораторная работа-13.3 | 5_FTP_server в docker | - |
Семинар DO2.3 | Лабораторная работа-13.4 | 6_Web_server в docker | - |
Семинар DO2.4 | Лабораторная работа-13.5 | Celery_Rabbit | - |
Лекция NP4.3 | Лабораторная работа-11.1 | балансировка в docker | 2 |
Семинар DO2.5 | Лабораторная работа-11.2 | Celery Workers + Queue | - |
- | - | Тестовые опросы | 5 |
- Доля измеримых видов контроля самостоятельной работы обучающихся, исключающих субъективное суждение = 30 баллов
- Доля cамостоятельной работы обучающегося = 10 баллов
Выполнение за половину семестра от 7 до 20 баллов, считается аттестованным
- Напишите программу, которая создает нить. Родительская и вновь созданная нити должны распечатать десять строк текста. 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 баллов)