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