Магистратура
2024/2025
Инструменты промышленной разработки
Статус:
Курс обязательный (Инженерия данных)
Направление:
09.04.04. Программная инженерия
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Паточенко Евгений Анатольевич
Прогр. обучения:
Инженерия данных
Язык:
русский
Кредиты:
6
Программа дисциплины
Аннотация
В данном курсе изучаются основные инструменты, которые используются в повседневной работе разработчика программного обеспечения. Курс предназначен для освоения операционной системы Linux, развития навыков работы в терминале и освоения синтаксиса BASH. Во второй части курса рассматриваются вопросы систем контроля версий, контейнеризации, систем непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery).Овладение данными навыками позволит сократить время на отладку кода, а также повысит качество разрабатываемых проектов.
Цель освоения дисциплины
- Применять Git для совместной работы и управления версиями.
- Разбираться в устройстве репозитория, его организации в GitHub и выполнять операции с файловой системой (поиск, вывод, перемещение и другие действия) через командную строку.
- Осуществлять обмен данными между локальным компьютером и удаленным репозиторием через терминал, редактировать файлы непосредственно из терминала и уметь генерировать и использовать SSH ключи для работы с удаленными репозиториями.
- Понимать скриптовый язык программирования BASH и инфраструктуру вокруг него, в том числе и командные терминалы.
Планируемые результаты обучения
- Работать с командной строкой, включая использование различных типов оболочек (zsh, fish) и инструментов (tmux)
- Писать скрипты на языке Shell, включая использование утилит grep, find, curl, sed
- Использовать системы контроля версий (Git, Mercurial, SVN)
- Умение работать с текстовым редактором (Markdown, LaTeX и LaTeX beamer) на продвинутом уровне
- Настраивать ресурсы apt, pacman, brew
- Студент научится работать с командной строкой и использовать основные команды для запуска Python-скриптов.
- Студент научится работать с системой контроля версий Git, включая создание пары публичный-приватный ключ и клонирование репозиториев.
- Студент научится управлять рабочим процессом в Git: получать изменения из удалённого репозитория (pull), создавать ветки для разработки новых функций (branch) и интегрировать изменения в основную ветку, разрешая конфликты слияния (merge conflict).
- Студент изучит основы bash и сможет использовать изученные команды для навигации по файловой системе.
- Студент изучит ключевые команды и утилиты, которые позволяют просматривать, редактировать и искать информацию в текстовых файлах, а также комбинировать команды для создания сложных сценариев обработки данных.
- Студент научится использовать продвинутые команды Linux и Bash для работы с файлами, управления сессиями и изменением прав доступа. Студент научится безопасно передавать файлы, устанавливать новые пакеты и работать с переменными окружения.
- Студент научится использовать продвинутые команды Linux и Bash для работы с файлами, управления сессиями и изменением прав доступа.
- Студент научится безопасно передавать файлы, устанавливать новые пакеты и работать с переменными окружения.
- Слушатели научаться работать в операционной системе Linux, подключаться к серверу и использовать Linux для решения профессиональных задач.
- На занятии рассмотрим как взаимодействовать с процессами Linux и освоим скриптовый язык BASH.
- Разберем несколько примеров автоматизации рутинных задач в операционной системе Linux
- Изучаем основные функции Git, а также разбираем случаи, когда они применяются на практике.
- На занятии запускаем несколько контейнеров и налаживаем связи между ними.
- Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему.
- Настраиваем сеть между контейнерами
- Будут рассмотрены основные принципы работы CI/CD и показано как автоматизировать процесс интеграции и поставки программного обеспечения.
- Слушатели пройдут путь от создания самого простого пайплайна до настройки комплексных вариантов CI/CD.
Содержание учебной дисциплины
- Операционная система Linux
- Мониторинг системы
- Git и GitHub
- Основы Docker
- Docker Compose и сеть
- CI / CD
Промежуточная аттестация
- 2024/2025 2nd module0.15*ДЗ-1 + 0.15*ДЗ-2 + 0.15*ДЗ-3 + 0.15*ДЗ-4 + 0.1*Тест-1 + 0.1*Тест-2 + 0.1*Тест-3 + 0.1*Тест-4 с округлением до целого по математическим правилам.