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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

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

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

Лектор: Федоров Михаил

Ассистенты: Осташов Денис, Семён Енцов, Даниил Рубин, Александр Шитов

Лекции проходят онлайн по средам 18:10-19:30. Ссылка для подключения. Лекции будут записываться и выкладываться на Яндекс Диск.

Семинаров не предусмотрено.

Полезные ссылки

Телеграм-чат курса: https://t.me/+sx6gCVKcC9kyM2Yy

Записи лекций: Яндекс Диск

Таблица с оценками: TODO

GitHub репозиторий с материалами и лекциями прошлого года: https://github.com/danlark1/hse_missing_cs_education

Записи лекций прошлого года: youtube

Wiki-страница прошлого года: http://wiki.cs.hse.ru/MissingSemester2021/2022

Лекции

Будет 14 лекций, примерный план лекций таков:

  1. Вводная лекция. Shell, env variables, различные виды, zsh, fish, tmux. Примеры типичных команд и ошибок
  2. Shell scripting, grep, find, curl, sed(Часть 1).
  3. Shell scripting, grep, find, curl, sed(Часть 2). Обсуждение первого ДЗ.
  4. git, mercurial и svn, основные идеи. Обсуждение второго ДЗ.
  5. Python скрипты
  6. GDB. Обсуждение третьего ДЗ.
  7. Markdown, LaTeX, LaTeX beamer, Overleaf
  8. cmake, make, bazel, gopackage, requirements.txt, CI, тестирование. Основные определения, понятия, способы сборки
  9. Разбор ДЗ 1 и 2
  10. Знакомство с Cloud, bare metal, как устроена минимальная настройка ресурсов. Выдача ДЗ 4
  11. apt, pacman, brew. Децентрализованные package менеджеры. Ubuntu, Gentoo, Arch Linux, Fedora, их философия и выбор, open source
  12. Виртуализация и контейнеризация: VM, Docker, FUSE, SSHFS, SSH
  13. Тема лекции не выбрана
  14. Тема лекции не выбрана

Если будет интерес, сделаем ещё несколько лекций по интересующим Вас темам. Форма для обратной связи: тут. Вы также можете пожаловаться или похвалить курс :)

Семинары

Не будет

Домашние задания

Домашние задания направлены на закрепления материала.

Планируется 4 домашних задания, все будут проводиться в системе Yandex.Contest и Github. Примеры, которые планируются

  1. Shell scripting. https://official.contest.yandex.ru/contest/40974/enter/, все задачи по 2 балла, штрафов за перепосылки нет.
  2. Git Practice https://github.com/danlark1/hse_missing_cs_education/tree/master/homework/git
  3. GDB debug https://github.com/danlark1/hse_missing_cs_education/tree/master/homework/gdb_debug, 4 задачи, каждая по 2.5 балла.
  4. Разворачивание телеграм бота (?)

Экзамен

Не будет

Итоговая оценка за курс

Итог = Мин(Округление(0.25 * ДЗ1 + 0.25 * ДЗ2 + 0.25 * ДЗ3 + 0.25 * ДЗ4), 10), где ДЗ1, ДЗ2, ДЗ3, ДЗ4 — оценки за все домашние задания (округления за ДЗ не предусмотрены). Округление арифметическое. Автоматы не предусмотрены. Экзамена не планируется.