Инструменты промышленной разработки 2022/2023 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Скопировал страничку прошлого года))
(Пересдача)
 
(не показаны 24 промежуточные версии 2 участников)
Строка 1: Строка 1:
 
== О курсе ==
 
== О курсе ==
  
На занятиях студенты узнают все о продвинутых темах в рамках Компьютерных Наук, от операционных систем до машинного обучения, но есть один важный предмет, который редко освещается в стандартной программе, и вместо этого студенты сами его проходят: владение своими инструментами разработки. Курс предназначен для освоения работы с командной строкой, использования мощного текстового редактора, использования необычных функций систем контроля версий и многого другого. Мы рассмотрим дизайн и внутренности этих инструментов, чтобы студенты в будущем свободно владели и понимали остальных разработчиков, а также думали в рамках этих инструментов наиболее гибко. Закрепим хорошим количеством упражнений.
+
На занятиях студенты узнают все о продвинутых темах в рамках Компьютерных Наук, от операционных систем до машинного обучения, но есть один важный предмет, который редко освещается в стандартной программе, и вместо этого студенты сами его проходят: владение своими инструментами разработки. Курс предназначен для освоения работы с командной строкой, использования мощного текстового редактора, использования необычных функций систем контроля версий и многого другого. Мы рассмотрим дизайн и внутренности этих инструментов, чтобы студенты в будущем свободно владели и понимали остальных разработчиков, а также думали в рамках этих инструментов наиболее гибко. Люди проводят сотни часов, используя эти инструменты в процессе обучения (и тысячи часов в течение своей карьеры), поэтому имеет смысл сделать процесс обучения максимально плавным и простым. Овладение ими не только позволяет вам тратить меньше времени на выяснение того, как подчинить ваши инструменты своей воле, но также позволяет решать проблемы, которые раньше казались невероятно сложными.
  
 
Курс предназначен для студентов всего второго курса и будет проходить в первом и вторых модулях.
 
Курс предназначен для студентов всего второго курса и будет проходить в первом и вторых модулях.
  
