• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2025/2026

Инструменты промышленной разработки

Статус: Курс обязательный (Компьютерные науки и анализ данных)
Когда читается: 1-й курс, 4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 3
Контактные часы: 30

Программа дисциплины

Аннотация

На занятиях студенты узнают все о продвинутых темах в рамках Компьютерных Наук, от операционных систем до машинного обучения, но есть один важный предмет, который редко освещается в стандартной программе, и вместо этого студенты сами его проходят: владение своими инструментами разработки. Курс предназначен для освоения работы с командной строкой, использования мощного текстового редактора, использования необычных функций систем контроля версий и многого другого. Мы рассмотрим дизайн и внутренности этих инструментов, чтобы студенты в будущем свободно владели и понимали остальных разработчиков, а также думали в рамках этих инструментов наиболее гибко. Закрепим хорошим количеством упражнений.
Цель освоения дисциплины

Цель освоения дисциплины

  • Понимать наиболее популярный скриптовый язык программирования и инфраструктуру вокруг него, в том числе и командные терминалы
  • Знать как работать с открытым исходным кодом и настраивать системы вокруг него
Планируемые результаты обучения

Планируемые результаты обучения

  • Освоение работы с командной строкой
  • Умелое использование текстового редактора
  • Умелое использование функций систем контроля версий
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Вводная лекция. Shell, env variables, различные виды, zsh, fish, tmux. Примеры типичных команд и ошибок
  • Shell scripting, grep, find, curl, sed (Часть 1)
  • Shell scripting, grep, find, curl, sed (Часть 2)
  • Git, mercurial и svn, основные идеи
  • Python скрипты
  • GDB
  • Markdown, LaTeX, LaTeX beamer, Overleaf
  • cmake, make, bazel, gopackage, requirements.txt, CI, тестирование
  • Знакомство с Cloud, bare metal, как устроена минимальная настройка ресурсов
  • apt, pacman, brew
  • Виртуализация и контейнеризация: VM, Docker, FUSE, SSHFS, SSH
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание 2: Тестирование
    Выдается после лекции про тестирование. Необходимо написать тесты к API-сервису.
  • неблокирующий Домашнее задание 5: Финальный проект
    Выдается после лекции по языкам разметки и сдаётся в конце курса. Проект, объединяющий работу с git, docker, языки разметки, CI.
  • неблокирующий Домашнее задание 4: Работа с docker
    Выдается после семинара по docker. Необходимо упаковать в контейнер веб-сервис и базу данных и выполнить необходимые шаги.
  • неблокирующий Домашнее задание 3: Работа с git
    Выдается после семинара по git. Будет дано 33 задачи на git, вам надо будет их всех проделать, сдать каст вашего терминала, как Вы делали то или иное задание.
  • неблокирующий Домашнее задание 1: Shell scripting
    Выдается после семинара на написание shell-скриптов и содержит 5 задач на написание shell-скриптов.
Промежуточная аттестация

Промежуточная аттестация

  • 2025/2026 4th module
    0.2 * Домашнее задание 3: Работа с git + 0.2 * Домашнее задание 2: Тестирование + 0.2 * Домашнее задание 5: Финальный проект + 0.2 * Домашнее задание 1: Shell scripting + 0.2 * Домашнее задание 4: Работа с docker
Список литературы

Список литературы

Рекомендуемая основная литература

  • Scott Chacon, & Ben Straub. (2014). Pro Git (Second Edition). Web server without geographic relation, Web server without geographic relation (org): Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.E86D0407

Рекомендуемая дополнительная литература

  • Titus Winters, Tom Manshreck, & Hyrum Wright. (2020). Software Engineering at Google : Lessons Learned From Programming Over Time. O’Reilly Media.

Авторы

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