Сетевые системы и приложения

О курсе

Современному специалисту в области информатики, независимо от специализации, придется работать с сетевыми приложениями, серверным ПО. Серьезное промышленное окружение для разработки предполагает использование специализированных операционных систем, чаще всего из семейства UNIX в качестве основного окружения.

После изучения этого курса вы будете больше понимать в технологиях и инструментах, которые используются для поддержки сложного процесса производства программ. Вы будете знать основные принципы работы операционных систем, большинство основных концепций разработки, будете уметь настраивать сложное окружение для разработки и сможете автоматизировать свою работу на профессиональном уровне.

Программа курса

Название занятия Методичка Видео Слайды
1. LX0 Введение в ОС Linux
Лекция: Операционные системы. UNIX. Linux. Видео Слайды
Лабораторная: Установка Linux в виртуальную машину Видео
2. LX1 Основы командной строки
Лекция: Основы командной строки Linux Видео Слайды
Практика: 10 основных команд Видео
Практика: Служебные команды Видео
Лекция: Работа с файлами Слайды
Практика: Работа с файлами Видео
3. LX2 Использование удаленного доступа по SSH
Лекция: Удаленная работа по SSH Слайды
Практика: SSH Видео
Практика: Tmux Видео
4. LX3 Права и пользователи
Лекция: Пользователи и права Слайды
Практика: Управление пользователями Видео
Практика: Права доступа Видео
5. LX4 Процессы и пакеты в Linux
Лекция: Управление пакетами Слайды
Практика: Управление пакетами Видео
Лекция: Управление процессами Слайды
Практика: Управление процессами Видео
6. LX5 Управление загрузкой Linux
Лекция: Загрузка ОС Слайды
Практика: Создание и управление службами Видео
7. LX6 Управление файловыми системам в Linux
Лекция: Файловые системы и разбиение диска Видео Слайды
Практика: Файловые системы
Практика: Сетевые файловые системы
8. LX7 Основы скриптов на bash
Лекция: Bash как язык программирования Видео Слайды
Практика: Ваш первый сценарий
Практика: Работа с cron
Дополнительно: Работа с MD5
9. LX8 Средства обработки текста
Лекция: Команды работы с текстом в Linux Видео Слайды
Практика: Создание HTML-отчета
Практика: Парсинг лог-файлов
10. LX9 Настройка сетевой среды в Linux
Лекция: Основные понятия компьютерных сетей Слайды
Практика: Диагностика сетей Видео
Дополнительно: Способы сетевых подключений виртуальных машин Методичка Видео
11. DO0 Использование Linux для разработки
Практика: Настройка рабочего окружения Python в Linux Видео
Практика: Vim Методичка
Лекция: Системное программирование на Python Слайды
Практика: Файловый менеджер Методичка
12. DO1 Контроль версий: Git и GitHub
Лекция: Системы контроля версий - Git и GitHub Методичка Видео Слайды
Практика: Основы работы с СКВ в графическом режиме Методичка Видео
Практика: Работа с Git в терминале Методичка Видео
Практика: Работа с удаленными репозиториями и GitHub Методичка Видео
13. NP1 Использование сокетов
Лекция: Сетевое программирование на Python с помощью сокетов Слайды
Практика: Простой эхо-сервер Методичка Видео
14. NP2 Асинхронное программирование
Лекция: Асинхронное программирование в Python Слайды
Практика: Многопоточный сервер Методичка Видео
Практика: Мультипроцессные вычисления Методичка Видео
Практика: Библиотека asyncio Методичка
15. NP3 Безопасность сетевых приложений
Лекция: Основы компьютерной безопасности Слайды
Практика: Симметричное шифрование Методичка
Практика: Асимметричное шифрование Методичка
Практика: Протокол рукопожатия
16. NP4 Веб-сервер
Лекция: Установка и настройка веб-сервера в Linux Слайды
Практика: Установка Apache Методичка Видео
Практика: Установка nginx Видео
Практика: Виртуальные хосты Видео
Лекция: Web-технологии Слайды
Практика: Простой веб-клиент Методичка Видео
Практика: Простой веб-сервер Методичка Видео
Практика: Веб-парсер Методичка
17. DO2 Создание и развертывание серверного приложения
Лекция: Развертывание приложений на сервере
Практика: Создание FTP-сервера Методичка
Практика: Развертывание в ручном режиме Видео
Практика: Развертывание через Git Видео
Практика: Развертывание через Docker Видео

Тематический план

Данный курс призван познакомить с современными инфраструктурными решениями для разработки программного обеспечения, технологиями сетевого программирования. Программа данного курса включает:

  • Основы операционной системы Linux
  • Основы скриптов на bash
  • Удаленное администрирование
  • Использование Linux для разработки
  • Вопросы настройки окружения разработчика
  • Разработка сетевых и асинхронных приложений на Python.
  • Использование СКВ Git и GitHub
  • Настройка сетевых подключений и служб, основы администрирования ОС
  • Вопросы развертывания программ на удаленном сервере

Предварительные требования

Для плодотворного изучения данного курса будут необходимы такие навыки:

  • Уверенное знание синтаксиса Python
  • Основы функционирования компьютера и компьютерных сетей

Материалы курса

Вы можете познакомиться со всеми материалами курса - презентациями к лекциям, методических рекомендациям к лабораторным работам на Google Диске.

  • Плейлист с видео по данному курсу досупен на YouTube.

Источники информации

Основная литература

  • Дорожная карта DevOps-разработчика
  • Э. Таненбаум. Современные операционные системы
  • М. Кофлер. Linux. Полное руководство
  • В. Олифер. Компьютерные сети. Принципы, технологии, протоколы
  • Е. Немет. Unix и Linux.Руководство системного администратора.
  • Pro git

Дополнительная литература

Видео-ресурсы

Программное обеспечение

Для студентов Финансового университета

Балльно-рейтинговая система

Программа зачета

Пробное тестирование к зачету

Зачетное тестирование

Программа экзамена

Инструкция по работе в лаборатории

Методические указания по составлению тестовых заданий