'''Лектор:''' Кутенин Данила (Google)
+
'''Лектор:''' [https://t.me/mfgnik Федоров Михаил]
  
Лекции проходят онлайн по субботам 9:30-10:50. Ссылка для [https://zoom.us/j/91479299255?pwd=WGVjK1gzZjRIWHN6S3d4U2Q5UG5uZz09 подключения]. Лекции будут записываться и выкладываться на [https://www.youtube.com/playlist?list=PLEwK9wdS5g0psb_ZYjskVmPBQfEJfI9ui youtube].
+
'''Ассистенты:''' [https://t.me/igreetyou Осташов Денис], [https://t.me/swalrus Семён Енцов], [https://t.me/supremeSwings Даниил Рубин], [https://t.me/AtgshkaSan Александр Шитов]
 +
 
 +
Лекции проходят онлайн по средам 18:10-19:30. Ссылка для [https://us06web.zoom.us/j/89998348560?pwd=VG9KY2lQUE9tUUV2eEJleCt6alFYUT09 подключения]. Лекции будут записываться и выкладываться на [https://disk.yandex.ru/d/hVWLMgTBxXHBUQ/Инструменты%20промышленной%20разработки Яндекс Диск].
  
 
Семинаров не предусмотрено.
 
Семинаров не предусмотрено.
Строка 13: Строка 15:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
Телеграм-канал курса: https://t.me/hse_msemester_2021. Смотрите закреплённое сообщение как источник самой правды.
+
Телеграм-чат курса: https://t.me/+sx6gCVKcC9kyM2Yy
  
Телеграм-чат курса: в канале
+
Записи лекций: [https://disk.yandex.ru/d/hVWLMgTBxXHBUQ/Инструменты%20промышленной%20разработки Яндекс Диск]
  
GitHub репозиторий с материалами и лекциями: https://github.com/danlark1/hse_missing_cs_education
+
Таблица с оценками: TODO
  
Записи лекций: в канале
+
GitHub репозиторий с материалами и лекциями прошлого года: https://github.com/danlark1/hse_missing_cs_education
  
Таблица с оценками: TODO
+
Записи лекций прошлого года: [https://www.youtube.com/playlist?list=PLEwK9wdS5g0psb_ZYjskVmPBQfEJfI9ui youtube]
 +
 
 +
Wiki-страница прошлого года: http://wiki.cs.hse.ru/MissingSemester2021/2022
  
 
=== Лекции ===  
 
=== Лекции ===  
Строка 28: Строка 32:
  
 
# Вводная лекция. Shell, env variables, различные виды, zsh, fish, tmux. Примеры типичных команд и ошибок
 
# Вводная лекция. Shell, env variables, различные виды, zsh, fish, tmux. Примеры типичных команд и ошибок
# Shell scripting, grep, find, curl, sed
+
# Shell scripting, grep, find, curl, sed(Часть 1).
# Мощь текстовых редакторов, vim и sublime text. Философия, архитектура, ключевые идеи
+
# Shell scripting, grep, find, curl, sed(Часть 2). Обсуждение первого ДЗ.
# git, mercurial и svn, основные идеи
+
# git, mercurial и svn, основные идеи. Обсуждение второго ДЗ.
# Безопасность и приватность
+
# Python скрипты
# gdb, lldb, дебаг процессов unix систем
+
# Виртуализация и контейнеризация: VM, Docker, docker-compose.
# Разбор первых двух домашних заданий, ответы на вопросы, продвинутый дебаг процессов unix
+
# Знакомство с Cloud, bare metal, как устроена минимальная настройка ресурсов. Обсуждение третьего ДЗ.
 +
# GDB. Обсуждение четвертого ДЗ.
 
# cmake, make, bazel, gopackage, requirements.txt, CI, тестирование. Основные определения, понятия, способы сборки
 
# cmake, make, bazel, gopackage, requirements.txt, CI, тестирование. Основные определения, понятия, способы сборки
# apt, pacman, brew. Децентрализованные package менеджеры. Ubuntu, Gentoo, Arch Linux, Fedora, их философия и выбор, open source
 
# Виртуализация и контейнеризация: VM, Docker, FUSE, SSHFS, SSH
 
 
# Markdown, LaTeX, LaTeX beamer, Overleaf
 
# Markdown, LaTeX, LaTeX beamer, Overleaf
# Знакомство с Cloud, bare metal, как устроена минимальная настройка ресурсов
+
# Разбор ДЗ 1 и 2
# Железо, характеристики, производительность, numbers each programmer should know
+
# apt, pacman, brew. Децентрализованные package менеджеры. Ubuntu, Gentoo, Arch Linux, Fedora, их философия и выбор, open source
# Технология LLVM для написания языков программирования
+
# Тема лекции не выбрана
 +
# Тема лекции не выбрана
  
Если будет интерес, сделаем ещё несколько лекций по интересующим Вас темам. Форма для обратной связи: https://forms.gle/EZCdUxjXuvozwA726. Вы также можете пожаловаться или похвалить курс :)
+
Если будет интерес, сделаем ещё несколько лекций по интересующим Вас темам. Форма для обратной связи: [https://www.youtube.com/watch?v=dQw4w9WgXcQ тут]. Вы также можете пожаловаться или похвалить курс :)
  
 
=== Семинары ===
 
=== Семинары ===
Строка 54: Строка 58:
 
Планируется 4 домашних задания, все будут проводиться в системе Yandex.Contest и Github. Примеры, которые планируются
 
Планируется 4 домашних задания, все будут проводиться в системе Yandex.Contest и Github. Примеры, которые планируются
  
# Shell scripting. https://official.contest.yandex.ru/contest/29079/enter/, все задачи по 2 балла, штрафов за перепосылки нет. Дедлайн 3 октября 23:59
+
# Shell scripting. https://official.contest.yandex.ru/contest/40974/enter/, все задачи по 2 балла, штрафов за перепосылки нет. Дедлайн - 22 декабря, 23:59
# Git Practice https://github.com/danlark1/hse_missing_cs_education/tree/master/homework/git
+
# 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
# GDB debug https://github.com/danlark1/hse_missing_cs_education/tree/master/homework/gdb_debug, 4 задачи, каждая по 2.5 балла. Дедлайн 19 ноября 23:59
+
# Разворачивание телеграм бота в Yandex.Cloud. Форма для сдачи - https://forms.yandex.ru/u/637f36a390fa7b649b7eeee1/. Дедлайн - 21 декабря, 23:59. Форма для получения доступа к виртуалке. https://forms.yandex.ru/u/639cbbd869387251be4fd4b9/
# Публикация резюме через CI в Github (например, Github Actions)
+
# CV в Latex. Форма для сдачи - https://forms.yandex.ru/u/6392ec4602848faaa5b7d842/ Дедлайн - 24 декабря, 23:59. Можно досдавать на половину баллов до 28 декабря, 23:59
 +
 
 +
Критерии оценивания телеграм бота
 +
 
 +
# Бот размещен на Yandex.Cloud, а его код выложен на github  (4 балла)
 +
# Бот имеет не менее трех методов (+ 1 балл)
 +
# Бот имеет не менее пяти методов (+ 1 балл)
 +
# Бот асинхронный (+ 2 балла)
 +
# Используется docker-compose (+ 1 балл)
 +
# В docker-compose более одного контейнера (+ 1 балл)
  
 
=== Экзамен ===
 
=== Экзамен ===
  
 
Не будет
 
Не будет
 +
 +
=== Пересдача ===
 +
 +
Если ваша оценка за курс меньше 4, можно досдать домашние задания до 31 января в телеграм лектору (@zxcvbnnmqwert) (если дорешено первое задание про это тоже надо явно написать). Задачи будут проверены без штрафа. Итоговая будет вычислена по формуле Мин(5, Округление(0.3 * ДЗ1 + 0.3 * ДЗ2 + 0.3 * ДЗ3 + 0.1 * ДЗ4)).
  
 
=== Итоговая оценка за курс ===
 
=== Итоговая оценка за курс ===
  
Итог = Мин(Округление(0.2 * ДЗ1 + 0.3 * ДЗ2 + 0.2 * ДЗ3 + 0.3 * ДЗ4 + Б), 10), где ДЗ1, ДЗ2, ДЗ3, ДЗ4 — оценки за все домашние задания (округления за ДЗ не предусмотрены), Б — бонус за исправление лекций, нахождения опечаток в записанном лекционном материале. Округление арифметическое. Автоматы не предусмотрены. Экзамена не планируется.
+
Итог = Мин(Округление(0.3 * ДЗ1 + 0.3 * ДЗ2 + 0.3 * ДЗ3 + 0.1 * ДЗ4), 10), где ДЗ1, ДЗ2, ДЗ3, ДЗ4 — оценки за все домашние задания (округления за ДЗ не предусмотрены). Округление арифметическое. Автоматы не предусмотрены. Экзамена не планируется.

Текущая версия на 13:02, 10 января 2023

О курсе

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

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

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

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

Лекции проходят онлайн по средам 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 — оценки за все домашние задания (округления за ДЗ не предусмотрены). Округление арифметическое. Автоматы не предусмотрены. Экзамена не планируется.