Инструменты промышленной разработки 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. Виртуализация и контейнеризация: VM, Docker, docker-compose.
  7. Знакомство с Cloud, bare metal, как устроена минимальная настройка ресурсов. Обсуждение третьего ДЗ.
  8. GDB. Обсуждение четвертого ДЗ.
  9. cmake, make, bazel, gopackage, requirements.txt, CI, тестирование. Основные определения, понятия, способы сборки
  10. Markdown, LaTeX, LaTeX beamer, Overleaf
  11. Разбор ДЗ 1 и 2
  12. apt, pacman, brew. Децентрализованные package менеджеры. Ubuntu, Gentoo, Arch Linux, Fedora, их философия и выбор, open source
  13. Тема лекции не выбрана
  14. Тема лекции не выбрана

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

Семинары

Не будет

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

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

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

  1. Shell scripting. https://official.contest.yandex.ru/contest/40974/enter/, все задачи по 2 балла, штрафов за перепосылки нет. Дедлайн - 22 декабря, 23:59
  2. Git Practice https://github.com/danlark1/hse_missing_cs_education/tree/master/homework/git Форма для сдачи - https://forms.yandex.ru/u/6358fd16c09c020dd82e4190/ Дедлайн - 4 декабря, 23:59. Форма для досдачи - https://forms.yandex.ru/u/6390effb90fa7b5c520872ac/ Дедлайн досдачи - 10 декабря, 23:59
  3. Разворачивание телеграм бота в Yandex.Cloud. Форма для сдачи - https://forms.yandex.ru/u/637f36a390fa7b649b7eeee1/. Дедлайн - 21 декабря, 23:59. Форма для получения доступа к виртуалке. https://forms.yandex.ru/u/639cbbd869387251be4fd4b9/
  4. CV в Latex. Форма для сдачи - https://forms.yandex.ru/u/6392ec4602848faaa5b7d842/ Дедлайн - 24 декабря, 23:59. Можно досдавать на половину баллов до 28 декабря, 23:59

Критерии оценивания телеграм бота

  1. Бот размещен на Yandex.Cloud, а его код выложен на github (4 балла)
  2. Бот имеет не менее трех методов (+ 1 балл)
  3. Бот имеет не менее пяти методов (+ 1 балл)
  4. Бот асинхронный (+ 2 балла)
  5. Используется docker-compose (+ 1 балл)
  6. В docker-compose более одного контейнера (+ 1 балл)

Экзамен

Не будет

Пересдача

Если ваша оценка за курс меньше 4, можно досдать домашние задания до 31 января в телеграм лектору (@zxcvbnnmqwert) (если дорешено первое задание про это тоже надо явно написать). Задачи будут проверены без штрафа. Итоговая будет вычислена по формуле Мин(5, Округление(0.3 * ДЗ1 + 0.3 * ДЗ2 + 0.3 * ДЗ3 + 0.1 * ДЗ4)).

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

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