Skip to content

Latest commit

 

History

History
84 lines (56 loc) · 6.59 KB

reglament23.md

File metadata and controls

84 lines (56 loc) · 6.59 KB

Децентрализованные системы

Регламент курса на 2023

Преподаватель Грищенко Виктор Сергеевич, к.ф.-м.н.

Целью курса является ознакомить слушателей с широким набором технологий построения децентрализованных сетей и распределённых систем в целом, а также выработать необходимый минимум практических навыков. Курс рассчитан на один семестр и состоит из одной пары теории и одной пары практики в неделю.

Начало курса

У курса есть:

Лекции проводятся по Zoom

В начале курса произойдет раздача курсовых проектов, реализация которых является основным критерием успеваемости.

Порядок занятий

По возможности, мы будем идти от теории к практике. В идеале, каждую неделю мы тратим

  1. один час теории на историю вопроса и постановку проблемы,
  2. один час теории на обзор имеющихся и перспективных подходов,
  3. один час практики на исследование решений (продуктов, библиотек итп) и разбор кода курсовых проектов,
  4. один час практики на самостоятельные занятия либо работу с проектами.

Фактически, конечно, тут большая доля импровизации всегда. Для работы над курсовым проектом одного часа в неделю, скорее всего, будет недостаточно. Хотя, час 3 также можно потратить на самостоятельную работу, рекомендуется также выделить дополнительное время.

Практические занятия

На каждой проверочной работе есть 5-7 задач и 5-7 языков программирования (C, Java, Go, Node, Python, Rust). Каждый сдающий должен выбрать клеточку в этой матрице. Как правило, разные задания связаны друг с другом, например результат одного является исходными данными для другого. Таким образом, полученные в результате решения должны быть совместимы.

Решения сдаются, как PR в репо практических занятий.

О работе над проектами

Проект делается группой в 2-3 человека (редко в одиночку) и должен затрагивать темы курса:

  1. криптографию,
  2. федерирование и маршрутизацию,
  3. метрики и инцентивизацию,
  4. коллаборацию и консенсус.

Проект делается на любой платформе - под Web, мобильные устройства или десктоп, на любом удобном языке. Возможны проекты "в пробирке", исключительно работающие с данными работающих сетей либо даже вычислительные эксперименты. Во всех этих категориях были очень интересные проекты.

Проекты, как правило, являются оригинальными затеями, что снимает вопрос о списывании. Использовать чужой код можно, но следует отметить этот факт в Copyright и файле AUTHORS. Можно целиком взять проект предыдущего сезона и развить либо переделать.

Ошибки в ходе проекта - это нормально. Например, вы можете выбрать неподходящую технологию или неработающую библиотеку. Следует минимизировать этот риск через предварительное исследование вопроса, а также иметь время в запасе - на случай сюрпризов.

Проект можно сдавать в разной степени готовности от работающего эскиза/PoC до полного dogfooding, когда люди уже вовсю используют приложение. Это сильно влияет на итоговую оценку. Основные градации годности проекта:

  1. пригодно к практическому использованию,
  2. понятно, что работать будет (либо понятно, почему не будет применимо на практике), либо
  3. неопределённость сохранилась.

Проекты, по которым изначально нет неопределённости, интереса не представляют :)

Важная новация 2023 - предлагается делать проекты кластерно, чтобы разные проекты из одного кластера были между собой совместимы. Подробнее - в файле ideas.md.