Бакалавриат
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 module0.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.