MissingSemester2020/2021
Содержание
О курсе
На занятиях студенты узнают все о продвинутых темах в рамках Компьютерных Наук, от операционных систем до машинного обучения, но есть один важный предмет, который редко освещается в стандартной программе, и вместо этого студенты сами его проходят: владение своими инструментами разработки. Курс предназначен для освоения работы с командной строкой, использования мощного текстового редактора, использования необычных функций систем контроля версий и многого другого. Мы рассмотрим дизайн и внутренности этих инструментов, чтобы студенты в будущем свободно владели и понимали остальных разработчиков, а также думали в рамках этих инструментов наиболее гибко.
Курс предназначен для студентов всего второго курса и будет проходить во втором и третьих модулях.
Лектор: Кутенин Данила
Лекции проходят онлайн по субботам в 11:10-12:30 (2 пара). Ссылка для подключения https://zoom.us/j/91724468296?pwd=a2N2aVNKZHhqRHlHOENmbjdhSXNwQT09. Лекции будут записываться и выкладываться на youtube или в drive.
Семинаров не предусмотрено.
Полезные ссылки
Телеграм-канал курса: https://t.me/hse_msemester_2020
Телеграм-чат курса: Не будет, чаты на весь курс никогда не заканчивались хорошо. Если есть вопросы, пишите напрямую в Телеграм https://t.me/Danlark.
GitHub репозиторий с материалами и лекциями: https://github.com/danlark1/hse_missing_cs_education
Лекции
Будет 11-13 лекций, примерный план лекций таков:
- Вводная лекция. Shell, env variables, различные виды, zsh, fish, tmux. Примеры типичных комманд и ошибок.
- Shell scripting, grep, find, curl, sed.
- Мощь текстовых редакторов, vim и sublime text. Философия, архитектура, ключевые идеи.
- git, mercurial и svn, основные идеи.
- gdb, lldb, дебаг процессов unix систем.
- cmake, make, bazel, gopackage, requirements.txt, CI, тестирование. Основные определения, понятия, способы сборки.
- apt, pacman, brew. Децентрализованные package менеджеры. Ubuntu, Gentoo, Arch Linux, Fedora, их философия и выбор.
- Виртуализация и контейнеризация: FUSE, SSHFS, VPN, SSH, API, RPCs, Docker.
- Markdown, LaTeX, LaTeX beamer, Notebook, Overleaf, github actions.
- Технология LLVM для написания языков программирования.
- Вопросы и ответы по любым интересующим вас темам, разбор домашних заданий. Форма, если вы хотите что-то специфичное, что не было в программе курса.
Семинары
Не будет
Домашние задания
Домашние задания направлены на закрепления материала.
Планируется 3 домашних задания, все будут проводиться в системе Yandex.Contest и Github. Примеры, которые планируются
- Shell scripting
- GDB debug
- Публикация резюме через CI в Github (например, Github Actions)
Экзамен
Не будет
Итоговая оценка за курс
Итог = Мин(Округление(0.33 * ДЗ1 + 0.34 * ДЗ2 + 0.33 * ДЗ3 + Б), 10), где ДЗ1, ДЗ2, ДЗ3 — оценки за все домашние задания, Б — бонус за исправление лекций, нахождения опечаток в записанном лекционном материале. Автоматы не предусмотрены. Экзамена не планируется.