• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
2024/2025

Modern Software Engineering Practices

Type: Mago-Lego
When: 3, 4 module
Open to: students of one campus
Instructors: Evgeny Patochenko
Language: English
ECTS credits: 3

Course Syllabus

Abstract

В данном курсе изучаются основные инструменты, которые используются в повседневной работе разработчика программного обеспечения. Курс предназначен для освоения операционной системы Linux, развития навыков работы в терминале и освоения синтаксиса BASH. Во второй части курса рассматриваются вопросы систем контроля версий, контейнеризации и создания HTTP API. Овладение данными навыками позволит сократить время на отладку кода, а также повысит качество разрабатываемых проектов.
Learning Objectives

Learning Objectives

  • Применять Git для совместной работы и управления версиями.
  • Разбираться в устройстве репозитория, его организации в GitHub и выполнять операции с файловой системой (поиск, вывод, перемещение и другие действия) через командную строку.
  • Осуществлять обмен данными между локальным компьютером и удаленным репозиторием через терминал, редактировать файлы непосредственно из терминала и уметь генерировать и использовать SSH ключи для работы с удаленными репозиториями.
  • Понимать скриптовый язык программирования BASH и инфраструктуру вокруг него, в том числе и командные терминалы.
  • Корректно настраивать репозиторий для обучения моделей.
  • Писать веб-сервисы на FastAPI и конфигурировать их.
Expected Learning Outcomes

Expected Learning Outcomes

  • -Студент научится управлять рабочим процессом в Git: получать изменения из удалённого репозитория (pull), создавать ветки для разработки новых функций (branch) и интегрировать изменения в основную ветку, разрешая конфликты слияния (merge conflict).
  • -Студент изучит основы bash и сможет использовать изученные команды для навигации по файловой системе.
  • студент изучит ключевые команды и утилиты, которые позволяют просматривать, редактировать и искать информацию в текстовых файлах, а также комбинировать команды для создания сложных сценариев обработки данных.
  • -Студент научится использовать продвинутые команды Linux и Bash для работы с файлами, управления сессиями и изменением прав доступа.
  • -Студент научится безопасно передавать файлы, устанавливать новые пакеты и работать с переменными окружения.
  • -На занятии запускаем несколько контейнеров и налаживаем связи между ними. Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему. Настраиваем сеть между контейнерами
  • -На занятии знакомимся сосновными концепциями REST API. Реализуем собственный API при помощи фреймворка FastAPI
Course Contents

Course Contents

  • Продвинутый функционал GIT
  • Основы работы с командной строкой и файлами
  • Работа с файлами и текстовыми редакторами
  • Удаленная работа
  • Docker Compose и сеть
  • HTTP API (клиент / сервер)
Assessment Elements

Assessment Elements

  • non-blocking ДЗ-1
  • non-blocking ДЗ-2
  • non-blocking ДЗ-3
  • non-blocking ДЗ-4
Interim Assessment

Interim Assessment

  • 2024/2025 4th module
    0.2 * ДЗ-2 + 0.2 * ДЗ-1 + 0.2 * ДЗ-3 + 0.4 * ДЗ-4
Bibliography

Bibliography

Recommended Core Bibliography

  • Git для профессионального программиста, Чакон, С., 2016

Recommended Additional Bibliography

  • Linux, Стахнов, А. А., 2011

Authors

  • Ахмедова Гюнай Интигам кызы
  • Patochenko Evgenii Anatolevich