<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.atp-fivt.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Milana</id>
	<title>Public ATP Wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.atp-fivt.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Milana"/>
	<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Milana"/>
	<updated>2026-11-04T22:50:50Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5474</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5474"/>
		<updated>2026-11-03T14:06:41Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
&lt;br /&gt;
Этот курс создан для сильных технарей и экспертов, которые выросли из роли «лучших исполнителей», но поняли, что в одиночку больше не масштабируются.&lt;br /&gt;
 &lt;br /&gt;
Если вы внезапно стали тимлидом или готовитесь возглавить отдел, то эта программа поможет совершить переход от личного ремесла к системному управлению.&lt;br /&gt;
&lt;br /&gt;
Главное отличие курса — мы идем не от абстрактной теории менеджмента, а от реальных болей первого года руководства. &lt;br /&gt;
&lt;br /&gt;
Вместо пересказа учебников будем разбирать то, с чем вы столкнетесь завтра утром: как защитить откровенно провальный проект перед разъяренным заказчиком; что делать, когда разработчик увольняется за день до релиза; как ставить задачи тем, кто еще вчера был твоим приятелем по коду.&lt;br /&gt;
&lt;br /&gt;
Почему хороший специалист не всегда становится хорошим руководителем?&lt;br /&gt;
&lt;br /&gt;
Этот тезис является центральной осью всего обучения.&lt;br /&gt;
&lt;br /&gt;
Курс последовательно разбирает ловушку компетентности: то, что делало человека ценным как специалиста (умение быстро и качественно писать код, находить баги или строить архитектуру), начинает мешать ему как руководителю.&lt;br /&gt;
&lt;br /&gt;
Хороший руководитель достигает цели не своими руками, а организуя систему, где другие люди могут работать эффективно. Специалисту приходится отказаться от статуса «самого сильного звена» и перейти в позицию мультипликатора. Типичный барьер перехода — страх потери контроля и авторитета («если я перестану делать это сам, моя ценность упадет»). &lt;br /&gt;
Курс объясняет, что новая зона ответственности теперь измеряется не количеством закрытых задач в таск-трекере, а стабильностью системы, предсказуемостью сроков, ростом людей и способностью бизнеса зарабатывать деньги благодаря работе этой системы.&lt;br /&gt;
&lt;br /&gt;
Формат обучения:&lt;br /&gt;
&lt;br /&gt;
Обучение максимально ориентировано на практику. Теория занимает не более 20% времени, остальное — групповые кейсы, модерируемые дискуссии, ролевые игры и постоянная защита принимаемых решений. Это позволяет перенести полученные навыки в реальную рабочую среду уже на следующий день после модуля. &lt;br /&gt;
&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
==Регистрация на факультатив==&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
Чат курса&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http ://https%20://t.me/+C63lq1x3r-xiMzFi&lt;br /&gt;
&lt;br /&gt;
Удалите пробел после http перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5422</id>
		<title>Workshop on Software Development 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5422"/>
		<updated>2026-10-29T09:47:24Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Правила курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
Курс ориентирован на студентов, уже знакомых с основами Python, и нацелен на развитие практических навыков разработки полноценных приложений.&lt;br /&gt;
&lt;br /&gt;
==Цели курса==&lt;br /&gt;
&lt;br /&gt;
- Разработка приложения с графическим интерфейсом «от идеи до продукта»&lt;br /&gt;
&lt;br /&gt;
- Освоение объектно-ориентированного проектирования, типизации и тестирования&lt;br /&gt;
&lt;br /&gt;
- Работа с внешними API и интеграция ИИ-инструментов в разработку&lt;br /&gt;
&lt;br /&gt;
- Развитие навыков проектирования алгоритмов и архитектуры программ&lt;br /&gt;
&lt;br /&gt;
- Опыт командной работы и использования контроля версий (Git)&lt;br /&gt;
&lt;br /&gt;
==Формат обучения==&lt;br /&gt;
&lt;br /&gt;
- Проект на весь семестр, реализуемый индивидуально&lt;br /&gt;
&lt;br /&gt;
- Еженедельные промежуточные встречи и дедлайны для самоконтроля&lt;br /&gt;
&lt;br /&gt;
- Соревновательная составляющая&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Требования==&lt;br /&gt;
&lt;br /&gt;
- Код должен соответствовать стандартам качества&lt;br /&gt;
&lt;br /&gt;
- Обязательна документация использования ИИ-инструментов при разработке&lt;br /&gt;
&lt;br /&gt;
- Тематика проектов и выбор библиотек определяются условиями текущего года&lt;br /&gt;
&lt;br /&gt;
==Оценивание==&lt;br /&gt;
&lt;br /&gt;
Оценка выставляется по балльной шкале на основании:&lt;br /&gt;
&lt;br /&gt;
- реализации основного функционала&lt;br /&gt;
&lt;br /&gt;
- качества кода и архитектуры&lt;br /&gt;
&lt;br /&gt;
- наличия дополнительного функционала &lt;br /&gt;
&lt;br /&gt;
- участия в турнире&lt;br /&gt;
&lt;br /&gt;
Подробная шкала оценивания приводится в полных правилах курса.&lt;br /&gt;
&lt;br /&gt;
==Правила курса, шкала оценивания, ДЗ==&lt;br /&gt;
&lt;br /&gt;
Полные правила, шкала оценивания, задания и критерии оценивания на текущий учебный год предоставлены по [https://github.com/lajulienn/mipt-python-practice/tree/main ссылке]&lt;br /&gt;
&lt;br /&gt;
=Команда курса=&lt;br /&gt;
Преподаватель - Юлия Иванова  &lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
Вторник c 08.09&lt;br /&gt;
&lt;br /&gt;
15:30 - 16:55 лекция&lt;br /&gt;
&lt;br /&gt;
17:05 - 18:30 семинар&lt;br /&gt;
&lt;br /&gt;
Аудитория УПМ 206&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+H7-BlcDGvYQ5YTRi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Foundations_of_Programming_I_2026&amp;diff=5421</id>
		<title>Foundations of Programming I 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Foundations_of_Programming_I_2026&amp;diff=5421"/>
		<updated>2026-10-29T09:20:49Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Programming technologies=&lt;br /&gt;
&lt;br /&gt;
===Lector===&lt;br /&gt;
Lugovtcev Gleb&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
&lt;br /&gt;
Saturday&lt;br /&gt;
&lt;br /&gt;
Lecture 10:35-12:00, &lt;br /&gt;
&lt;br /&gt;
Seminar 12:10-13:35 &lt;br /&gt;
&lt;br /&gt;
Class 705 КПМ.&lt;br /&gt;
&lt;br /&gt;
==Chat==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+Zbzu3pwGnNsxNzBi Link on course chat] &lt;br /&gt;
&lt;br /&gt;
==Lecture topics==&lt;br /&gt;
&lt;br /&gt;
1. From Bits to a Working Computer&lt;br /&gt;
&lt;br /&gt;
2. CPU, Memory, and Storage&lt;br /&gt;
&lt;br /&gt;
3. Soldering and Digital Electronics&lt;br /&gt;
&lt;br /&gt;
4. Operating Systems and Abstraction&lt;br /&gt;
&lt;br /&gt;
5. Kernel, Memory, and Processes&lt;br /&gt;
&lt;br /&gt;
6. WSL and PowerShell&lt;br /&gt;
&lt;br /&gt;
7. Linux in VirtualBox&lt;br /&gt;
&lt;br /&gt;
8. Bash and Linux Power Tools&lt;br /&gt;
&lt;br /&gt;
9. Git: Snapshots, Branches, and Remotes&lt;br /&gt;
&lt;br /&gt;
10. AI-Assisted Coding and Python&lt;br /&gt;
&lt;br /&gt;
11. Containers and Docker&lt;br /&gt;
&lt;br /&gt;
12. CI/CD with GitHub Actions&lt;br /&gt;
&lt;br /&gt;
13. Roles in an IT Product Team&lt;br /&gt;
&lt;br /&gt;
14. Building a Personal IT Roadmap&lt;br /&gt;
&lt;br /&gt;
15. Final Project Presentation and Course Review&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5420</id>
		<title>Workshop on Software Development 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5420"/>
		<updated>2026-10-29T09:16:38Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Правила курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
Курс ориентирован на студентов, уже знакомых с основами Python, и нацелен на развитие практических навыков разработки полноценных приложений.&lt;br /&gt;
&lt;br /&gt;
==Цели курса==&lt;br /&gt;
&lt;br /&gt;
- Разработка приложения с графическим интерфейсом «от идеи до продукта»&lt;br /&gt;
&lt;br /&gt;
- Освоение объектно-ориентированного проектирования, типизации и тестирования&lt;br /&gt;
&lt;br /&gt;
- Работа с внешними API и интеграция ИИ-инструментов в разработку&lt;br /&gt;
&lt;br /&gt;
- Развитие навыков проектирования алгоритмов и архитектуры программ&lt;br /&gt;
&lt;br /&gt;
- Опыт командной работы и использования контроля версий (Git)&lt;br /&gt;
&lt;br /&gt;
==Формат обучения==&lt;br /&gt;
&lt;br /&gt;
- Проект на весь семестр, реализуемый индивидуально&lt;br /&gt;
&lt;br /&gt;
- Еженедельные промежуточные встречи и дедлайны для самоконтроля&lt;br /&gt;
&lt;br /&gt;
- Соревновательная составляющая&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Требования==&lt;br /&gt;
&lt;br /&gt;
- Код должен соответствовать стандартам качества&lt;br /&gt;
&lt;br /&gt;
- Обязательна документация использования ИИ-инструментов при разработке&lt;br /&gt;
&lt;br /&gt;
- Тематика проектов и выбор библиотек определяются условиями текущего года&lt;br /&gt;
&lt;br /&gt;
==Оценивание==&lt;br /&gt;
&lt;br /&gt;
Оценка выставляется по балльной шкале на основании:&lt;br /&gt;
&lt;br /&gt;
- реализации основного функционала&lt;br /&gt;
&lt;br /&gt;
- качества кода и архитектуры&lt;br /&gt;
&lt;br /&gt;
- наличия дополнительного функционала &lt;br /&gt;
&lt;br /&gt;
- участия в турнире&lt;br /&gt;
&lt;br /&gt;
Подробная шкала оценивания приводится в полных правилах курса.&lt;br /&gt;
&lt;br /&gt;
==Правила курса==&lt;br /&gt;
&lt;br /&gt;
Полные правила, шкала оценивания, задания и критерии оценивания на текущий учебный год предоставлены по [https://github.com/lajulienn/mipt-python-practice/tree/main ссылке]&lt;br /&gt;
&lt;br /&gt;
=Команда курса=&lt;br /&gt;
Преподаватель - Юлия Иванова  &lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
Вторник c 08.09&lt;br /&gt;
&lt;br /&gt;
15:30 - 16:55 лекция&lt;br /&gt;
&lt;br /&gt;
17:05 - 18:30 семинар&lt;br /&gt;
&lt;br /&gt;
Аудитория УПМ 206&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+H7-BlcDGvYQ5YTRi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5419</id>
		<title>Workshop on Software Development 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5419"/>
		<updated>2026-10-29T09:14:39Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
Курс ориентирован на студентов, уже знакомых с основами Python, и нацелен на развитие практических навыков разработки полноценных приложений.&lt;br /&gt;
&lt;br /&gt;
==Цели курса==&lt;br /&gt;
&lt;br /&gt;
- Разработка приложения с графическим интерфейсом «от идеи до продукта»&lt;br /&gt;
&lt;br /&gt;
- Освоение объектно-ориентированного проектирования, типизации и тестирования&lt;br /&gt;
&lt;br /&gt;
- Работа с внешними API и интеграция ИИ-инструментов в разработку&lt;br /&gt;
&lt;br /&gt;
- Развитие навыков проектирования алгоритмов и архитектуры программ&lt;br /&gt;
&lt;br /&gt;
- Опыт командной работы и использования контроля версий (Git)&lt;br /&gt;
&lt;br /&gt;
==Формат обучения==&lt;br /&gt;
&lt;br /&gt;
- Проект на весь семестр, реализуемый индивидуально&lt;br /&gt;
&lt;br /&gt;
- Еженедельные промежуточные встречи и дедлайны для самоконтроля&lt;br /&gt;
&lt;br /&gt;
- Соревновательная составляющая&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Требования==&lt;br /&gt;
&lt;br /&gt;
- Код должен соответствовать стандартам качества&lt;br /&gt;
&lt;br /&gt;
- Обязательна документация использования ИИ-инструментов при разработке&lt;br /&gt;
&lt;br /&gt;
- Тематика проектов и выбор библиотек определяются условиями текущего года&lt;br /&gt;
&lt;br /&gt;
==Оценивание==&lt;br /&gt;
&lt;br /&gt;
Оценка выставляется по балльной шкале на основании:&lt;br /&gt;
&lt;br /&gt;
- реализации основного функционала&lt;br /&gt;
&lt;br /&gt;
- качества кода и архитектуры&lt;br /&gt;
&lt;br /&gt;
- наличия дополнительного функционала &lt;br /&gt;
&lt;br /&gt;
- участия в турнире&lt;br /&gt;
&lt;br /&gt;
Подробная шкала оценивания приводится в полных правилах курса.&lt;br /&gt;
&lt;br /&gt;
==Правила курса==&lt;br /&gt;
&lt;br /&gt;
Полные правила, задания и критерии оценивания на текущий учебный год будут предоставлены студентам по ссылке в чате курса.&lt;br /&gt;
&lt;br /&gt;
=Команда курса=&lt;br /&gt;
Преподаватель - Юлия Иванова  &lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
Вторник c 08.09&lt;br /&gt;
&lt;br /&gt;
15:30 - 16:55 лекция&lt;br /&gt;
&lt;br /&gt;
17:05 - 18:30 семинар&lt;br /&gt;
&lt;br /&gt;
Аудитория УПМ 206&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+H7-BlcDGvYQ5YTRi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5418</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5418"/>
		<updated>2026-10-29T09:09:04Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Команда курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
Ассистент - Шеравган Махмудов&lt;br /&gt;
&lt;br /&gt;
==Shedule==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
Будет направлен на первом занятии&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
= Practical programming =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a strictly encapsulated financial accounting system. Instead of using&lt;br /&gt;
double or float types for monetary values, use BigDecimal. Write internal validation logic,&lt;br /&gt;
log operations using custom data structures, and implement transaction filtering methods.&lt;br /&gt;
&lt;br /&gt;
Task B: Design a dynamic pricing system. A mutable discount configuration object is&lt;br /&gt;
passed to the calculation method. Your goal is to protect the internal state of the system&lt;br /&gt;
from scenarios where an external thread alters the configuration fields midway through&lt;br /&gt;
the formula execution or passes NaN/Infinity using mathematical workarounds.&lt;br /&gt;
Additionally, you must eliminate any risk of memory leaks caused by hidden references to&lt;br /&gt;
parent objects within inner classes.&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Task A: Write a parser for large CSV/JSON logs using pure BufferedReader, strictly&lt;br /&gt;
enforcing the try-with-resources statement. The program must aggregate error metrics&lt;br /&gt;
and should never crash when encountering malformed lines; instead, it must gracefully&lt;br /&gt;
route them to a dedicated repository for corrupted data.&lt;br /&gt;
&lt;br /&gt;
Task B: Optimize the concatenation of millions of strings under a tight memory constraint&lt;br /&gt;
(e.g.,&lt;br /&gt;
-Xmx32m). A naive implementation using StringBuilder will still trigger an&lt;br /&gt;
OutOfMemoryError due to continuous reallocation and copying of the internal byte array&lt;br /&gt;
during expansion. You need to calculate the exact buffer capacity required, implement&lt;br /&gt;
array pooling (Array Pool), or write directly to a custom byte stream, while ensuring the&lt;br /&gt;
atomic restoration of the parser&#039;s state if a CustomHeavyException occurs.&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a fixed-size LRU (Least Recently Used) cache backed by a&lt;br /&gt;
LinkedHashMap. Integrate it with the open-source Apache Commons library to&lt;br /&gt;
automatically track and count element access frequencies.&lt;br /&gt;
&lt;br /&gt;
Task B: Create a data structure where the key in a HashMap is an object containing an&lt;br /&gt;
internal array or collection. Purposefully break the hashCode() contract to force a severe&lt;br /&gt;
collision scenario where all elements end up in a single bucket. You are required to force&lt;br /&gt;
the HashMap to restructure the bucket into a Red-Black tree, but with an added constraint: the key objects must not implement the Comparable interface. Analyze how Java resolves collisions via System.identityHashCode() and its internal class comparison mechanisms, and write a wrapper that guarantees constant lookup time O(1) even under&lt;br /&gt;
an intentional HashDOS attack.&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, Functional&lt;br /&gt;
Programming, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
Task A: Write a generic repository GenericRepository&amp;lt;T, ID&amp;gt; that supports standard&lt;br /&gt;
CRUD operations. Apply advanced PECS rules (? extends and ? super) to implement&lt;br /&gt;
methods for bulk saving and data fetching.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a strongly-typed event bus (EventBus). Due to Type Erasure, it is&lt;br /&gt;
impossible to distinguish List&amp;lt;String&amp;gt; from List&amp;lt;Integer&amp;gt; at runtime using standard&lt;br /&gt;
approaches. If a component subscribes to List&amp;lt;String&amp;gt;&lt;br /&gt;
, the bus might inadvertently&lt;br /&gt;
dispatch a List&amp;lt;Integer&amp;gt; to it, resulting in a runtime ClassCastException crash. You must&lt;br /&gt;
bypass type erasure by applying the Super Type Tokens pattern to retain full generic type&lt;br /&gt;
information at runtime and guarantee absolute type safety.&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
Task A: Leverage the Stream API to build a counterparty credit scoring engine. Utilize&lt;br /&gt;
predicate composition (and(), or()) and design a custom Collector capable of calculating&lt;br /&gt;
the median, mean, and variance of numerical metrics simultaneously in a single pass over&lt;br /&gt;
the stream.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a heavy data-processing pipeline using parallelStream(), where the tasks&lt;br /&gt;
are heavily I/O bound. Since parallel streams use the shared ForkJoinPool.commonPool()&lt;br /&gt;
by default, a naive implementation will choke the entire application&#039;s thread pool. You&lt;br /&gt;
must resolve this issue by forcing the parallel stream to execute inside an isolated,&lt;br /&gt;
custom ForkJoinPool with a strictly capped thread count, leveraging the unique&lt;br /&gt;
task-execution mechanics of FJP.&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Task A: Implement the Producer-Consumer pattern using low-level wait() / notifyAll()&lt;br /&gt;
mechanisms on top of a ring array. Integrate proper handling for thread interruption&lt;br /&gt;
signals via Thread.interrupt().&lt;br /&gt;
&lt;br /&gt;
Task B: Write a high-throughput thread-safe counter. Standard synchronized blocks and&lt;br /&gt;
even AtomicLong counters will cause severe performance degradation under massive&lt;br /&gt;
thread contention due to the Cache Line Bouncing effect (threads constantly invalidating&lt;br /&gt;
each other&#039;s CPU cache). You must engineer a solution based on distributed memory&lt;br /&gt;
cells (similar to the internal design of the open-source LongAdder class), ensuring proper&lt;br /&gt;
memory alignment (Padding) to prevent False Sharing of cache lines.&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Task A: Write a distributed file search engine that coordinates and aggregates results&lt;br /&gt;
across multiple search phases using an ExecutorService (CompletableFuture) alongside&lt;br /&gt;
a Phaser or CyclicBarrier.&lt;br /&gt;
&lt;br /&gt;
Task B: Build a thread-safe, non-blocking cache on top of a ConcurrentHashMap.&lt;br /&gt;
Threads must check for the presence of a key: if missing, they must compute the value&lt;br /&gt;
(simulating a heavy 5-second network request) and store it in the map. If written naively,&lt;br /&gt;
100 threads hitting the same missing key simultaneously will trigger the heavy network&lt;br /&gt;
call 100 times. You must achieve atomic computation using computeIfAbsent(), with a&lt;br /&gt;
strict caveat: no heavy blocking operations can be performed directly inside the&lt;br /&gt;
computation function, as doing so would lock the entire map bucket for other unrelated&lt;br /&gt;
keys. Elegantly decouple this by combining ConcurrentHashMap and CompletableFuture.&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Task A: Write a utility that interacts with Off-Heap memory via ByteBuffer.allocateDirect()&lt;br /&gt;
to cache massive image arrays or binary files completely bypassing the Garbage&lt;br /&gt;
Collector.&lt;br /&gt;
&lt;br /&gt;
Task B: Intentionally inject a hidden memory leak that standard linters and AI assistants&lt;br /&gt;
fail to catch, utilizing ThreadLocal variables within an application thread pool. When a web&lt;br /&gt;
request completes, the thread returns to the pool, but the data inside ThreadLocal&lt;br /&gt;
remains bound to the thread indefinitely, quietly bleeding the Heap via the&lt;br /&gt;
ContextClassLoader. You must diagnose this leak using JProfiler or VisualVM, write an&lt;br /&gt;
integration test that fails when a leak is present, and implement automated cleanup using&lt;br /&gt;
a custom interceptor.&lt;br /&gt;
&lt;br /&gt;
Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Task A: Construct a multi-module project where one dedicated sub-module generates&lt;br /&gt;
source code (e.g., generating DTOs from an OpenAPI or Protobuf schema), and other&lt;br /&gt;
sub-modules reference and consume this generated code. Configure the testing plugins&lt;br /&gt;
(JaCoCo) with a strict threshold: the build must fail if total test coverage drops below 80%.&lt;br /&gt;
&lt;br /&gt;
Task B: Introduce a third-party open-source library that carries a transitive (hidden)&lt;br /&gt;
dependency conflicting with Spring Boot. The project will compile perfectly fine but crash&lt;br /&gt;
at runtime with a LinkageError or ClassCircularityError. You must manually trace the&lt;br /&gt;
dependency graph using mvn dependency:tree, isolate the conflicting artifact, and resolve&lt;br /&gt;
it using fine-tuned &amp;lt;exclusions&amp;gt; and &amp;lt;dependencyManagement&amp;gt; blocks. Additionally,&lt;br /&gt;
write an Enforcer Plugin rule to programmatically block banned transitive dependencies.&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a custom BeanPostProcessor that scans for beans decorated with a&lt;br /&gt;
custom @InjectCrypto annotation. It must automatically initialize cryptographic keys inside&lt;br /&gt;
them by pulling the payloads from an external, secure vault file.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a business operation logging system using Spring AOP. The aspect&lt;br /&gt;
intercepts methods annotated with @LogMe. Within a service, a method public void&lt;br /&gt;
process() invokes this.internalLog(), which is also marked with @LogMe. Due to Spring&#039;s&lt;br /&gt;
proxy-based architecture, this internal call (self-invocation) bypasses the proxy, meaning&lt;br /&gt;
the aspect will fail to trigger. You must reproduce this issue and fix it using three&lt;br /&gt;
advanced techniques of your choice (without duplicating code): using ApplicationContext&lt;br /&gt;
injection, AopContext.currentProxy(), or by migrating to AspectJ (Compile-Time /&lt;br /&gt;
Load-Time Weaving).&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Task A: Model entities for an e-commerce platform. Implement advanced pagination and&lt;br /&gt;
dynamic multi-criteria order filtering across 10+ concurrent parameters using JPA&lt;br /&gt;
Specification or Querydsl.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a bank transfer method decorated with @Transactional. Artificially&lt;br /&gt;
introduce massive concurrency (e.g., 1,000 parallel requests hitting the same account&lt;br /&gt;
simultaneously), forcing the system to encounter a DeadlockLoserDataAccessException&lt;br /&gt;
or a Lost Update anomaly. Your task is to resolve this race condition at the database tier&lt;br /&gt;
using Optimistic Locking (with explicit handling and retries for&lt;br /&gt;
ObjectOptimisticLockingFailureException) or Pessimistic Locking (SELECT FOR&lt;br /&gt;
UPDATE), clearly justifying the performance trade-offs of each approach.&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot 3.x&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a ticket-booking REST API. Implement complex cross-field validation&lt;br /&gt;
rules (e.g., return dates cannot precede departure dates, and ticket types must match the&lt;br /&gt;
passenger&#039;s age bracket) by writing a custom ConstraintValidator.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement an endpoint for uploading and stream-processing massive binary files&lt;br /&gt;
exceeding 5 GB. If you attempt to capture the file payload in your controller as a byte[] or&lt;br /&gt;
via standard MultipartFile bindings, the server will instantly crash with an OutOfMemoryError as it attempts to buffer the entire payload into RAM. You must build a&lt;br /&gt;
streaming controller that processes incoming data chunks on the fly, pipes the byte&lt;br /&gt;
stream directly into a persistent storage layer, and broadcasts upload progress in&lt;br /&gt;
real-time using Server-Sent Events (SSE).&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
Task A: Build a complete stateless Auth Server using Spring Security. Issue two tokens: a&lt;br /&gt;
short-lived Access Token (kept in memory) and a long-lived Refresh Token delivered via&lt;br /&gt;
an HttpOnly cookie with robust XSS/CSRF mitigations.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a Dockerfile to package your Spring Boot application. Running a&lt;br /&gt;
containerized application under the root user introduces a critical security vulnerability.&lt;br /&gt;
Furthermore, a naive file structure will cause Docker to re-download all Maven&lt;br /&gt;
dependencies on every single line-of-code modification. You must write a secure, highly&lt;br /&gt;
optimized image: enforce multi-stage builds, switch to a non-privileged user (USER&lt;br /&gt;
appuser), leverage Distroless or Alpine base runtimes, and split your application layout&lt;br /&gt;
into discrete image layers (dependencies, resources, and class files) to maximize layer&lt;br /&gt;
caching.&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
Task A: Design a GitHub Actions or GitLab CI pipeline that automatically triggers on&lt;br /&gt;
every push to the main branch. It must run the test suites, compile the Docker image,&lt;br /&gt;
scan it for vulnerabilities using an open-source scanner (like Trivy or AquaSecurity), and&lt;br /&gt;
push the certified image to Docker Hub.&lt;br /&gt;
&lt;br /&gt;
Task B: Deploy your application to a remote cloud server behind an Nginx reverse proxy,&lt;br /&gt;
ensuring a Zero-Downtime Deployment (Blue-Green or Rolling) strategy. In a standard&lt;br /&gt;
setup, dropping the old container before launching the new one introduces a ~15-second&lt;br /&gt;
window where clients experience a 502 Bad Gateway error. You must configure your&lt;br /&gt;
deployment pipeline, Docker-Compose, and Nginx configurations so that Nginx reroutes&lt;br /&gt;
external traffic to the new container only after the Spring Boot application boot cycle is&lt;br /&gt;
fully complete and its Actuator endpoint /actuator/health returns UP. Additionally, ensure&lt;br /&gt;
the old container executes a Graceful Shutdown to fulfill active user reques&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5417</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5417"/>
		<updated>2026-10-29T09:08:11Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
==Shedule==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
Будет направлен на первом занятии&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
= Practical programming =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a strictly encapsulated financial accounting system. Instead of using&lt;br /&gt;
double or float types for monetary values, use BigDecimal. Write internal validation logic,&lt;br /&gt;
log operations using custom data structures, and implement transaction filtering methods.&lt;br /&gt;
&lt;br /&gt;
Task B: Design a dynamic pricing system. A mutable discount configuration object is&lt;br /&gt;
passed to the calculation method. Your goal is to protect the internal state of the system&lt;br /&gt;
from scenarios where an external thread alters the configuration fields midway through&lt;br /&gt;
the formula execution or passes NaN/Infinity using mathematical workarounds.&lt;br /&gt;
Additionally, you must eliminate any risk of memory leaks caused by hidden references to&lt;br /&gt;
parent objects within inner classes.&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Task A: Write a parser for large CSV/JSON logs using pure BufferedReader, strictly&lt;br /&gt;
enforcing the try-with-resources statement. The program must aggregate error metrics&lt;br /&gt;
and should never crash when encountering malformed lines; instead, it must gracefully&lt;br /&gt;
route them to a dedicated repository for corrupted data.&lt;br /&gt;
&lt;br /&gt;
Task B: Optimize the concatenation of millions of strings under a tight memory constraint&lt;br /&gt;
(e.g.,&lt;br /&gt;
-Xmx32m). A naive implementation using StringBuilder will still trigger an&lt;br /&gt;
OutOfMemoryError due to continuous reallocation and copying of the internal byte array&lt;br /&gt;
during expansion. You need to calculate the exact buffer capacity required, implement&lt;br /&gt;
array pooling (Array Pool), or write directly to a custom byte stream, while ensuring the&lt;br /&gt;
atomic restoration of the parser&#039;s state if a CustomHeavyException occurs.&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a fixed-size LRU (Least Recently Used) cache backed by a&lt;br /&gt;
LinkedHashMap. Integrate it with the open-source Apache Commons library to&lt;br /&gt;
automatically track and count element access frequencies.&lt;br /&gt;
&lt;br /&gt;
Task B: Create a data structure where the key in a HashMap is an object containing an&lt;br /&gt;
internal array or collection. Purposefully break the hashCode() contract to force a severe&lt;br /&gt;
collision scenario where all elements end up in a single bucket. You are required to force&lt;br /&gt;
the HashMap to restructure the bucket into a Red-Black tree, but with an added constraint: the key objects must not implement the Comparable interface. Analyze how Java resolves collisions via System.identityHashCode() and its internal class comparison mechanisms, and write a wrapper that guarantees constant lookup time O(1) even under&lt;br /&gt;
an intentional HashDOS attack.&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, Functional&lt;br /&gt;
Programming, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
Task A: Write a generic repository GenericRepository&amp;lt;T, ID&amp;gt; that supports standard&lt;br /&gt;
CRUD operations. Apply advanced PECS rules (? extends and ? super) to implement&lt;br /&gt;
methods for bulk saving and data fetching.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a strongly-typed event bus (EventBus). Due to Type Erasure, it is&lt;br /&gt;
impossible to distinguish List&amp;lt;String&amp;gt; from List&amp;lt;Integer&amp;gt; at runtime using standard&lt;br /&gt;
approaches. If a component subscribes to List&amp;lt;String&amp;gt;&lt;br /&gt;
, the bus might inadvertently&lt;br /&gt;
dispatch a List&amp;lt;Integer&amp;gt; to it, resulting in a runtime ClassCastException crash. You must&lt;br /&gt;
bypass type erasure by applying the Super Type Tokens pattern to retain full generic type&lt;br /&gt;
information at runtime and guarantee absolute type safety.&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
Task A: Leverage the Stream API to build a counterparty credit scoring engine. Utilize&lt;br /&gt;
predicate composition (and(), or()) and design a custom Collector capable of calculating&lt;br /&gt;
the median, mean, and variance of numerical metrics simultaneously in a single pass over&lt;br /&gt;
the stream.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a heavy data-processing pipeline using parallelStream(), where the tasks&lt;br /&gt;
are heavily I/O bound. Since parallel streams use the shared ForkJoinPool.commonPool()&lt;br /&gt;
by default, a naive implementation will choke the entire application&#039;s thread pool. You&lt;br /&gt;
must resolve this issue by forcing the parallel stream to execute inside an isolated,&lt;br /&gt;
custom ForkJoinPool with a strictly capped thread count, leveraging the unique&lt;br /&gt;
task-execution mechanics of FJP.&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Task A: Implement the Producer-Consumer pattern using low-level wait() / notifyAll()&lt;br /&gt;
mechanisms on top of a ring array. Integrate proper handling for thread interruption&lt;br /&gt;
signals via Thread.interrupt().&lt;br /&gt;
&lt;br /&gt;
Task B: Write a high-throughput thread-safe counter. Standard synchronized blocks and&lt;br /&gt;
even AtomicLong counters will cause severe performance degradation under massive&lt;br /&gt;
thread contention due to the Cache Line Bouncing effect (threads constantly invalidating&lt;br /&gt;
each other&#039;s CPU cache). You must engineer a solution based on distributed memory&lt;br /&gt;
cells (similar to the internal design of the open-source LongAdder class), ensuring proper&lt;br /&gt;
memory alignment (Padding) to prevent False Sharing of cache lines.&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Task A: Write a distributed file search engine that coordinates and aggregates results&lt;br /&gt;
across multiple search phases using an ExecutorService (CompletableFuture) alongside&lt;br /&gt;
a Phaser or CyclicBarrier.&lt;br /&gt;
&lt;br /&gt;
Task B: Build a thread-safe, non-blocking cache on top of a ConcurrentHashMap.&lt;br /&gt;
Threads must check for the presence of a key: if missing, they must compute the value&lt;br /&gt;
(simulating a heavy 5-second network request) and store it in the map. If written naively,&lt;br /&gt;
100 threads hitting the same missing key simultaneously will trigger the heavy network&lt;br /&gt;
call 100 times. You must achieve atomic computation using computeIfAbsent(), with a&lt;br /&gt;
strict caveat: no heavy blocking operations can be performed directly inside the&lt;br /&gt;
computation function, as doing so would lock the entire map bucket for other unrelated&lt;br /&gt;
keys. Elegantly decouple this by combining ConcurrentHashMap and CompletableFuture.&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Task A: Write a utility that interacts with Off-Heap memory via ByteBuffer.allocateDirect()&lt;br /&gt;
to cache massive image arrays or binary files completely bypassing the Garbage&lt;br /&gt;
Collector.&lt;br /&gt;
&lt;br /&gt;
Task B: Intentionally inject a hidden memory leak that standard linters and AI assistants&lt;br /&gt;
fail to catch, utilizing ThreadLocal variables within an application thread pool. When a web&lt;br /&gt;
request completes, the thread returns to the pool, but the data inside ThreadLocal&lt;br /&gt;
remains bound to the thread indefinitely, quietly bleeding the Heap via the&lt;br /&gt;
ContextClassLoader. You must diagnose this leak using JProfiler or VisualVM, write an&lt;br /&gt;
integration test that fails when a leak is present, and implement automated cleanup using&lt;br /&gt;
a custom interceptor.&lt;br /&gt;
&lt;br /&gt;
Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Task A: Construct a multi-module project where one dedicated sub-module generates&lt;br /&gt;
source code (e.g., generating DTOs from an OpenAPI or Protobuf schema), and other&lt;br /&gt;
sub-modules reference and consume this generated code. Configure the testing plugins&lt;br /&gt;
(JaCoCo) with a strict threshold: the build must fail if total test coverage drops below 80%.&lt;br /&gt;
&lt;br /&gt;
Task B: Introduce a third-party open-source library that carries a transitive (hidden)&lt;br /&gt;
dependency conflicting with Spring Boot. The project will compile perfectly fine but crash&lt;br /&gt;
at runtime with a LinkageError or ClassCircularityError. You must manually trace the&lt;br /&gt;
dependency graph using mvn dependency:tree, isolate the conflicting artifact, and resolve&lt;br /&gt;
it using fine-tuned &amp;lt;exclusions&amp;gt; and &amp;lt;dependencyManagement&amp;gt; blocks. Additionally,&lt;br /&gt;
write an Enforcer Plugin rule to programmatically block banned transitive dependencies.&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a custom BeanPostProcessor that scans for beans decorated with a&lt;br /&gt;
custom @InjectCrypto annotation. It must automatically initialize cryptographic keys inside&lt;br /&gt;
them by pulling the payloads from an external, secure vault file.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a business operation logging system using Spring AOP. The aspect&lt;br /&gt;
intercepts methods annotated with @LogMe. Within a service, a method public void&lt;br /&gt;
process() invokes this.internalLog(), which is also marked with @LogMe. Due to Spring&#039;s&lt;br /&gt;
proxy-based architecture, this internal call (self-invocation) bypasses the proxy, meaning&lt;br /&gt;
the aspect will fail to trigger. You must reproduce this issue and fix it using three&lt;br /&gt;
advanced techniques of your choice (without duplicating code): using ApplicationContext&lt;br /&gt;
injection, AopContext.currentProxy(), or by migrating to AspectJ (Compile-Time /&lt;br /&gt;
Load-Time Weaving).&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Task A: Model entities for an e-commerce platform. Implement advanced pagination and&lt;br /&gt;
dynamic multi-criteria order filtering across 10+ concurrent parameters using JPA&lt;br /&gt;
Specification or Querydsl.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a bank transfer method decorated with @Transactional. Artificially&lt;br /&gt;
introduce massive concurrency (e.g., 1,000 parallel requests hitting the same account&lt;br /&gt;
simultaneously), forcing the system to encounter a DeadlockLoserDataAccessException&lt;br /&gt;
or a Lost Update anomaly. Your task is to resolve this race condition at the database tier&lt;br /&gt;
using Optimistic Locking (with explicit handling and retries for&lt;br /&gt;
ObjectOptimisticLockingFailureException) or Pessimistic Locking (SELECT FOR&lt;br /&gt;
UPDATE), clearly justifying the performance trade-offs of each approach.&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot 3.x&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a ticket-booking REST API. Implement complex cross-field validation&lt;br /&gt;
rules (e.g., return dates cannot precede departure dates, and ticket types must match the&lt;br /&gt;
passenger&#039;s age bracket) by writing a custom ConstraintValidator.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement an endpoint for uploading and stream-processing massive binary files&lt;br /&gt;
exceeding 5 GB. If you attempt to capture the file payload in your controller as a byte[] or&lt;br /&gt;
via standard MultipartFile bindings, the server will instantly crash with an OutOfMemoryError as it attempts to buffer the entire payload into RAM. You must build a&lt;br /&gt;
streaming controller that processes incoming data chunks on the fly, pipes the byte&lt;br /&gt;
stream directly into a persistent storage layer, and broadcasts upload progress in&lt;br /&gt;
real-time using Server-Sent Events (SSE).&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
Task A: Build a complete stateless Auth Server using Spring Security. Issue two tokens: a&lt;br /&gt;
short-lived Access Token (kept in memory) and a long-lived Refresh Token delivered via&lt;br /&gt;
an HttpOnly cookie with robust XSS/CSRF mitigations.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a Dockerfile to package your Spring Boot application. Running a&lt;br /&gt;
containerized application under the root user introduces a critical security vulnerability.&lt;br /&gt;
Furthermore, a naive file structure will cause Docker to re-download all Maven&lt;br /&gt;
dependencies on every single line-of-code modification. You must write a secure, highly&lt;br /&gt;
optimized image: enforce multi-stage builds, switch to a non-privileged user (USER&lt;br /&gt;
appuser), leverage Distroless or Alpine base runtimes, and split your application layout&lt;br /&gt;
into discrete image layers (dependencies, resources, and class files) to maximize layer&lt;br /&gt;
caching.&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
Task A: Design a GitHub Actions or GitLab CI pipeline that automatically triggers on&lt;br /&gt;
every push to the main branch. It must run the test suites, compile the Docker image,&lt;br /&gt;
scan it for vulnerabilities using an open-source scanner (like Trivy or AquaSecurity), and&lt;br /&gt;
push the certified image to Docker Hub.&lt;br /&gt;
&lt;br /&gt;
Task B: Deploy your application to a remote cloud server behind an Nginx reverse proxy,&lt;br /&gt;
ensuring a Zero-Downtime Deployment (Blue-Green or Rolling) strategy. In a standard&lt;br /&gt;
setup, dropping the old container before launching the new one introduces a ~15-second&lt;br /&gt;
window where clients experience a 502 Bad Gateway error. You must configure your&lt;br /&gt;
deployment pipeline, Docker-Compose, and Nginx configurations so that Nginx reroutes&lt;br /&gt;
external traffic to the new container only after the Spring Boot application boot cycle is&lt;br /&gt;
fully complete and its Actuator endpoint /actuator/health returns UP. Additionally, ensure&lt;br /&gt;
the old container executes a Graceful Shutdown to fulfill active user reques&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5416</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5416"/>
		<updated>2026-10-29T09:07:47Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
Будет направлен на первом занятии&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
= Practical programming =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a strictly encapsulated financial accounting system. Instead of using&lt;br /&gt;
double or float types for monetary values, use BigDecimal. Write internal validation logic,&lt;br /&gt;
log operations using custom data structures, and implement transaction filtering methods.&lt;br /&gt;
&lt;br /&gt;
Task B: Design a dynamic pricing system. A mutable discount configuration object is&lt;br /&gt;
passed to the calculation method. Your goal is to protect the internal state of the system&lt;br /&gt;
from scenarios where an external thread alters the configuration fields midway through&lt;br /&gt;
the formula execution or passes NaN/Infinity using mathematical workarounds.&lt;br /&gt;
Additionally, you must eliminate any risk of memory leaks caused by hidden references to&lt;br /&gt;
parent objects within inner classes.&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Task A: Write a parser for large CSV/JSON logs using pure BufferedReader, strictly&lt;br /&gt;
enforcing the try-with-resources statement. The program must aggregate error metrics&lt;br /&gt;
and should never crash when encountering malformed lines; instead, it must gracefully&lt;br /&gt;
route them to a dedicated repository for corrupted data.&lt;br /&gt;
&lt;br /&gt;
Task B: Optimize the concatenation of millions of strings under a tight memory constraint&lt;br /&gt;
(e.g.,&lt;br /&gt;
-Xmx32m). A naive implementation using StringBuilder will still trigger an&lt;br /&gt;
OutOfMemoryError due to continuous reallocation and copying of the internal byte array&lt;br /&gt;
during expansion. You need to calculate the exact buffer capacity required, implement&lt;br /&gt;
array pooling (Array Pool), or write directly to a custom byte stream, while ensuring the&lt;br /&gt;
atomic restoration of the parser&#039;s state if a CustomHeavyException occurs.&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a fixed-size LRU (Least Recently Used) cache backed by a&lt;br /&gt;
LinkedHashMap. Integrate it with the open-source Apache Commons library to&lt;br /&gt;
automatically track and count element access frequencies.&lt;br /&gt;
&lt;br /&gt;
Task B: Create a data structure where the key in a HashMap is an object containing an&lt;br /&gt;
internal array or collection. Purposefully break the hashCode() contract to force a severe&lt;br /&gt;
collision scenario where all elements end up in a single bucket. You are required to force&lt;br /&gt;
the HashMap to restructure the bucket into a Red-Black tree, but with an added constraint: the key objects must not implement the Comparable interface. Analyze how Java resolves collisions via System.identityHashCode() and its internal class comparison mechanisms, and write a wrapper that guarantees constant lookup time O(1) even under&lt;br /&gt;
an intentional HashDOS attack.&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, Functional&lt;br /&gt;
Programming, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
Task A: Write a generic repository GenericRepository&amp;lt;T, ID&amp;gt; that supports standard&lt;br /&gt;
CRUD operations. Apply advanced PECS rules (? extends and ? super) to implement&lt;br /&gt;
methods for bulk saving and data fetching.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a strongly-typed event bus (EventBus). Due to Type Erasure, it is&lt;br /&gt;
impossible to distinguish List&amp;lt;String&amp;gt; from List&amp;lt;Integer&amp;gt; at runtime using standard&lt;br /&gt;
approaches. If a component subscribes to List&amp;lt;String&amp;gt;&lt;br /&gt;
, the bus might inadvertently&lt;br /&gt;
dispatch a List&amp;lt;Integer&amp;gt; to it, resulting in a runtime ClassCastException crash. You must&lt;br /&gt;
bypass type erasure by applying the Super Type Tokens pattern to retain full generic type&lt;br /&gt;
information at runtime and guarantee absolute type safety.&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
Task A: Leverage the Stream API to build a counterparty credit scoring engine. Utilize&lt;br /&gt;
predicate composition (and(), or()) and design a custom Collector capable of calculating&lt;br /&gt;
the median, mean, and variance of numerical metrics simultaneously in a single pass over&lt;br /&gt;
the stream.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a heavy data-processing pipeline using parallelStream(), where the tasks&lt;br /&gt;
are heavily I/O bound. Since parallel streams use the shared ForkJoinPool.commonPool()&lt;br /&gt;
by default, a naive implementation will choke the entire application&#039;s thread pool. You&lt;br /&gt;
must resolve this issue by forcing the parallel stream to execute inside an isolated,&lt;br /&gt;
custom ForkJoinPool with a strictly capped thread count, leveraging the unique&lt;br /&gt;
task-execution mechanics of FJP.&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Task A: Implement the Producer-Consumer pattern using low-level wait() / notifyAll()&lt;br /&gt;
mechanisms on top of a ring array. Integrate proper handling for thread interruption&lt;br /&gt;
signals via Thread.interrupt().&lt;br /&gt;
&lt;br /&gt;
Task B: Write a high-throughput thread-safe counter. Standard synchronized blocks and&lt;br /&gt;
even AtomicLong counters will cause severe performance degradation under massive&lt;br /&gt;
thread contention due to the Cache Line Bouncing effect (threads constantly invalidating&lt;br /&gt;
each other&#039;s CPU cache). You must engineer a solution based on distributed memory&lt;br /&gt;
cells (similar to the internal design of the open-source LongAdder class), ensuring proper&lt;br /&gt;
memory alignment (Padding) to prevent False Sharing of cache lines.&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Task A: Write a distributed file search engine that coordinates and aggregates results&lt;br /&gt;
across multiple search phases using an ExecutorService (CompletableFuture) alongside&lt;br /&gt;
a Phaser or CyclicBarrier.&lt;br /&gt;
&lt;br /&gt;
Task B: Build a thread-safe, non-blocking cache on top of a ConcurrentHashMap.&lt;br /&gt;
Threads must check for the presence of a key: if missing, they must compute the value&lt;br /&gt;
(simulating a heavy 5-second network request) and store it in the map. If written naively,&lt;br /&gt;
100 threads hitting the same missing key simultaneously will trigger the heavy network&lt;br /&gt;
call 100 times. You must achieve atomic computation using computeIfAbsent(), with a&lt;br /&gt;
strict caveat: no heavy blocking operations can be performed directly inside the&lt;br /&gt;
computation function, as doing so would lock the entire map bucket for other unrelated&lt;br /&gt;
keys. Elegantly decouple this by combining ConcurrentHashMap and CompletableFuture.&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Task A: Write a utility that interacts with Off-Heap memory via ByteBuffer.allocateDirect()&lt;br /&gt;
to cache massive image arrays or binary files completely bypassing the Garbage&lt;br /&gt;
Collector.&lt;br /&gt;
&lt;br /&gt;
Task B: Intentionally inject a hidden memory leak that standard linters and AI assistants&lt;br /&gt;
fail to catch, utilizing ThreadLocal variables within an application thread pool. When a web&lt;br /&gt;
request completes, the thread returns to the pool, but the data inside ThreadLocal&lt;br /&gt;
remains bound to the thread indefinitely, quietly bleeding the Heap via the&lt;br /&gt;
ContextClassLoader. You must diagnose this leak using JProfiler or VisualVM, write an&lt;br /&gt;
integration test that fails when a leak is present, and implement automated cleanup using&lt;br /&gt;
a custom interceptor.&lt;br /&gt;
&lt;br /&gt;
Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Task A: Construct a multi-module project where one dedicated sub-module generates&lt;br /&gt;
source code (e.g., generating DTOs from an OpenAPI or Protobuf schema), and other&lt;br /&gt;
sub-modules reference and consume this generated code. Configure the testing plugins&lt;br /&gt;
(JaCoCo) with a strict threshold: the build must fail if total test coverage drops below 80%.&lt;br /&gt;
&lt;br /&gt;
Task B: Introduce a third-party open-source library that carries a transitive (hidden)&lt;br /&gt;
dependency conflicting with Spring Boot. The project will compile perfectly fine but crash&lt;br /&gt;
at runtime with a LinkageError or ClassCircularityError. You must manually trace the&lt;br /&gt;
dependency graph using mvn dependency:tree, isolate the conflicting artifact, and resolve&lt;br /&gt;
it using fine-tuned &amp;lt;exclusions&amp;gt; and &amp;lt;dependencyManagement&amp;gt; blocks. Additionally,&lt;br /&gt;
write an Enforcer Plugin rule to programmatically block banned transitive dependencies.&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a custom BeanPostProcessor that scans for beans decorated with a&lt;br /&gt;
custom @InjectCrypto annotation. It must automatically initialize cryptographic keys inside&lt;br /&gt;
them by pulling the payloads from an external, secure vault file.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a business operation logging system using Spring AOP. The aspect&lt;br /&gt;
intercepts methods annotated with @LogMe. Within a service, a method public void&lt;br /&gt;
process() invokes this.internalLog(), which is also marked with @LogMe. Due to Spring&#039;s&lt;br /&gt;
proxy-based architecture, this internal call (self-invocation) bypasses the proxy, meaning&lt;br /&gt;
the aspect will fail to trigger. You must reproduce this issue and fix it using three&lt;br /&gt;
advanced techniques of your choice (without duplicating code): using ApplicationContext&lt;br /&gt;
injection, AopContext.currentProxy(), or by migrating to AspectJ (Compile-Time /&lt;br /&gt;
Load-Time Weaving).&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Task A: Model entities for an e-commerce platform. Implement advanced pagination and&lt;br /&gt;
dynamic multi-criteria order filtering across 10+ concurrent parameters using JPA&lt;br /&gt;
Specification or Querydsl.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a bank transfer method decorated with @Transactional. Artificially&lt;br /&gt;
introduce massive concurrency (e.g., 1,000 parallel requests hitting the same account&lt;br /&gt;
simultaneously), forcing the system to encounter a DeadlockLoserDataAccessException&lt;br /&gt;
or a Lost Update anomaly. Your task is to resolve this race condition at the database tier&lt;br /&gt;
using Optimistic Locking (with explicit handling and retries for&lt;br /&gt;
ObjectOptimisticLockingFailureException) or Pessimistic Locking (SELECT FOR&lt;br /&gt;
UPDATE), clearly justifying the performance trade-offs of each approach.&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot 3.x&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a ticket-booking REST API. Implement complex cross-field validation&lt;br /&gt;
rules (e.g., return dates cannot precede departure dates, and ticket types must match the&lt;br /&gt;
passenger&#039;s age bracket) by writing a custom ConstraintValidator.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement an endpoint for uploading and stream-processing massive binary files&lt;br /&gt;
exceeding 5 GB. If you attempt to capture the file payload in your controller as a byte[] or&lt;br /&gt;
via standard MultipartFile bindings, the server will instantly crash with an OutOfMemoryError as it attempts to buffer the entire payload into RAM. You must build a&lt;br /&gt;
streaming controller that processes incoming data chunks on the fly, pipes the byte&lt;br /&gt;
stream directly into a persistent storage layer, and broadcasts upload progress in&lt;br /&gt;
real-time using Server-Sent Events (SSE).&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
Task A: Build a complete stateless Auth Server using Spring Security. Issue two tokens: a&lt;br /&gt;
short-lived Access Token (kept in memory) and a long-lived Refresh Token delivered via&lt;br /&gt;
an HttpOnly cookie with robust XSS/CSRF mitigations.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a Dockerfile to package your Spring Boot application. Running a&lt;br /&gt;
containerized application under the root user introduces a critical security vulnerability.&lt;br /&gt;
Furthermore, a naive file structure will cause Docker to re-download all Maven&lt;br /&gt;
dependencies on every single line-of-code modification. You must write a secure, highly&lt;br /&gt;
optimized image: enforce multi-stage builds, switch to a non-privileged user (USER&lt;br /&gt;
appuser), leverage Distroless or Alpine base runtimes, and split your application layout&lt;br /&gt;
into discrete image layers (dependencies, resources, and class files) to maximize layer&lt;br /&gt;
caching.&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
Task A: Design a GitHub Actions or GitLab CI pipeline that automatically triggers on&lt;br /&gt;
every push to the main branch. It must run the test suites, compile the Docker image,&lt;br /&gt;
scan it for vulnerabilities using an open-source scanner (like Trivy or AquaSecurity), and&lt;br /&gt;
push the certified image to Docker Hub.&lt;br /&gt;
&lt;br /&gt;
Task B: Deploy your application to a remote cloud server behind an Nginx reverse proxy,&lt;br /&gt;
ensuring a Zero-Downtime Deployment (Blue-Green or Rolling) strategy. In a standard&lt;br /&gt;
setup, dropping the old container before launching the new one introduces a ~15-second&lt;br /&gt;
window where clients experience a 502 Bad Gateway error. You must configure your&lt;br /&gt;
deployment pipeline, Docker-Compose, and Nginx configurations so that Nginx reroutes&lt;br /&gt;
external traffic to the new container only after the Spring Boot application boot cycle is&lt;br /&gt;
fully complete and its Actuator endpoint /actuator/health returns UP. Additionally, ensure&lt;br /&gt;
the old container executes a Graceful Shutdown to fulfill active user reques&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5415</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5415"/>
		<updated>2026-10-29T09:06:55Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
Направлен на почту&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
= Practical programming =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a strictly encapsulated financial accounting system. Instead of using&lt;br /&gt;
double or float types for monetary values, use BigDecimal. Write internal validation logic,&lt;br /&gt;
log operations using custom data structures, and implement transaction filtering methods.&lt;br /&gt;
&lt;br /&gt;
Task B: Design a dynamic pricing system. A mutable discount configuration object is&lt;br /&gt;
passed to the calculation method. Your goal is to protect the internal state of the system&lt;br /&gt;
from scenarios where an external thread alters the configuration fields midway through&lt;br /&gt;
the formula execution or passes NaN/Infinity using mathematical workarounds.&lt;br /&gt;
Additionally, you must eliminate any risk of memory leaks caused by hidden references to&lt;br /&gt;
parent objects within inner classes.&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Task A: Write a parser for large CSV/JSON logs using pure BufferedReader, strictly&lt;br /&gt;
enforcing the try-with-resources statement. The program must aggregate error metrics&lt;br /&gt;
and should never crash when encountering malformed lines; instead, it must gracefully&lt;br /&gt;
route them to a dedicated repository for corrupted data.&lt;br /&gt;
&lt;br /&gt;
Task B: Optimize the concatenation of millions of strings under a tight memory constraint&lt;br /&gt;
(e.g.,&lt;br /&gt;
-Xmx32m). A naive implementation using StringBuilder will still trigger an&lt;br /&gt;
OutOfMemoryError due to continuous reallocation and copying of the internal byte array&lt;br /&gt;
during expansion. You need to calculate the exact buffer capacity required, implement&lt;br /&gt;
array pooling (Array Pool), or write directly to a custom byte stream, while ensuring the&lt;br /&gt;
atomic restoration of the parser&#039;s state if a CustomHeavyException occurs.&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Task A: Implement a fixed-size LRU (Least Recently Used) cache backed by a&lt;br /&gt;
LinkedHashMap. Integrate it with the open-source Apache Commons library to&lt;br /&gt;
automatically track and count element access frequencies.&lt;br /&gt;
&lt;br /&gt;
Task B: Create a data structure where the key in a HashMap is an object containing an&lt;br /&gt;
internal array or collection. Purposefully break the hashCode() contract to force a severe&lt;br /&gt;
collision scenario where all elements end up in a single bucket. You are required to force&lt;br /&gt;
the HashMap to restructure the bucket into a Red-Black tree, but with an added constraint: the key objects must not implement the Comparable interface. Analyze how Java resolves collisions via System.identityHashCode() and its internal class comparison mechanisms, and write a wrapper that guarantees constant lookup time O(1) even under&lt;br /&gt;
an intentional HashDOS attack.&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, Functional&lt;br /&gt;
Programming, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
Task A: Write a generic repository GenericRepository&amp;lt;T, ID&amp;gt; that supports standard&lt;br /&gt;
CRUD operations. Apply advanced PECS rules (? extends and ? super) to implement&lt;br /&gt;
methods for bulk saving and data fetching.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a strongly-typed event bus (EventBus). Due to Type Erasure, it is&lt;br /&gt;
impossible to distinguish List&amp;lt;String&amp;gt; from List&amp;lt;Integer&amp;gt; at runtime using standard&lt;br /&gt;
approaches. If a component subscribes to List&amp;lt;String&amp;gt;&lt;br /&gt;
, the bus might inadvertently&lt;br /&gt;
dispatch a List&amp;lt;Integer&amp;gt; to it, resulting in a runtime ClassCastException crash. You must&lt;br /&gt;
bypass type erasure by applying the Super Type Tokens pattern to retain full generic type&lt;br /&gt;
information at runtime and guarantee absolute type safety.&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
Task A: Leverage the Stream API to build a counterparty credit scoring engine. Utilize&lt;br /&gt;
predicate composition (and(), or()) and design a custom Collector capable of calculating&lt;br /&gt;
the median, mean, and variance of numerical metrics simultaneously in a single pass over&lt;br /&gt;
the stream.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a heavy data-processing pipeline using parallelStream(), where the tasks&lt;br /&gt;
are heavily I/O bound. Since parallel streams use the shared ForkJoinPool.commonPool()&lt;br /&gt;
by default, a naive implementation will choke the entire application&#039;s thread pool. You&lt;br /&gt;
must resolve this issue by forcing the parallel stream to execute inside an isolated,&lt;br /&gt;
custom ForkJoinPool with a strictly capped thread count, leveraging the unique&lt;br /&gt;
task-execution mechanics of FJP.&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Task A: Implement the Producer-Consumer pattern using low-level wait() / notifyAll()&lt;br /&gt;
mechanisms on top of a ring array. Integrate proper handling for thread interruption&lt;br /&gt;
signals via Thread.interrupt().&lt;br /&gt;
&lt;br /&gt;
Task B: Write a high-throughput thread-safe counter. Standard synchronized blocks and&lt;br /&gt;
even AtomicLong counters will cause severe performance degradation under massive&lt;br /&gt;
thread contention due to the Cache Line Bouncing effect (threads constantly invalidating&lt;br /&gt;
each other&#039;s CPU cache). You must engineer a solution based on distributed memory&lt;br /&gt;
cells (similar to the internal design of the open-source LongAdder class), ensuring proper&lt;br /&gt;
memory alignment (Padding) to prevent False Sharing of cache lines.&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Task A: Write a distributed file search engine that coordinates and aggregates results&lt;br /&gt;
across multiple search phases using an ExecutorService (CompletableFuture) alongside&lt;br /&gt;
a Phaser or CyclicBarrier.&lt;br /&gt;
&lt;br /&gt;
Task B: Build a thread-safe, non-blocking cache on top of a ConcurrentHashMap.&lt;br /&gt;
Threads must check for the presence of a key: if missing, they must compute the value&lt;br /&gt;
(simulating a heavy 5-second network request) and store it in the map. If written naively,&lt;br /&gt;
100 threads hitting the same missing key simultaneously will trigger the heavy network&lt;br /&gt;
call 100 times. You must achieve atomic computation using computeIfAbsent(), with a&lt;br /&gt;
strict caveat: no heavy blocking operations can be performed directly inside the&lt;br /&gt;
computation function, as doing so would lock the entire map bucket for other unrelated&lt;br /&gt;
keys. Elegantly decouple this by combining ConcurrentHashMap and CompletableFuture.&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Task A: Write a utility that interacts with Off-Heap memory via ByteBuffer.allocateDirect()&lt;br /&gt;
to cache massive image arrays or binary files completely bypassing the Garbage&lt;br /&gt;
Collector.&lt;br /&gt;
&lt;br /&gt;
Task B: Intentionally inject a hidden memory leak that standard linters and AI assistants&lt;br /&gt;
fail to catch, utilizing ThreadLocal variables within an application thread pool. When a web&lt;br /&gt;
request completes, the thread returns to the pool, but the data inside ThreadLocal&lt;br /&gt;
remains bound to the thread indefinitely, quietly bleeding the Heap via the&lt;br /&gt;
ContextClassLoader. You must diagnose this leak using JProfiler or VisualVM, write an&lt;br /&gt;
integration test that fails when a leak is present, and implement automated cleanup using&lt;br /&gt;
a custom interceptor.&lt;br /&gt;
&lt;br /&gt;
Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Task A: Construct a multi-module project where one dedicated sub-module generates&lt;br /&gt;
source code (e.g., generating DTOs from an OpenAPI or Protobuf schema), and other&lt;br /&gt;
sub-modules reference and consume this generated code. Configure the testing plugins&lt;br /&gt;
(JaCoCo) with a strict threshold: the build must fail if total test coverage drops below 80%.&lt;br /&gt;
&lt;br /&gt;
Task B: Introduce a third-party open-source library that carries a transitive (hidden)&lt;br /&gt;
dependency conflicting with Spring Boot. The project will compile perfectly fine but crash&lt;br /&gt;
at runtime with a LinkageError or ClassCircularityError. You must manually trace the&lt;br /&gt;
dependency graph using mvn dependency:tree, isolate the conflicting artifact, and resolve&lt;br /&gt;
it using fine-tuned &amp;lt;exclusions&amp;gt; and &amp;lt;dependencyManagement&amp;gt; blocks. Additionally,&lt;br /&gt;
write an Enforcer Plugin rule to programmatically block banned transitive dependencies.&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a custom BeanPostProcessor that scans for beans decorated with a&lt;br /&gt;
custom @InjectCrypto annotation. It must automatically initialize cryptographic keys inside&lt;br /&gt;
them by pulling the payloads from an external, secure vault file.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a business operation logging system using Spring AOP. The aspect&lt;br /&gt;
intercepts methods annotated with @LogMe. Within a service, a method public void&lt;br /&gt;
process() invokes this.internalLog(), which is also marked with @LogMe. Due to Spring&#039;s&lt;br /&gt;
proxy-based architecture, this internal call (self-invocation) bypasses the proxy, meaning&lt;br /&gt;
the aspect will fail to trigger. You must reproduce this issue and fix it using three&lt;br /&gt;
advanced techniques of your choice (without duplicating code): using ApplicationContext&lt;br /&gt;
injection, AopContext.currentProxy(), or by migrating to AspectJ (Compile-Time /&lt;br /&gt;
Load-Time Weaving).&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Task A: Model entities for an e-commerce platform. Implement advanced pagination and&lt;br /&gt;
dynamic multi-criteria order filtering across 10+ concurrent parameters using JPA&lt;br /&gt;
Specification or Querydsl.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement a bank transfer method decorated with @Transactional. Artificially&lt;br /&gt;
introduce massive concurrency (e.g., 1,000 parallel requests hitting the same account&lt;br /&gt;
simultaneously), forcing the system to encounter a DeadlockLoserDataAccessException&lt;br /&gt;
or a Lost Update anomaly. Your task is to resolve this race condition at the database tier&lt;br /&gt;
using Optimistic Locking (with explicit handling and retries for&lt;br /&gt;
ObjectOptimisticLockingFailureException) or Pessimistic Locking (SELECT FOR&lt;br /&gt;
UPDATE), clearly justifying the performance trade-offs of each approach.&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot 3.x&lt;br /&gt;
&lt;br /&gt;
Task A: Develop a ticket-booking REST API. Implement complex cross-field validation&lt;br /&gt;
rules (e.g., return dates cannot precede departure dates, and ticket types must match the&lt;br /&gt;
passenger&#039;s age bracket) by writing a custom ConstraintValidator.&lt;br /&gt;
&lt;br /&gt;
Task B: Implement an endpoint for uploading and stream-processing massive binary files&lt;br /&gt;
exceeding 5 GB. If you attempt to capture the file payload in your controller as a byte[] or&lt;br /&gt;
via standard MultipartFile bindings, the server will instantly crash with an OutOfMemoryError as it attempts to buffer the entire payload into RAM. You must build a&lt;br /&gt;
streaming controller that processes incoming data chunks on the fly, pipes the byte&lt;br /&gt;
stream directly into a persistent storage layer, and broadcasts upload progress in&lt;br /&gt;
real-time using Server-Sent Events (SSE).&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
Task A: Build a complete stateless Auth Server using Spring Security. Issue two tokens: a&lt;br /&gt;
short-lived Access Token (kept in memory) and a long-lived Refresh Token delivered via&lt;br /&gt;
an HttpOnly cookie with robust XSS/CSRF mitigations.&lt;br /&gt;
&lt;br /&gt;
Task B: Write a Dockerfile to package your Spring Boot application. Running a&lt;br /&gt;
containerized application under the root user introduces a critical security vulnerability.&lt;br /&gt;
Furthermore, a naive file structure will cause Docker to re-download all Maven&lt;br /&gt;
dependencies on every single line-of-code modification. You must write a secure, highly&lt;br /&gt;
optimized image: enforce multi-stage builds, switch to a non-privileged user (USER&lt;br /&gt;
appuser), leverage Distroless or Alpine base runtimes, and split your application layout&lt;br /&gt;
into discrete image layers (dependencies, resources, and class files) to maximize layer&lt;br /&gt;
caching.&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
Task A: Design a GitHub Actions or GitLab CI pipeline that automatically triggers on&lt;br /&gt;
every push to the main branch. It must run the test suites, compile the Docker image,&lt;br /&gt;
scan it for vulnerabilities using an open-source scanner (like Trivy or AquaSecurity), and&lt;br /&gt;
push the certified image to Docker Hub.&lt;br /&gt;
&lt;br /&gt;
Task B: Deploy your application to a remote cloud server behind an Nginx reverse proxy,&lt;br /&gt;
ensuring a Zero-Downtime Deployment (Blue-Green or Rolling) strategy. In a standard&lt;br /&gt;
setup, dropping the old container before launching the new one introduces a ~15-second&lt;br /&gt;
window where clients experience a 502 Bad Gateway error. You must configure your&lt;br /&gt;
deployment pipeline, Docker-Compose, and Nginx configurations so that Nginx reroutes&lt;br /&gt;
external traffic to the new container only after the Spring Boot application boot cycle is&lt;br /&gt;
fully complete and its Actuator endpoint /actuator/health returns UP. Additionally, ensure&lt;br /&gt;
the old container executes a Graceful Shutdown to fulfill active user reques&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5414</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5414"/>
		<updated>2026-10-29T08:58:48Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
Направлен на почту&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar:&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5413</id>
		<title>Programming Java 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Programming_Java_2026&amp;diff=5413"/>
		<updated>2026-10-29T08:56:00Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Мария Рубаненко&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
с 9 сентября&lt;br /&gt;
&lt;br /&gt;
Лекция - Среда 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
Семинар - Суббота 9:00 - 10:25 Аудитория 705 КПМ&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
= Course outline: =&lt;br /&gt;
&lt;br /&gt;
Block 1: Language Foundations, Syntax, and OOP&lt;br /&gt;
&lt;br /&gt;
Module 1: Introduction to Java, Primitives, and OOP Core&lt;br /&gt;
&lt;br /&gt;
Lecture: How Java works: compilation, bytecode, JRE/JDK, and high-level JVM&lt;br /&gt;
architecture. Primitive data types, explicit and implicit casting. Control flow statements and&lt;br /&gt;
loops. Classes, objects, methods, and constructors. The this and static keywords. The&lt;br /&gt;
four pillars of OOP in practice: encapsulation, inheritance, polymorphism, and abstraction.&lt;br /&gt;
Access modifiers.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 2: Reference Types, Arrays, Strings, and Exception&lt;br /&gt;
Handling&lt;br /&gt;
&lt;br /&gt;
Lecture: One-dimensional and multidimensional arrays. Working with strings: String (why&lt;br /&gt;
is it immutable?), the String Pool, StringBuilder, and StringBuffer. Packages and imports.&lt;br /&gt;
The exception hierarchy (Throwable, Exception, Error, RuntimeException). Checked vs.&lt;br /&gt;
Unchecked exceptions. The try-catch-finally blocks, throw, and throws operators. The&lt;br /&gt;
try-with-resources statement and the AutoCloseable interface.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 3: Java Collections Framework Architecture&lt;br /&gt;
&lt;br /&gt;
Lecture: The Collections hierarchy: List, Set, Queue, and Map. Deep dive under the&lt;br /&gt;
hood: ArrayList (dynamic resizing) and LinkedList (doubly-linked list). The equals() and&lt;br /&gt;
hashCode() contract—why it is critical. Mechanics of HashMap and HashSet (buckets,&lt;br /&gt;
collisions, treeification in Java 8+). TreeSet and TreeMap (Red-Black trees) along with the&lt;br /&gt;
Comparable and Comparator interfaces.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Block 2: Hardcore Core Java (Generics, FP, and Memory)&lt;br /&gt;
&lt;br /&gt;
Module 4: Deep Dive into Generics (Type Erasure &amp;amp; PECS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: The purpose of Generics. Parameterized classes, interfaces, and methods. How&lt;br /&gt;
generics work under the hood: Type Erasure and Bridge Methods. Bounded type&lt;br /&gt;
parameters: extends vs. super. The PECS rule (Producer Extends, Consumer Super).&lt;br /&gt;
Wildcards in complex class hierarchies. Invariance, covariance, and contravariance.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 5: Functional Interfaces and Stream API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Comprehensive breakdown of Functional Programming concepts. Core&lt;br /&gt;
functional interfaces: Predicate, Consumer, Function, Supplier, and UnaryOperator.&lt;br /&gt;
Creating custom interfaces with @FunctionalInterface. How lambdas compile:&lt;br /&gt;
invokedynamic instructions. Method References and Variable Capture. Stream API&lt;br /&gt;
lifecycle: intermediate vs. terminal operations. Lazy evaluations. Crafting custom Collector&lt;br /&gt;
implementations.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 6: Concurrency — Part 1: Foundations and&lt;br /&gt;
Synchronization&lt;br /&gt;
&lt;br /&gt;
Lecture: Understanding Processes and Threads. Thread creation using Thread and&lt;br /&gt;
Runnable. Thread lifecycle and states (NEW, RUNNABLE, BLOCKED, WAITING, etc.).&lt;br /&gt;
Common multithreading pitfalls: Race Conditions, Deadlocks, and Livelocks. The&lt;br /&gt;
synchronized keyword (intrinsic locks, object-level vs. class-level locking). The wait(),&lt;br /&gt;
notify(), and notifyAll() coordination mechanisms. The volatile keyword and atomicity&lt;br /&gt;
constraints.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 7: Concurrency — Part 2: Concurrency Utilities and JMM&lt;br /&gt;
&lt;br /&gt;
Lecture: The Java Memory Model (JMM): visibility, instruction reordering, and the&lt;br /&gt;
happens-before guarantee. Exploring the java.util.concurrent package. Atomic variables&lt;br /&gt;
(AtomicInteger, AtomicReference). Explicit locks: ReentrantLock and ReadWriteLock.&lt;br /&gt;
Synchronizers: CountDownLatch, CyclicBarrier, and Semaphore. Thread pools and the&lt;br /&gt;
ExecutorService. Handling future results with Callable and Future. Thread-safe collections&lt;br /&gt;
(ConcurrentHashMap, CopyOnWriteArrayList).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 8: Modern JVM Memory Management&lt;br /&gt;
&lt;br /&gt;
Lecture: JVM memory layout (Java 17-25): Heap (Eden, Survivor, Tenured), Metaspace,&lt;br /&gt;
Code Cache, and Off-Heap (Direct Memory). Stack vs. Heap allocation. Object allocation&lt;br /&gt;
and garbage collection lifecycles. The evolution of Garbage Collectors: from&lt;br /&gt;
Serial/Parallel to G1, and modern ultra-low-latency collectors like ZGC (Z Garbage&lt;br /&gt;
Collector) and Shenandoah (Colored Pointers, Load Barriers).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
🏗 Block 3: Build Automation, Spring Ecosystem, and Data&lt;br /&gt;
&lt;br /&gt;
Module 9: Maven Architecture and Build Automation&lt;br /&gt;
&lt;br /&gt;
Lecture: How Maven operates: build lifecycles, phases, and goals. Anatomy of pom.xml.&lt;br /&gt;
Dependency management and conflict resolution: Dependency Mediation (nearest-wins&lt;br /&gt;
rule) and dependency scopes. Working with &amp;lt;dependencyManagement&amp;gt; and build&lt;br /&gt;
plugins (&amp;lt;plugins&amp;gt;). Designing and configuring multi-module project structures.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Module 10: Spring Core Under the Hood (IoC, DI &amp;amp; AOP)&lt;br /&gt;
&lt;br /&gt;
Lecture: The philosophy behind Inversion of Control (IoC) and Dependency Injection (DI).&lt;br /&gt;
The Spring Bean Lifecycle: from BeanDefinition parsing to destruction. Initialization&lt;br /&gt;
phases, BeanFactoryPostProcessor, and BeanPostProcessor (BPP). Proxying in Spring:&lt;br /&gt;
JDK Dynamic Proxies vs. CGLIB. Resolving circular dependencies using Spring&#039;s&lt;br /&gt;
three-level cache. Aspects, Advices (Before, After, Around), and Pointcuts. Spring AOP&lt;br /&gt;
vs. AspectJ.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 11: Spring Data JPA, Hibernate, and Transactions&lt;br /&gt;
&lt;br /&gt;
Lecture: Architectural foundations of JPA and Hibernate. Entity life cycle states&lt;br /&gt;
(Transient, Persistent, Detached, Removed). Dirty Checking mechanics and the first-level&lt;br /&gt;
cache. Exposing and solving the N+1 Query problem (JOIN FETCH, EntityGraph).&lt;br /&gt;
Mapping entity relationships (@OneToMany, @ManyToMany). Internal mechanics of the&lt;br /&gt;
@Transactional annotation. Transaction isolation levels and propagation behaviors&lt;br /&gt;
(REQUIRED, REQUIRES).&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 12: Spring Web (REST API), Validation, and Spring Boot&lt;br /&gt;
3.x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Boot philosophy and Auto-configuration using @Conditional annotations.&lt;br /&gt;
Anatomy of Spring Web: DispatcherServlet, controllers, and request mapping. Designing&lt;br /&gt;
mature RESTful APIs. Centralized error handling using @ControllerAdvice and&lt;br /&gt;
@ExceptionHandler. Incoming DTO validation with the Jakarta Validation API. System&lt;br /&gt;
monitoring with Spring Boot Actuator.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Block 4: Security, Containerization, and Production&lt;br /&gt;
Deployment&lt;br /&gt;
&lt;br /&gt;
Module 13: Spring Security, JWT, and Docker Containerization&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Spring Security architecture: the SecurityFilterChain. The Authentication and&lt;br /&gt;
Authorization processes. Implementing stateless security architectures using JWT (JSON&lt;br /&gt;
Web Tokens). Core concepts of Docker containerization: images, containers, layers,&lt;br /&gt;
volumes, and networking. Writing highly efficient Multi-stage Dockerfiles to strip away&lt;br /&gt;
build overhead and minimize target production Java runtimes.&lt;br /&gt;
&lt;br /&gt;
Seminar: +&lt;br /&gt;
&lt;br /&gt;
Module 14: CI/CD Pipelines, Nginx, and Production Deployment&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lecture: Continuous Integration and Continuous Delivery (CI/CD) workflows using&lt;br /&gt;
GitHub Actions or GitLab CI. Automating the pipeline: Maven build ➡ unit/integration&lt;br /&gt;
testing ➡ Docker image compilation ➡ pushing to a container Registry ➡ remote server&lt;br /&gt;
deployment. Setting up Nginx as a Reverse Proxy to forward external traffic, load&lt;br /&gt;
balance, and manage SSL/TLS certificates (via Certbot/Let&#039;s Encrypt).&lt;br /&gt;
&lt;br /&gt;
Seminar:&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D1%85_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BC%D0%B0%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_2026&amp;diff=5412</id>
		<title>Машинное обучение на больших объемах данных 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D1%85_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BC%D0%B0%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_2026&amp;diff=5412"/>
		<updated>2026-10-28T22:15:09Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Домашние задания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 1 (магистратура)&lt;br /&gt;
* Расписание: Среда - лекция 17:05-18:30, семинар 18:35-20:00&lt;br /&gt;
* Форма контроля: экзамен&lt;br /&gt;
&lt;br /&gt;
= Команда курса =&lt;br /&gt;
* Анохин Николай, лекции Рекомендательные системы на больших данных&lt;br /&gt;
* Логойда Роман, семинары Рекомендательные системы на больших данных&lt;br /&gt;
* Никита Зелинский, лекции Графовые сети&lt;br /&gt;
* Сергей Кулиев, семинары Графовые сети&lt;br /&gt;
* Апишев Мурат, лекции Большие языковые модели&lt;br /&gt;
&lt;br /&gt;
= План курса =&lt;br /&gt;
* &#039;&#039;&#039;[https://docs.google.com/spreadsheets/d/e/2PACX-1vS9rzj8yosz3pRCEAIvEHTjjbilpgiqKPKGa76SM42dTjL2xfHoW24zj0k-6DfYOA/pubhtml?gid=1948669375&amp;amp;single=true План курса]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Важные ссылки =&lt;br /&gt;
* [https://forms.gle/LtCjvqArMNoCkKD36 Регистрация на курс]&lt;br /&gt;
* [https://t.me/+wi1uexz6-gVkODcy Чат курса]&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vSQhzXSnfYoP-pswZp1KdwFYKs-SwkNHuxJhYLBLCVkisdDorlKje_y--VREnRFcJxUNYfFFTYRWmjM/pubhtml?gid=55302118&amp;amp;single=true Таблица с оценками]&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vSQhzXSnfYoP-pswZp1KdwFYKs-SwkNHuxJhYLBLCVkisdDorlKje_y--VREnRFcJxUNYfFFTYRWmjM/pubhtml?gid=1110737633&amp;amp;single=true Статус проверки ДЗ]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://dzen.ru/suite/7178020c-566f-4576-bebd-fb7360c3220e?share_to=link Видео занятий (Дзен)]&lt;br /&gt;
* [https://drive.google.com/drive/folders/11nSq6haVeFLpDquOZUQhZ-uvkuLYCRSL?usp=drive_link Видео занятий (Google)]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1133Q4JJlpJakTAarGe8oglfyBoAOS4Wu?usp=sharing Презентация занятий (Google)]&lt;br /&gt;
&lt;br /&gt;
= Критерии получения оценки =&lt;br /&gt;
Оценка по курсу состоит из нескольких частей:&lt;br /&gt;
# Блок. Рекомендательные системы на больших данных - 5 баллов&lt;br /&gt;
# Блок. Графовые сети - 3 балла&lt;br /&gt;
# Блок. Большие языковые модели - 2 балла&lt;br /&gt;
# Экзамен: 2 балла&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
На курсе запланировано три домашние задания по каждому из модулей курса.&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Домашнее задание&lt;br /&gt;
! Дедлайн  мягк.&lt;br /&gt;
! Дедлайн жестк.&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitlab.atp-fivt.org/courses-public/mobod/public/-/blob/master/hw/homework1.md?ref_type=heads Рекомендательные системы на больших данных ДЗ 1] ||  нет || 21.10&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitlab.atp-fivt.org/courses-public/mobod/public/-/blob/master/hw/homework2.md?ref_type=heads Рекомендательные системы на больших данных ДЗ 2] ||  08.11 (см. детали в описании) || нет&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitlab.atp-fivt.org/courses-public/mobod/public/-/tree/gnn Графовые сети]|| нет || 25.12&lt;br /&gt;
|-&lt;br /&gt;
| [https://gitlab.atp-fivt.org/courses-public/mobod/public/-/blob/master/jupyter/Almost_not_empty_0_9.ipynb Большие языковые модели]  || нет || 12.01&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Экзамен =&lt;br /&gt;
Экзамен не является обязательным.&lt;br /&gt;
&lt;br /&gt;
Экзамен будет состоять из 2 частей. &lt;br /&gt;
Дата экзамена: &#039;&#039;&#039;21.01&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Письменная часть ==&lt;br /&gt;
# Начинается в 15:30 и длится 20 минут.&lt;br /&gt;
# Проходит с помощью системы [https://exams.mipt.ru/ exams.mipt.ru]. Для регистрации найдите событие &amp;quot;&#039;&#039;&#039;МОБОД-2026. Экзамен&#039;&#039;&#039;&amp;quot;. Если вы хотите сдавать экзамен, зарегистрируйтесь в событии хотя бы за час до начала.&lt;br /&gt;
# Билет содержит 3 вопроса (1 вопрос из каждого модуля курса). [https://docs.google.com/spreadsheets/d/e/2PACX-1vR_PZvT_6-TD7ikpTkmGrh5FSSwEftUPDnrIDeLOP1AZPWD4JjpbvVeu89oGV-pXdXM18gOMjKesDe7/pubhtml?gid=118220572&amp;amp;single=true Примеры вопросов на письменную часть]&lt;br /&gt;
&lt;br /&gt;
== Устная часть ==&lt;br /&gt;
# Является &#039;&#039;&#039;опциональной&#039;&#039;&#039;. &lt;br /&gt;
#* Если оценка за письменную вас устраивает, на неё приходить на надо.&lt;br /&gt;
#* Если вы планируете прийти на устную часть, заполните [форму] (откроется после письменной части) чтоб получить слот.&lt;br /&gt;
# Начинается в __:__. &lt;br /&gt;
# Будет проходить в Zoom.&lt;br /&gt;
# На устной части будут доп. вопросы по темам курса.&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой МОБОД, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/JFSXGEeTpufmY2xz6&#039;&#039;&#039;форму&#039;&#039;&#039;] до 30.09.2026. Курс может быть перезачтен не полностью, а на какой-то процент. В этом случае для поднятия оценки, вам нужно будет добрать баллы домашками и контрольными.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5408</id>
		<title>Python 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5408"/>
		<updated>2026-10-28T21:54:48Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Программа курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course team==&lt;br /&gt;
Lecturer - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
Seminarian for 1 course - Nikolai Spitsyn&lt;br /&gt;
&lt;br /&gt;
Seminarian for 2 course - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
&lt;br /&gt;
С 01.09&lt;br /&gt;
2 курс - Семинар: вторник 10:35 - 12:00&lt;br /&gt;
Алина Реброва&lt;br /&gt;
ЛК 317&lt;br /&gt;
&lt;br /&gt;
С 04.09&lt;br /&gt;
1 курс - Семинар: пятница 13:55 - 15:20&lt;br /&gt;
Николай Спицын&lt;br /&gt;
706 КПМ&lt;br /&gt;
&lt;br /&gt;
С 04.09 1 и 2 курс - Лекции: пятница 17:05 - 18:30&lt;br /&gt;
Алина Реброва&lt;br /&gt;
208 УПМ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Программа курса=&lt;br /&gt;
&lt;br /&gt;
==Темы занятий==&lt;br /&gt;
1. Компилируемость интерпретируемость языков&lt;br /&gt;
Вводим понятие PyObject/PyVarobject, хэшируемость, словари, Циклы + условия&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2.Функции - теория&lt;br /&gt;
&lt;br /&gt;
3.Функция как объект + замыкания&lt;br /&gt;
&lt;br /&gt;
4.Декораторы&lt;br /&gt;
&lt;br /&gt;
5.Исключения&lt;br /&gt;
&lt;br /&gt;
6. ООП: конструктор, деструктор, инициализатор, файналайзер&lt;br /&gt;
&lt;br /&gt;
7.ООП: наследование, инкапсуляция &lt;br /&gt;
&lt;br /&gt;
8. Абстрактные классы &lt;br /&gt;
&lt;br /&gt;
9. Dunder методы&lt;br /&gt;
&lt;br /&gt;
10. Генераторы, итераторы&lt;br /&gt;
&lt;br /&gt;
11.Файлы + контекстные менеджеры&lt;br /&gt;
(txt, csv, json...)&lt;br /&gt;
dataclass&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12.typing + venv&lt;br /&gt;
&lt;br /&gt;
13. venv + numpy + pandas&lt;br /&gt;
&lt;br /&gt;
14. pandas + графики + принципы построения графиков&lt;br /&gt;
&lt;br /&gt;
15. Коллоквиум&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5407</id>
		<title>Python 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5407"/>
		<updated>2026-10-28T21:54:13Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Темы занятий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course team==&lt;br /&gt;
Lecturer - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
Seminarian for 1 course - Nikolai Spitsyn&lt;br /&gt;
&lt;br /&gt;
Seminarian for 2 course - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
&lt;br /&gt;
С 01.09&lt;br /&gt;
2 курс - Семинар: вторник 10:35 - 12:00&lt;br /&gt;
Алина Реброва&lt;br /&gt;
ЛК 317&lt;br /&gt;
&lt;br /&gt;
С 04.09&lt;br /&gt;
1 курс - Семинар: пятница 13:55 - 15:20&lt;br /&gt;
Николай Спицын&lt;br /&gt;
706 КПМ&lt;br /&gt;
&lt;br /&gt;
С 04.09 1 и 2 курс - Лекции: пятница 17:05 - 18:30&lt;br /&gt;
Алина Реброва&lt;br /&gt;
208 УПМ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Программа курса=&lt;br /&gt;
&lt;br /&gt;
[План занятий https://docs.google.com/spreadsheets/d/1PRY8WawMd6CT-G8rWUR3UFZAjY6ZiD00bSQQYmbV-vY/edit?usp=drivesdk]&lt;br /&gt;
&lt;br /&gt;
==Темы занятий==&lt;br /&gt;
1. Компилируемость интерпретируемость языков&lt;br /&gt;
Вводим понятие PyObject/PyVarobject, хэшируемость, словари, Циклы + условия&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2.Функции - теория&lt;br /&gt;
&lt;br /&gt;
3.Функция как объект + замыкания&lt;br /&gt;
&lt;br /&gt;
4.Декораторы&lt;br /&gt;
&lt;br /&gt;
5.Исключения&lt;br /&gt;
&lt;br /&gt;
6. ООП: конструктор, деструктор, инициализатор, файналайзер&lt;br /&gt;
&lt;br /&gt;
7.ООП: наследование, инкапсуляция &lt;br /&gt;
&lt;br /&gt;
8. Абстрактные классы &lt;br /&gt;
&lt;br /&gt;
9. Dunder методы&lt;br /&gt;
&lt;br /&gt;
10. Генераторы, итераторы&lt;br /&gt;
&lt;br /&gt;
11.Файлы + контекстные менеджеры&lt;br /&gt;
(txt, csv, json...)&lt;br /&gt;
dataclass&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12.typing + venv&lt;br /&gt;
&lt;br /&gt;
13. venv + numpy + pandas&lt;br /&gt;
&lt;br /&gt;
14. pandas + графики + принципы построения графиков&lt;br /&gt;
&lt;br /&gt;
15. Коллоквиум&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5406</id>
		<title>Python 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Python_2026&amp;diff=5406"/>
		<updated>2026-10-28T21:47:20Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course team==&lt;br /&gt;
Lecturer - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
Seminarian for 1 course - Nikolai Spitsyn&lt;br /&gt;
&lt;br /&gt;
Seminarian for 2 course - Alina Rebrova&lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
&lt;br /&gt;
С 01.09&lt;br /&gt;
2 курс - Семинар: вторник 10:35 - 12:00&lt;br /&gt;
Алина Реброва&lt;br /&gt;
ЛК 317&lt;br /&gt;
&lt;br /&gt;
С 04.09&lt;br /&gt;
1 курс - Семинар: пятница 13:55 - 15:20&lt;br /&gt;
Николай Спицын&lt;br /&gt;
706 КПМ&lt;br /&gt;
&lt;br /&gt;
С 04.09 1 и 2 курс - Лекции: пятница 17:05 - 18:30&lt;br /&gt;
Алина Реброва&lt;br /&gt;
208 УПМ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Программа курса=&lt;br /&gt;
&lt;br /&gt;
[План занятий https://docs.google.com/spreadsheets/d/1PRY8WawMd6CT-G8rWUR3UFZAjY6ZiD00bSQQYmbV-vY/edit?usp=drivesdk]&lt;br /&gt;
&lt;br /&gt;
==Темы занятий==&lt;br /&gt;
1.09. Семинар &lt;br /&gt;
Базовый синтаксис: работа с int, float, str, list&lt;br /&gt;
&lt;br /&gt;
04.09 Лекция &lt;br /&gt;
Компилируемость интерпретируемость языков&lt;br /&gt;
Вводим понятие PyObject/PyVarobject, хэшируемость, словари, Циклы + условия&amp;quot;&lt;br /&gt;
&lt;br /&gt;
08.09 Семинар&lt;br /&gt;
Практика - решение задач на str, list, dict, хэшируемость словари, Циклы + условия&amp;quot;&lt;br /&gt;
&lt;br /&gt;
11.09 Лекция&lt;br /&gt;
Функции - теория&lt;br /&gt;
&lt;br /&gt;
15.09 Семинар&lt;br /&gt;
Практика функции&lt;br /&gt;
&lt;br /&gt;
18.09 Лекция&lt;br /&gt;
Функция как объект + замыкания&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B1%D0%B8%D0%BE%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2026&amp;diff=5405</id>
		<title>Алгоритмы биоинформатики 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B1%D0%B8%D0%BE%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8_2026&amp;diff=5405"/>
		<updated>2026-10-28T21:41:51Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Критерии оценивания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Основная информация=&lt;br /&gt;
Курс основан на MOOC «Bioinformatics Algorithms, An Active Learning Approach» для студентов 1 курса магистратуры ИВТ и ПМИ&lt;br /&gt;
&lt;br /&gt;
==Преподаватель курса==&lt;br /&gt;
Богдан Давид Романович, кафедра Алгоритмов и Технологий Программирования&lt;br /&gt;
==Расписание==&lt;br /&gt;
Лекции - Четверг 13:55-15:20 ауд. 415 ГК&lt;br /&gt;
Семинары - Четверг 15:30-16:55 ауд. 415 ГК&lt;br /&gt;
&lt;br /&gt;
==Результаты освоения курса==&lt;br /&gt;
В результате изучения дисциплины «Алгоритмы биоинформатики» обучающийся будет&lt;br /&gt;
знать формальные постановки задач для некоторых задач биоинформатики (поиск мотивов, определение первичной структуры биополимеров, выравнивание последовательностей, восстановление истории инверсий);&lt;br /&gt;
алгоритмы решения этих задач;&lt;br /&gt;
уметь применять эти алгоритмы для анализа предложенных данных; &lt;br /&gt;
владеть методами эффективного выбора формальной модели для решения содержательных задач биоинформатики.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Экзамен=&lt;br /&gt;
Промежуточная аттестация по дисциплине «Алгоритмы биоинформатики» осуществляется в форме экзамена. Экзамен  проводится в устной форме. При проведении устного экзамена обучающемуся предоставляется 60 минут на подготовку. Опрос обучающегося по билету на устном экзамене не должен превышать двух астрономических часов. &lt;br /&gt;
&lt;br /&gt;
==Критерии оценивания==&lt;br /&gt;
&lt;br /&gt;
Итоговая оценка по курсу складывается из оценки за выполненные в ходе семестра практические задания (80%) и оценки за проявленную активность на лекциях (20%). Активностью на лекциях считается четко сформулированный вопрос, либо ответ на вопрос, заданный другим студентом. В конце курса проводится устный экзамен. При получении неудовлетворительной оценки на экзамене оценка за практические задания снижается в 3 раза.&lt;br /&gt;
&lt;br /&gt;
В ходе семестра студентам предлагается для решения 30 задач по шести темам, как правило, требующих практического программирования. На решение задач на полный балл (1 задача = 1 балл) по каждой теме отводится 2 недели (мягкий дедлайн). Жесткий дедлайн (общий для всех тем) устанавливается на дату за 2-3 недели до конца семестра, задачи решенные после мягкого дедлайна, но перед жестким дедлайном, оцениваются в 0.5 балла. Число P за практическую работу вычисляется по следующей таблице: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! Р !! 3 !! 4!! 5 !! 6 !! 7 !! 8 !! 9 !! 10 &lt;br /&gt;
|-&lt;br /&gt;
| Набрано баллов за задачи || 9 || 12 || 15 || 18 || 21 || 24 || 27 || 30&lt;br /&gt;
|-&lt;br /&gt;
| Минимальное кол-во набранных баллов в каждой теме || 1 || 2 || 2 || 3 || 3 || 4 || 4|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Оценка за активность на лекциях рассчитывается по следующей формуле:&lt;br /&gt;
T = 5/3*(a1 + a2 + a3 + … + a11 + a12), где:&lt;br /&gt;
at – оценка за t-ую лекцию (всего 12 лекций), причем at = 1, если студент задал хотя бы один четко сформулированный вопрос, либо ответил хотя бы на один такой вопрос, иначе at = 0. Чётко сформулированным считается такой вопрос, который позволяет выявить затруднение, испытываемое студентом. Кроме того, такой вопрос должен быть опубликован студентом в чате курса до начала дня лекции. &lt;br /&gt;
&lt;br /&gt;
Количество набранных баллов B = 0.8*P + 0.2*T определяет итоговую оценку: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|-&lt;br /&gt;
! Оценка !! Набранные баллы&lt;br /&gt;
|-&lt;br /&gt;
| отлично (10) || 9.5 ≤ B &amp;lt; 12&lt;br /&gt;
|-&lt;br /&gt;
| отлично (9) || 8.5 ≤ B &amp;lt; 9.5&lt;br /&gt;
|-&lt;br /&gt;
| хорошо (8) || 7.5 ≤ B &amp;lt; 8.5&lt;br /&gt;
|-&lt;br /&gt;
| хорошо (7)|| 6.5 ≤ B &amp;lt; 7.5&lt;br /&gt;
|-&lt;br /&gt;
| хорошо (6) || 5.5 ≤ B &amp;lt; 6.5&lt;br /&gt;
|-&lt;br /&gt;
| хорошо (5) || 4.5 ≤ B &amp;lt; 5.5&lt;br /&gt;
|-&lt;br /&gt;
| удовлетворительно (4) || 3.5 ≤ B &amp;lt; 4.5&lt;br /&gt;
|-&lt;br /&gt;
| удовлетворительно (3) || 3 ≤ B &amp;lt; 3.5&lt;br /&gt;
|-&lt;br /&gt;
| неудовлетворительно (2) || 2 ≤ B &amp;lt; 3&lt;br /&gt;
|-&lt;br /&gt;
| неудовлетворительно (1) || B &amp;lt; 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=План курса=&lt;br /&gt;
1. Где начинается репликация ДНК? (Алгоритмическая разминка, 2 недели)&lt;br /&gt;
2. Какие паттерны ДНК действуют как клеточные часы? (Жадные и случайные алгоритмы, 2 недели)&lt;br /&gt;
3. Как собирать геномы? (Графовые алгоритмы, 2 недели)&lt;br /&gt;
4. Как секвенировать антибиотики? (Алгоритмы грубой силы, 2 недели)&lt;br /&gt;
5. Как сравнивать биологические последовательности? (Алгоритмы динамического программирования, 2 недели)&lt;br /&gt;
6. Существуют ли хрупкие области в геноме человека? (Комбинаторные алгоритмы, 2 недели)&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+2HnVTJTlJfZiODhi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A3%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D1%8F%D0%B4%D1%80%D0%B0_Linux_(%D0%9D%D0%9E%D0%92)_2026&amp;diff=5404</id>
		<title>Устройство ядра Linux (НОВ) 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A3%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D1%8F%D0%B4%D1%80%D0%B0_Linux_(%D0%9D%D0%9E%D0%92)_2026&amp;diff=5404"/>
		<updated>2026-10-28T21:39:15Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Дополнительная литература */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Команда курса =&lt;br /&gt;
* Хорошилов Алексей Владимирович&lt;br /&gt;
* Чепцов Виталий Юрьевич&lt;br /&gt;
* Басков Евгений Сергеевич&lt;br /&gt;
&lt;br /&gt;
=Расписание=&lt;br /&gt;
&lt;br /&gt;
= Цель курса =&lt;br /&gt;
Целью освоения дисциплины является изучение основных принципов внутреннего устройства яд-ра операционной системы и вспомогательного ПО для его запуска, механизмов аппаратной под-держки работы ядра, начальной инициализации платформы и периферийных устройств, интерфей-сов базового программного обеспечения (BIOS) на основе современных спецификаций ACPI, SMBIOS, UEFI и пр., а также получение навыков проектирования и программирования компо-нентов ядра операционной системы и отладки программ в различных режимах работы процессо-ра.&lt;br /&gt;
&lt;br /&gt;
= Задачи курса =&lt;br /&gt;
* Освоение студентами базовых современных достижений в области проектирования опера-ционных систем и базового программного обеспечения;&lt;br /&gt;
* Формирование практических навыков проектирования и программирования компонентов ядра и загрузчика операционной системы и отладки программ в различных режимах рабо-ты процессора.&lt;br /&gt;
&lt;br /&gt;
= План курса =&lt;br /&gt;
* Курс рассчитан на 64 часа аудиторной нагрузки, из них 24 часов лекций и 40 часов практи-ческих занятий, общим объемом 5 зачетных единиц (190 часов). &lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/1HydWJV8y1LIwH-CAcba3NZ0U6uqRl1StP70VsHNjQrM/edit?usp=sharing План курса]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Задачи курса =&lt;br /&gt;
* Освоение студентами базовых современных достижений в области проектирования опера-ционных систем и базового программного обеспечения;&lt;br /&gt;
* Формирование практических навыков проектирования и программирования компонентов ядра и загрузчика операционной системы и отладки программ в различных режимах рабо-ты процессора.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Критерии получения оценки =&lt;br /&gt;
* В рамках курса слушателям предлагается выполнить 12 лабораторных работ. Каждая ла-бораторная работа сдаётся преподавателю или ассистенту посредством демонстрации результатов и устного ответа на вопросы. За сдачу лабораторных работ в срок начисляются баллы (максимум 33 балла). Максимальное количество начисленных баллов за лабораторную работу составляет от 1 до 4 в зависимости от сложности лабораторной работы.&lt;br /&gt;
Домашняя работа заключается в выполнении индивидуального задания, которое можно получить после сдачи 9-й лабораторной работы. Задание состоит из нескольких частей (не ме-нее 2), за выполнение каждой из которых начисляются баллы (максимум 42 балла). Задание мо-жет предназначаться как для индивидуального выполнения, так и для выполнения в группе. В случае выполнения задания в группе некоторые части задания засчитываются всем участникам группы, а остальные индивидуальны для одного из участников.&lt;br /&gt;
&lt;br /&gt;
= Итоговый контроль по дисциплине =&lt;br /&gt;
Проверка качества освоения дисциплины производится в форме письменного экзамена. Письменный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаме-национный билет содержит два вопроса из перечня вопросов к экзамену. За ответ на вопросы на экзамене начисляются баллы (максим 25 баллов). На подготовку ответа выделяется 4 часа.&lt;br /&gt;
&lt;br /&gt;
= Важные ссылки =&lt;br /&gt;
&#039;&#039;* 1.1 Базовый учебник&#039;&#039;&lt;br /&gt;
1.Д.В. Ефремов, Н.Ю. Комаров, А.В. Хорошилов. &amp;quot;Конструирование ядра операционной системы&amp;quot;, Издательский отдел факультета ВМК МГУ имени М.В. Ломоносова, Москва, 2015.  ISBN: 978-5-89407-549-5&lt;br /&gt;
&#039;&#039;* 1.2О Oсновная литература&#039;&#039;&lt;br /&gt;
* 1.Э. Таненбаум “Архитектура компьютера”, Питер, 2012 г.&lt;br /&gt;
* 2.Э. Таненбаум “Современные операционные системы”, Питер, 2011 г.&lt;br /&gt;
* 3.Э. Таненбаум “Операционные системы. Разработка и реализация”, Питер, 2006 г.&lt;br /&gt;
* 4.А. Робачевский, С. Немнюгин, О. Стесик «Операционная система UNIX», БХВ Санкт-Петербург, 2010 г.&lt;br /&gt;
= Дополнительная литература = &lt;br /&gt;
* 1.C. A. R. Hoare, Monitors: An Operating System Structuring Concept. Communications of the ACM, 17(10):549--557, 1974.&lt;br /&gt;
* 2.Thomas W. Doeppner “Operating Systems In Depth: Design and Programming” Wiley, 2010&lt;br /&gt;
* 3.Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman. “Linux Device Drivers”. &lt;br /&gt;
* 4.Ellen Siever, Stephen Figgins, Robert Love, Arnold Robbins. “Linux in a Nutshell”. O&#039;Relly Media, 2009.&lt;br /&gt;
* 5.Скотт Шакон. «Про Git». Apress. Перевод на русский. (http://git-scm.com/book/ru).&lt;br /&gt;
* 6. Tool Interface Standard Executable and Linking Format (ELF) Specification Version 1.2.&lt;br /&gt;
* 7.Unified Extensible Firmware Interface (UEFI) Specification (2.8A).&lt;br /&gt;
* 8.Advanced Configuration and Power Interface (ACPI) Specification (6.3).&lt;br /&gt;
* 9.ISO/IEC 9899:2018 Information technology — Programming languages — C.&lt;br /&gt;
* 10.IA-32 Intel Architecture Software Developer&#039;s Manual Volume 1: Basic Architecture. Basic 80x86 architecture and programming environment. http://developer.intel.com. &lt;br /&gt;
* 11.IA-32 Intel Architecture Software Developer&#039;s Manual Volume 3A: System Programming Guide. Operating system support, including segmentation, paging, tasks, interrupt and exception handling. http://developer.intel.com. &lt;br /&gt;
* 12.DWARF Debugging Information Format Committee. DWARF Debugging Information Format. Version 4.&lt;br /&gt;
* 13.IA-PC HPET (High Precision Event Timers) Specification (1.0a).&lt;br /&gt;
&lt;br /&gt;
= Рекомендации для самостоятельной работы студентов=&lt;br /&gt;
* Самостоятельная работа является важным элементом в успешном освоении курса. Вне аудиторных занятий рекомендуется изучать вспомогательные материалы, прикладываемые к ла-бораторным работам, дополнительную литературу и выполнять задание лабораторной работы, если аудиторного времени для её выполнения оказалось недостаточно или были обнаружены ошибки при прохождении тестов или сдаче лабораторной работы.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_2026&amp;diff=5403</id>
		<title>Проектирование программных систем 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_2026&amp;diff=5403"/>
		<updated>2026-10-28T21:36:12Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Общие сведения о курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
&lt;br /&gt;
Формат: очный&lt;br /&gt;
&lt;br /&gt;
Форма контроля: дифференцированный зачет&lt;br /&gt;
&lt;br /&gt;
Официальный сайт курса https://objectoriented.ru/pps-new. *актуально для 2026 года &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На курсе вы узнаете:&lt;br /&gt;
&lt;br /&gt;
как проводить анализ требований с применением гибких методов и UseCase 2.0, основы разработки технических заданий&lt;br /&gt;
основы языка моделирования UML2 и станете разбираться в продвинутых вопросах его применения&lt;br /&gt;
методы предметного-ориентированного проектирования (Domain-Driven Design, DDD) и их применение для создания микросервисных приложений (MSA)&lt;br /&gt;
фундаментальные методы разработки архитектуры программных систем, структурный анализ и проектирование&lt;br /&gt;
паттерны и приемы разработки облачных приложений (cloud-native applications), разработки распределенных систем и согласования состояний узлов&lt;br /&gt;
Практика предполагает решение задач на семинарах, выполнение и защиту двух заданий по командному курсовому проекту.&lt;br /&gt;
&lt;br /&gt;
Для разработчиков, системных аналитиков и будущих архитекторов программного обеспечения.&lt;br /&gt;
&lt;br /&gt;
=План занятий=&lt;br /&gt;
&lt;br /&gt;
Осенний семестр: 01 сентября – 14 декабря&lt;br /&gt;
Зачетная неделя: 15 – 21 декабря&lt;br /&gt;
Коллоквиум в середине курса: примерно 30 октября&lt;br /&gt;
Контрольная работа и диффзачет: примерно 18 декабря&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Руководитель курса=&lt;br /&gt;
Хританков Антон Сергеевич, https://objectoriented.ru/me:research&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Чат курса=&lt;br /&gt;
Заполните форму предварительной записи на курс https://tiny.cc/pps-intro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Программа курса=&lt;br /&gt;
Программу курса можно найти [https://objectoriented.ru/pps-new#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BB%D0%B0%D0%BD по ссылке]&lt;br /&gt;
&lt;br /&gt;
= План домашних заданий с уточнением сроков сдачи=&lt;br /&gt;
&lt;br /&gt;
На курсе могут быть домашние задания на неделю, вытекающие из темы семинара, оцениваются в составе оценки за работу на семинаре.&lt;br /&gt;
&lt;br /&gt;
Еще есть опциональный курсовой проект в ноябре-декабре, срок сдачи - за неделю до зачетной недели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Критерии оценивания и формы контроля успеваемости=&lt;br /&gt;
&lt;br /&gt;
(ДЗ, система бонусов, проект, зачет, экзамен)&lt;br /&gt;
Итоговый балл (ИБ) определяет ориентир для преподавателя для оценки на дифф.зачете по курсу. Преподаватель предпочитает, если нет других оснований, выставлять оценку согласно этому ориентиру.&lt;br /&gt;
&lt;br /&gt;
Правила оценивания [https://objectoriented.ru/pps-new#%D0%BE%D1%86%D0%B5%D0%BD%D0%BA%D0%B8_%D0%BF%D0%BE_%D0%BA%D1%83%D1%80%D1%81%D1%83 здесь]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Критерии оценивания, итоговый балл=&lt;br /&gt;
&lt;br /&gt;
ИБ = 0,2 * (ПЗ или ЛЗ)+ 0,3 * КЛК + 0,7 * (ПРЭ или ЭКЗ)&lt;br /&gt;
&lt;br /&gt;
ЛЗ + ПЗ - посещения лекций и работа на семинаре&lt;br /&gt;
&lt;br /&gt;
КЛК - оценка за коллоквиум&lt;br /&gt;
&lt;br /&gt;
ЭКЗ - устно-письменный экзамен в конце семестра&lt;br /&gt;
&lt;br /&gt;
ПРЭ - курсовой проект&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5402</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5402"/>
		<updated>2026-10-28T21:31:38Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Материалы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
&lt;br /&gt;
Лектор - Валентин Малых &lt;br /&gt;
&lt;br /&gt;
Семинарист - Дарья Лютова&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-autumn-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.11.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5401</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5401"/>
		<updated>2026-10-28T21:30:05Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Перезачёт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
&lt;br /&gt;
Лектор - Валентин Малых &lt;br /&gt;
&lt;br /&gt;
Семинарист - Дарья Лютова&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.11.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5400</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5400"/>
		<updated>2026-10-28T21:29:50Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Пересдача */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
&lt;br /&gt;
Лектор - Валентин Малых &lt;br /&gt;
&lt;br /&gt;
Семинарист - Дарья Лютова&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.02.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5399</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5399"/>
		<updated>2026-10-28T21:28:57Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
==Команда курса==&lt;br /&gt;
&lt;br /&gt;
Лектор - Валентин Малых &lt;br /&gt;
&lt;br /&gt;
Семинарист - Дарья Лютова&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.02.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму] &#039;&#039;&#039;до 28.08.2026&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5398</id>
		<title>Интерпретируемые методы классификации и порождения знаний</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5398"/>
		<updated>2026-10-28T21:26:05Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* План домашних заданий с уточнением сроков сдачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
Курс «Интерпретируемые методы классификации и порождения знаний» посвящён современным методам анализа данных и машинного обучения, которые обеспечивают не только высокую точность, но и интерпретируемость результатов. Основу курса составляет теория формальных понятий (Formal Concept Analysis, FCA) и её обобщения, включая узорные структуры. В рамках занятий студенты познакомятся с математическими основами теории решёток, построением и анализом иерархий объектов и признаков, изучат методы построения импликаций, ассоциативных правил и деревьев решений, а также их приложения в задачах классификации и анализа данных. Особое внимание уделяется интерпретируемым моделям, которые позволяют объяснять полученные знания и делать выводы на их основе. Ожидается, что после завершения курса студенты будут владеть инструментарием для построения прозрачных моделей анализа данных, понимать алгоритмическую сложность изучаемых задач и уметь применять эти методы в исследовательских и прикладных проектах.&lt;br /&gt;
* Формат: онлайн&lt;br /&gt;
* Форма контроля:  3 самостоятельные работы и домашняя работа (проект)&lt;br /&gt;
&lt;br /&gt;
== План занятий ==&lt;br /&gt;
* осенний семестр: 16 сентября – 14 декабря 2026 г.&lt;br /&gt;
* зачетная неделя: 15 – 21 декабря 2026 г.&lt;br /&gt;
* доп. выходные: 04 ноября 2026&lt;br /&gt;
&lt;br /&gt;
=Расписание занятий=&lt;br /&gt;
Занятия проходят с 9 сентября раз в неделю (1,5 часа) в среду в 15:30 - 16:55&lt;br /&gt;
* Формат: первая неделя — вводная лекция + семинар. Далее занятия чередуются: одна неделя лекция, следующая неделя семинар.&lt;br /&gt;
&lt;br /&gt;
09.09.2026 — Введение в курс. Отношения и графы (лекция + семинар)&lt;br /&gt;
 — Упорядоченные множества в анализе данных: Порядки, их графы и диаграммы (лекция)&lt;br /&gt;
 — Семинар: Порядки, их графы и диаграммы (семинар)&lt;br /&gt;
 — Теория решёток: Полурешётки и решётки (лекция)&lt;br /&gt;
 — Самостоятельная работа 1 &lt;br /&gt;
&lt;br /&gt;
 — Анализ формальных понятий (АФП) (лекция)&lt;br /&gt;
 — Семинар по АФП (семинар)&lt;br /&gt;
 — АФП: Импликации, базисы, алгоритм построения решёток (лекция)&lt;br /&gt;
 — Семинар по импликациям и базисам (семинар)&lt;br /&gt;
 — Самостоятельная работа 2 &lt;br /&gt;
 — АФП: Многозначный контекст, функциональные зависимости (лекция)&lt;br /&gt;
 — Семинар по многозначным контекстам (семинар)&lt;br /&gt;
 — АФП: Шкалирование и работа со сложными признаками (лекция)&lt;br /&gt;
 — Самостоятельная работа 3 &lt;br /&gt;
 — Презентации проектов (семинар)&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса ==&lt;br /&gt;
Д-р физ-мат. наук Кузнецов Сергей Олегович&lt;br /&gt;
== Преподаватели курса ==&lt;br /&gt;
Кузнецов Сергей Олегович&lt;br /&gt;
Томат Алан&lt;br /&gt;
== Чат курса ==&lt;br /&gt;
 [https://t.me/+zZ63IQs_D-E2NjY0 чат курса]&lt;br /&gt;
&lt;br /&gt;
== Программа курса и сдача домашек ==&lt;br /&gt;
Курс посвящён интерпретируемым методам классификации и порождения знаний на основе анализа формальных понятий (Formal Concept Analysis, FCA) и узорных структур.&lt;br /&gt;
 Основные темы включают:&lt;br /&gt;
отношения и графы, частичные порядки и решётки;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
анализ формальных понятий: построение решёток, импликации, базисы, функциональные зависимости;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
многозначные контексты, шкалирование, узорные структуры;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ассоциативные правила и деревья решений в терминах FCA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
интерпретируемые модели машинного обучения и их применение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== План домашних заданий с уточнением сроков сдачи ==&lt;br /&gt;
Вместо традиционных семинаров выполняются три самостоятельные работы и финальный проект:&lt;br /&gt;
Самостоятельная работа 1 — 08.10.2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 2 — 12.11.2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 3 — 10.12.2026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Презентация проекта — 17.12.2026&lt;br /&gt;
Репозиторий проекта:&lt;br /&gt;
https://gitlab.com/Al_Toretto/lazy_fca_learning&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
3 самостоятельные работы — по 2.5 балла (максимум 7.5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проект — 4 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 дополнительный балл за активность на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Максимум: 12.5 баллов. Итоговая оценка за курс = min(10, набранные баллы).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5397</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5397"/>
		<updated>2026-10-28T21:22:37Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Материалы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-autumn-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.11.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5396</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5396"/>
		<updated>2026-10-28T21:18:30Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Перезачёт */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.11.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5395</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5395"/>
		<updated>2026-10-28T21:18:10Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Пересдача */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.02.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5394</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5394"/>
		<updated>2026-10-28T21:17:26Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Пересдача */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.02.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму] &#039;&#039;&#039;до 28.11.2026&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Foundations_of_Programming_I_2026&amp;diff=5393</id>
		<title>Foundations of Programming I 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Foundations_of_Programming_I_2026&amp;diff=5393"/>
		<updated>2026-10-28T21:10:14Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Programming technologies=&lt;br /&gt;
&lt;br /&gt;
===Lector===&lt;br /&gt;
Lugovtcev Gleb&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
&lt;br /&gt;
Saturday&lt;br /&gt;
&lt;br /&gt;
Lecture 10:35-12:00, &lt;br /&gt;
&lt;br /&gt;
Seminar 12:10-13:35 &lt;br /&gt;
&lt;br /&gt;
Class 705 КПМ.&lt;br /&gt;
&lt;br /&gt;
==Lecture topics==&lt;br /&gt;
&lt;br /&gt;
1. From Bits to a Working Computer&lt;br /&gt;
&lt;br /&gt;
2. CPU, Memory, and Storage&lt;br /&gt;
&lt;br /&gt;
3. Soldering and Digital Electronics&lt;br /&gt;
&lt;br /&gt;
4. Operating Systems and Abstraction&lt;br /&gt;
&lt;br /&gt;
5. Kernel, Memory, and Processes&lt;br /&gt;
&lt;br /&gt;
6. WSL and PowerShell&lt;br /&gt;
&lt;br /&gt;
7. Linux in VirtualBox&lt;br /&gt;
&lt;br /&gt;
8. Bash and Linux Power Tools&lt;br /&gt;
&lt;br /&gt;
9. Git: Snapshots, Branches, and Remotes&lt;br /&gt;
&lt;br /&gt;
10. AI-Assisted Coding and Python&lt;br /&gt;
&lt;br /&gt;
11. Containers and Docker&lt;br /&gt;
&lt;br /&gt;
12. CI/CD with GitHub Actions&lt;br /&gt;
&lt;br /&gt;
13. Roles in an IT Product Team&lt;br /&gt;
&lt;br /&gt;
14. Building a Personal IT Roadmap&lt;br /&gt;
&lt;br /&gt;
15. Final Project Presentation and Course Review&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5347</id>
		<title>Интерпретируемые методы классификации и порождения знаний</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5347"/>
		<updated>2026-09-16T12:09:45Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
Курс «Интерпретируемые методы классификации и порождения знаний» посвящён современным методам анализа данных и машинного обучения, которые обеспечивают не только высокую точность, но и интерпретируемость результатов. Основу курса составляет теория формальных понятий (Formal Concept Analysis, FCA) и её обобщения, включая узорные структуры. В рамках занятий студенты познакомятся с математическими основами теории решёток, построением и анализом иерархий объектов и признаков, изучат методы построения импликаций, ассоциативных правил и деревьев решений, а также их приложения в задачах классификации и анализа данных. Особое внимание уделяется интерпретируемым моделям, которые позволяют объяснять полученные знания и делать выводы на их основе. Ожидается, что после завершения курса студенты будут владеть инструментарием для построения прозрачных моделей анализа данных, понимать алгоритмическую сложность изучаемых задач и уметь применять эти методы в исследовательских и прикладных проектах.&lt;br /&gt;
* Формат: онлайн&lt;br /&gt;
* Форма контроля:  3 самостоятельные работы и домашняя работа (проект)&lt;br /&gt;
&lt;br /&gt;
== План занятий ==&lt;br /&gt;
* осенний семестр: 16 сентября – 14 декабря 2026 г.&lt;br /&gt;
* зачетная неделя: 15 – 21 декабря 2026 г.&lt;br /&gt;
* доп. выходные: 04 ноября 2026&lt;br /&gt;
&lt;br /&gt;
=Расписание занятий=&lt;br /&gt;
Занятия проходят с 9 сентября раз в неделю (1,5 часа) в среду в 15:30 - 16:55&lt;br /&gt;
* Формат: первая неделя — вводная лекция + семинар. Далее занятия чередуются: одна неделя лекция, следующая неделя семинар.&lt;br /&gt;
&lt;br /&gt;
09.09.2026 — Введение в курс. Отношения и графы (лекция + семинар)&lt;br /&gt;
 — Упорядоченные множества в анализе данных: Порядки, их графы и диаграммы (лекция)&lt;br /&gt;
 — Семинар: Порядки, их графы и диаграммы (семинар)&lt;br /&gt;
 — Теория решёток: Полурешётки и решётки (лекция)&lt;br /&gt;
 — Самостоятельная работа 1 &lt;br /&gt;
&lt;br /&gt;
 — Анализ формальных понятий (АФП) (лекция)&lt;br /&gt;
 — Семинар по АФП (семинар)&lt;br /&gt;
 — АФП: Импликации, базисы, алгоритм построения решёток (лекция)&lt;br /&gt;
 — Семинар по импликациям и базисам (семинар)&lt;br /&gt;
 — Самостоятельная работа 2 &lt;br /&gt;
 — АФП: Многозначный контекст, функциональные зависимости (лекция)&lt;br /&gt;
 — Семинар по многозначным контекстам (семинар)&lt;br /&gt;
 — АФП: Шкалирование и работа со сложными признаками (лекция)&lt;br /&gt;
 — Самостоятельная работа 3 &lt;br /&gt;
 — Презентации проектов (семинар)&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса ==&lt;br /&gt;
Д-р физ-мат. наук Кузнецов Сергей Олегович&lt;br /&gt;
== Преподаватели курса ==&lt;br /&gt;
Кузнецов Сергей Олегович&lt;br /&gt;
Томат Алан&lt;br /&gt;
== Чат курса ==&lt;br /&gt;
 [https://t.me/+zZ63IQs_D-E2NjY0 чат курса]&lt;br /&gt;
&lt;br /&gt;
== Программа курса и сдача домашек ==&lt;br /&gt;
Курс посвящён интерпретируемым методам классификации и порождения знаний на основе анализа формальных понятий (Formal Concept Analysis, FCA) и узорных структур.&lt;br /&gt;
 Основные темы включают:&lt;br /&gt;
отношения и графы, частичные порядки и решётки;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
анализ формальных понятий: построение решёток, импликации, базисы, функциональные зависимости;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
многозначные контексты, шкалирование, узорные структуры;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ассоциативные правила и деревья решений в терминах FCA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
интерпретируемые модели машинного обучения и их применение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== План домашних заданий с уточнением сроков сдачи ==&lt;br /&gt;
Вместо традиционных семинаров выполняются три самостоятельные работы и финальный проект:&lt;br /&gt;
Самостоятельная работа 1 — 08.10.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 2 — 12.11.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 3 — 10.12.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Презентация проекта — 17.12.2025&lt;br /&gt;
Репозиторий проекта:&lt;br /&gt;
https://gitlab.com/Al_Toretto/lazy_fca_learning&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
3 самостоятельные работы — по 2.5 балла (максимум 7.5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проект — 4 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 дополнительный балл за активность на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Максимум: 12.5 баллов. Итоговая оценка за курс = min(10, набранные баллы).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5346</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5346"/>
		<updated>2026-09-16T10:11:22Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* О курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
&lt;br /&gt;
Этот курс создан для сильных технарей и экспертов, которые выросли из роли «лучших исполнителей», но поняли, что в одиночку больше не масштабируются.&lt;br /&gt;
 &lt;br /&gt;
Если вы внезапно стали тимлидом или готовитесь возглавить отдел, то эта программа поможет совершить переход от личного ремесла к системному управлению.&lt;br /&gt;
&lt;br /&gt;
Главное отличие курса — мы идем не от абстрактной теории менеджмента, а от реальных болей первого года руководства. &lt;br /&gt;
&lt;br /&gt;
Вместо пересказа учебников будем разбирать то, с чем вы столкнетесь завтра утром: как защитить откровенно провальный проект перед разъяренным заказчиком; что делать, когда разработчик увольняется за день до релиза; как ставить задачи тем, кто еще вчера был твоим приятелем по коду.&lt;br /&gt;
&lt;br /&gt;
Почему хороший специалист не всегда становится хорошим руководителем?&lt;br /&gt;
&lt;br /&gt;
Этот тезис является центральной осью всего обучения.&lt;br /&gt;
&lt;br /&gt;
Курс последовательно разбирает ловушку компетентности: то, что делало человека ценным как специалиста (умение быстро и качественно писать код, находить баги или строить архитектуру), начинает мешать ему как руководителю.&lt;br /&gt;
&lt;br /&gt;
Хороший руководитель достигает цели не своими руками, а организуя систему, где другие люди могут работать эффективно. Специалисту приходится отказаться от статуса «самого сильного звена» и перейти в позицию мультипликатора. Типичный барьер перехода — страх потери контроля и авторитета («если я перестану делать это сам, моя ценность упадет»). &lt;br /&gt;
Курс объясняет, что новая зона ответственности теперь измеряется не количеством закрытых задач в таск-трекере, а стабильностью системы, предсказуемостью сроков, ростом людей и способностью бизнеса зарабатывать деньги благодаря работе этой системы.&lt;br /&gt;
&lt;br /&gt;
Формат обучения:&lt;br /&gt;
&lt;br /&gt;
Обучение максимально ориентировано на практику. Теория занимает не более 20% времени, остальное — групповые кейсы, модерируемые дискуссии, ролевые игры и постоянная защита принимаемых решений. Это позволяет перенести полученные навыки в реальную рабочую среду уже на следующий день после модуля. &lt;br /&gt;
&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
==Регистрация на факультатив==&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5343</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5343"/>
		<updated>2026-09-15T13:03:30Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* О курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
&lt;br /&gt;
Этот курс создан для сильных технарей и экспертов, которые выросли из роли «лучших исполнителей», но поняли, что в одиночку больше не масштабируются.&lt;br /&gt;
 &lt;br /&gt;
Если вы внезапно стали тимлидом или готовитесь возглавить отдел, то эта программа поможет совершить переход от личного ремесла к системному управлению.&lt;br /&gt;
&lt;br /&gt;
Главное отличие курса — мы идем не от абстрактной теории менеджмента, а от реальных болей первого года руководства. &lt;br /&gt;
&lt;br /&gt;
Вместо пересказа учебников будем разбирать то, с чем вы столкнетесь завтра утром: как защитить откровенно провальный проект перед разъяренным заказчиком; что делать, когда разработчик увольняется за день до релиза; как ставить задачи тем, кто еще вчера был твоим приятелем по коду.&lt;br /&gt;
&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
==Регистрация на факультатив==&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5342</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5342"/>
		<updated>2026-09-15T13:02:41Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* О курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
&lt;br /&gt;
Этот курс создан для сильных технарей и экспертов, которые выросли из роли «лучших исполнителей», но поняли, что в одиночку больше не масштабируются. &lt;br /&gt;
Если вы внезапно стали тимлидом или готовитесь возглавить отдел, то эта программа поможет совершить переход от личного ремесла к системному управлению.&lt;br /&gt;
Главное отличие курса — мы идем не от абстрактной теории менеджмента, а от реальных болей первого года руководства. Вместо пересказа учебников будем разбирать то, с чем вы столкнетесь завтра утром: как защитить откровенно провальный проект перед разъяренным заказчиком; что делать, когда разработчик увольняется за день до релиза; как ставить задачи тем, кто еще вчера был твоим приятелем по коду.&lt;br /&gt;
&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
==Регистрация на факультатив==&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Data_Structures_and_Algorithms_II_2026&amp;diff=5340</id>
		<title>Data Structures and Algorithms II 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Data_Structures_and_Algorithms_II_2026&amp;diff=5340"/>
		<updated>2026-09-15T07:07:38Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Course Description==&lt;br /&gt;
The purpose of the &amp;quot;Algorithms and Data Structures&amp;quot; course is to familiarize students with standard algorithms used in software development and data analysis. Within the course, both theoretical aspects of algorithm design and details of their implementation are considered. Students will learn to argue solutions of algorithmic problems, write time- and memory-efficient implementations of algorithms, and pass code reviews. The course covers algorithms for working with graphs, computational geometry, combinatorics, and number theory.&lt;br /&gt;
&lt;br /&gt;
===Сourse team===&lt;br /&gt;
&lt;br /&gt;
Lecturer - Petr Kulagin&lt;br /&gt;
&lt;br /&gt;
Assistant - Dib Bashar&lt;br /&gt;
&lt;br /&gt;
===Schedule===&lt;br /&gt;
&lt;br /&gt;
Tuesday 17:05-20:00&lt;br /&gt;
&lt;br /&gt;
ЛК 319&lt;br /&gt;
&lt;br /&gt;
15.09.2026 - The class will be held online. Link in the course chat.&lt;br /&gt;
&lt;br /&gt;
==Syllabus==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Week&lt;br /&gt;
! Topic&lt;br /&gt;
! Contest&lt;br /&gt;
|-&lt;br /&gt;
| 1||Graphs. Main definitions. Breadth first search (BFS). Wave algorithm|| Revision contest (does not affect the grade) &lt;br /&gt;
|-&lt;br /&gt;
| 2||Depth first search (DFS). Cycle search, topological sort, strongly connected component extraction, graph condensation|| DFS, BFS. &lt;br /&gt;
|-&lt;br /&gt;
| 3||Shortest paths in weighted graphs. Dijkstra, Floyd, and Ford-Bellman algorithms. Path recovery|| &lt;br /&gt;
|-&lt;br /&gt;
| 4||Spanning trees. Disjoint set systems. Prim, Kruskal, and Boruvka algorithms|| Shortest paths, spanning trees. &lt;br /&gt;
|-&lt;br /&gt;
| 5||Flow definition. Ford-Fulkerson theorem. Edmonds-Karp algorithm.||  &lt;br /&gt;
|-&lt;br /&gt;
| 6||Flows. Dinic&#039;s algorithm.|| Flows, matchings.&lt;br /&gt;
|-&lt;br /&gt;
| 7||Matchings. Kuhn&#039;s algorithm for finding the maximum matching. Stor-Wagner&#039;s algorithm for finding the minimum cut. || Revision contest (does not affect the grade) &lt;br /&gt;
|-&lt;br /&gt;
| 8||Test 1. Graphs.Geometric primitives: point, line, segment, circle. Vectors. Dot and cross products. Finding intersections and calculating distances. (Beginning)|| Geometry–1. Primitives.&lt;br /&gt;
|-&lt;br /&gt;
| 9||Geometric primitives: point, line, segment, circle. Vectors. Dot and cross products. Finding intersections and calculating distances.|| &lt;br /&gt;
|-&lt;br /&gt;
| 10||Testing a polygon for convexity and finding its area. Algorithms for constructing a convex hull.|| Geometry-2. &lt;br /&gt;
|-&lt;br /&gt;
| 11||Finding a pair of closest and a pair of distant points. Minkowski sum.|| &lt;br /&gt;
|-&lt;br /&gt;
| 12||Test - 2. Geometry.Combinatorics. Permutations, combinations, arrangements, subsets. Finding the next and previous objects, finding objects by number. (Beginning). ||Combinatorics.&lt;br /&gt;
|-&lt;br /&gt;
| 13||Combinatorics. Permutations, combinations, arrangements, subsets. Finding the next and previous objects, finding an object by number. (Continued).&lt;br /&gt;
Regular bracket sequences. Catalan numbers.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14||Number theory. Modular arithmetic. Algorithms for computing the greatest common divisor (GCD) and least common mimic (LCM). Linear factorization of the GCD. Solving linear Diophantine equations with two unknowns. Sieve of Eratosthenes. Binary exponentiation algorithm. Chinese remainder theorem.|| Number theory.&lt;br /&gt;
|-&lt;br /&gt;
| 15||Final lesson. Final test.&lt;br /&gt;
Algorithms for minimizing energy on graphs. || &lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
==Form of control==&lt;br /&gt;
&lt;br /&gt;
Differentiated credit + exam.&lt;br /&gt;
&lt;br /&gt;
The course includes 7 contests, 3 theoretical tasks, 2 code review tasks, 2 tests for understanding basic definitions and algorithms, and a final quiz. The course does not provide for automatic passing. An exam is scheduled for the course.&lt;br /&gt;
&lt;br /&gt;
==Exam format== &lt;br /&gt;
During the exam, the student will receive a ticket consisting of 3 questions from different topics of the course with varying levels of difficulty. Preparation time is 1.5 hours. During this time, the student must fully complete the ticket in writing in English. After that, the answer to the examiner begins. After answering the ticket, the student may be asked questions on other topics of the course, as well as be offered to solve problems.&lt;br /&gt;
==Evaluation criteri==&lt;br /&gt;
To get a satisfactory rating, a student must score at least 50% points and solve at least 1 problem in each contest, as well as pass 1 code review.&lt;br /&gt;
To get an excellent score, a student must score at least 85% points and solve at least half of the tasks in each contest, as well as pass 2 code reviews.&lt;br /&gt;
To get a positive score on the final test, a student must score at least 50% of the points.&lt;br /&gt;
To get an excellent score on the exam, a student must answer 3 questions from the ticket, solve the proposed tasks.&lt;br /&gt;
To get a good score on the exam, a student must answer 2 questions from the ticket, and answer the additional questions well.&lt;br /&gt;
To get a satisfactory score on the exam, a student must answer 1 question from the ticket, know the basic definitions and statements.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5333</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5333"/>
		<updated>2026-09-14T13:47:47Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
==Регистрация на факультатив==&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5332</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5332"/>
		<updated>2026-09-14T13:46:45Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
С 21 сентября &lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн [https://atp-fivt.ktalk.ru/maqydutxtwmm по ссылке] &lt;br /&gt;
&lt;br /&gt;
===Регистрация на факультатив===&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
===Чат курса===&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5331</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5331"/>
		<updated>2026-09-14T13:43:19Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн https://atp-fivt.ktalk.ru/maqydutxtwmm&lt;br /&gt;
&lt;br /&gt;
===Регистрация на факультатив===&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
===Чат курса===&lt;br /&gt;
&lt;br /&gt;
[http://https%20://t.me/+C63lq1x3r-xiMzFi Чат курса]&lt;br /&gt;
&lt;br /&gt;
Удалите пробел перед знаком двоеточия :&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5330</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5330"/>
		<updated>2026-09-14T13:40:43Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Форма регистрации на факультатив */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн https://atp-fivt.ktalk.ru/maqydutxtwmm&lt;br /&gt;
&lt;br /&gt;
===Регистрация на факультатив===&lt;br /&gt;
&lt;br /&gt;
Для регистрации заполните [https://forms.gle/ABPschQoKEWzBxsE7 форму]&lt;br /&gt;
&lt;br /&gt;
===Чат курса===&lt;br /&gt;
&lt;br /&gt;
https://t.me/+C63lq1x3r-xiMzFi&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5327</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5327"/>
		<updated>2026-09-14T12:22:10Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Чат курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн https://atp-fivt.ktalk.ru/maqydutxtwmm&lt;br /&gt;
&lt;br /&gt;
===Форма регистрации на факультатив===&lt;br /&gt;
&lt;br /&gt;
https://forms.gle/ABPschQoKEWzBxsE7&lt;br /&gt;
&lt;br /&gt;
===Чат курса===&lt;br /&gt;
&lt;br /&gt;
https://t.me/+C63lq1x3r-xiMzFi&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5324</id>
		<title>От специалиста к руководителю: как управлять проектами, людьми и изменениями 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9E%D1%82_%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D0%B0_%D0%BA_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8E:_%D0%BA%D0%B0%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%D0%BC%D0%B8,_%D0%BB%D1%8E%D0%B4%D1%8C%D0%BC%D0%B8_%D0%B8_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8_2026&amp;diff=5324"/>
		<updated>2026-09-14T11:37:21Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* О курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==О курсе==&lt;br /&gt;
===Преподаватель=== &lt;br /&gt;
 Федонина Лилия&lt;br /&gt;
===Презентация курса===&lt;br /&gt;
[https://drive.google.com/file/d/17dQiLkOXSH5QpA1Pa8nv30-gViFE7IMF/view?usp=sharing По ссылке размещена видеопрезентация] курса от преподавателя Федониной Лилии&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Понедельник 18:40&lt;br /&gt;
&lt;br /&gt;
Онлайн https://atp-fivt.ktalk.ru/maqydutxtwmm&lt;br /&gt;
&lt;br /&gt;
===Форма регистрации на факультатив===&lt;br /&gt;
&lt;br /&gt;
https://forms.gle/ABPschQoKEWzBxsE7&lt;br /&gt;
&lt;br /&gt;
===Чат курса===&lt;br /&gt;
&lt;br /&gt;
==Программа курса==&lt;br /&gt;
&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Тема&lt;br /&gt;
! Лекция&lt;br /&gt;
! Практика&lt;br /&gt;
! форма контроля&lt;br /&gt;
|-&lt;br /&gt;
| 1. От специалиста к руководителю ||Почему хороший специалист не всегда становится хорошим руководителем. Новая зона ответственности. Типичные ошибки первых месяцев.||Кейс «Вчера разработчик — сегодня руководитель команды»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 2. Что на самом деле делает руководитель|| Роль Pуководителя, управление рисками, ожиданиями, приоритетами и коммуникациями||Кейс «Проект есть, полномочий нет»|| Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 3. Как управлять без формальной власти ||Переговоры, влияние, конфликты, стейкхолдеры, эскалации ||Ролевая игра «Конфликт бизнеса, разработки и заказчика»||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 4. От идеи до релиза||Жизненный цикл крупного IT-проекта. Бизнес-кейс, бюджет, планирование, подрядчики, релиз||Разработка плана проекта по заданному кейсу||Работа в командах, защита решения &lt;br /&gt;
|-&lt;br /&gt;
| 5. Почему проекты проваливаются||Основные причины провалов проектов. Ошибки, которые невозможно увидеть в плане проекта||Анализ реального кейса и поиск причин провала||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 6. Управление неопределённостью||Принятие решений при недостатке информации. Приоритизация. Управление рисками||Кейс с изменяющимися вводными («живой проект»)||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 7. Коммуникации руководителя||Как проводить сложные переговоры, давать обратную связь, управлять конфликтами и защищать решения перед руководством||Моделирование переговоров с заказчиком, командой и руководителем||Работа в командах, защита решения&lt;br /&gt;
|-&lt;br /&gt;
| 8. Итоговая деловая игра||Краткое обобщение курса и разбор типичных ошибок||Сквозной проект: полный жизненный цикл проекта с изменяющимися условиями, итоговая защита||Командная защита итогового кейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Формула итоговой оценки==&lt;br /&gt;
30% - посещаемость;&lt;br /&gt;
20% - активность на семинарах и участие в обсуждениях;&lt;br /&gt;
20% - выполнение практических кейсов;&lt;br /&gt;
30% - итоговая командная защита проекта.&lt;br /&gt;
&lt;br /&gt;
==Критерии оценки==&lt;br /&gt;
Анализ ситуации - 5 баллов&lt;br /&gt;
Качество предложенного решения - 5 баллов&lt;br /&gt;
Аргументация и оценка рисков - 5 баллов&lt;br /&gt;
Защита решения и ответы на вопросы - 5 баллов&lt;br /&gt;
Максимум - 20 баллов за один кейс.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5319</id>
		<title>Высоконадёжные вычисления и системы реального времени</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5319"/>
		<updated>2026-09-13T16:49:58Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Материалы занятий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
Предлагаемый курс адресован студентам в области инженерии программного обеспечения (ПО) и аппаратно-программных комплексов (системной инженерии), интересующихся проблемами построения систем реального времени (СРВ) с критическими требованиями по надежности.&lt;br /&gt;
&lt;br /&gt;
К такого рода системам относятся, например, системы управления космической техникой, авиационной техникой (как пилотируемой, так и беспилотной), ядерными и химическими реакторами, высокоскоростным железнодорожным и беспилотным автомобильным  транспортом, определенными медико-биологическими и финансовыми процессами, а также вооружениями и военной техникой. «Критический» уровень требований по надежности таких систем означает, что нарушение каких-либо свойств системы, составляющих надежность в широком смысле слова (например, функциональной или темпоральной корректности, отказоустойчивости, информационной безопасности и пр.) может привести к гибели людей или потенциально-неограниченному материальному ущербу.&lt;br /&gt;
&lt;br /&gt;
За рубежом, главным образом во Франции и других европейских странах, уже в середине 1990-х годов инженерия высоконадежных СРВ оформилась в самостоятельный раздел информационных технологий в индустрии, а также в отдельную академическую дисциплину из области компьютерных наук. К сожалению, в Российской Федерации данное направление до сих пор недостаточно развито, и методы инженерии высоконадежных систем часто не применяются даже в тех областях, где их применение является уже общепринятой мировой практикой. Например, авария космического аппарата «Луна-25» в августе 2023 года произошла по причине непроведения темпорального анализа коммуникаций между задачами в бортовой системе управления, в результате чего не было своевременно обработано критическое сообщение от бортового акселерометра, что привело к столкновению аппарата с Луной.&lt;br /&gt;
&lt;br /&gt;
Одним из факторов, до сих пор затрудняющих внедрение современных методов проектирования высоконадежных СРВ в российскую инженерную практику, является проблема подготовки соответствующих кадров. Данный курс призван восполнить этот пробел — он является первой и единственной в России образовательной программой, целью которой является подготовка отечественных специалистов в области высоконадежных СРВ. &lt;br /&gt;
&lt;br /&gt;
Следует отметить, что высоконадежные СРВ одновременно являются, как правило, наукоемким программным обеспечением. Поэтому специалист в области высоконадежной системной инженерии должен владеть междисциплинарным комплексом знаний и навыков:&lt;br /&gt;
— соответствующими знаниями из области компьютерных наук;&lt;br /&gt;
— методами прикладной математики (дифференциальных уравнений, вариационного исчисления, теории управления);&lt;br /&gt;
— а также иметь базовые знания в предметной области, связанной с управляемым объектом (например, в теоретической механике, аэродинамике или нейтронной физике).&lt;br /&gt;
&lt;br /&gt;
Знания и навыки, приобретенные студентами в результате изучения данного курса, могут быть использованы в будущей профессиональной деятельности в структурах Роскосмоса, Росатома, Ростеха, РЖД и других высокотехнологичных российских компаний.&lt;br /&gt;
&lt;br /&gt;
==План занятий==&lt;br /&gt;
&lt;br /&gt;
* осенний семестр: 01 сентября – 14 декабря &lt;br /&gt;
* зачетная неделя: 15 – 21 декабря&lt;br /&gt;
* доп. выходные:  04 ноября 2026 г.&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Занятия проводятся онлайн со 2 сентября &lt;br /&gt;
&lt;br /&gt;
Среда 17:00&lt;br /&gt;
&lt;br /&gt;
Ссылка на занятие размещена в чате курса&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса и единственный преподаватель==&lt;br /&gt;
Меркин Леонид Альбертович&lt;br /&gt;
&lt;br /&gt;
== Чат курса==&lt;br /&gt;
[https://t.me/+f6FXcwarto1kYzFi чат в Telegram]&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В рамках программы изучаются следующие темы:&lt;br /&gt;
&lt;br /&gt;
* Часть I: Основы теории систем реального времени (СРВ).&lt;br /&gt;
&lt;br /&gt;
1. Критическое по надёжности ПО как специальный класс ПО. Его основные характеристики (в том числе real-time) и области применения -- аэрокосмическая, ядерная, химическая промышленность, высокоскоростной железнодорожный транспорт, национальная оборона.&lt;br /&gt;
&lt;br /&gt;
2. Свойства надёжности ПО -- функциональные и нефункциональные (в первую очередь темпоральные). Опредедение СРВ, их основные свойства и примеры. Уровни критичности задач в СРВ (hard-, firm-, soft-real-time). Взаимосвязь между понятиями: СРВ, Concurrency, Parallelism.&lt;br /&gt;
&lt;br /&gt;
3. Методы дизайна и верификации темпоральных свойств 1-процессорных СРВ. Алгоритмы планирования задач. Приоритеты задач и уравнение планируемости (schedulability equation). Периодические (time-driven) и спорадические (event-driven) задачи, их учет в уравнении планируемости.&lt;br /&gt;
&lt;br /&gt;
4. Коммуникации между задачами, блокировки, проблема инверсии приоритетов, dеadlock и livelock. Алгоритм наследования приоритетов как решение данной проблемы. Модификация уравнения планируемости в условиях блокировок.&lt;br /&gt;
&lt;br /&gt;
5. Распределенные СРВ (РСРВ). Шины и сети с детерминированным временем передачи данных (ARINC 664, AFDX). Проблема обеспечения темпоральной консистентности данных в РСРВ. Протокол time stamp&#039;ов, учитывающих максимальное время доставки сообщений.&lt;br /&gt;
&lt;br /&gt;
6. Холистический алгоритм планирования задач и коммуникаций в РСРВ, его итеративная реализация.&lt;br /&gt;
&lt;br /&gt;
7. РСРВ в условиях возможных ошибок обработки и передачи данных. Алгоритмы поддержания консистентного состояния РСРВ. &amp;quot;Алгоритм византийских генералов&amp;quot;. Связь с алгоритмами консистентности систем распределенного реестра.&lt;br /&gt;
&lt;br /&gt;
* Часть II: Практические аспекты СРВ&lt;br /&gt;
&lt;br /&gt;
8. Операционные системы (ОС, kernels, executives) и user-level компоненты СРВ. Требования к языкам программирования user-level компонент.&lt;br /&gt;
&lt;br /&gt;
9. Стандарт Real-Time POSIX и операционные системы, его реализующие. Legacy стандарты API ОСРВ.&lt;br /&gt;
&lt;br /&gt;
10. Linux как ОСРВ -- варианты, конфигурации, использование.&lt;br /&gt;
&lt;br /&gt;
11. C и C++ как языки программирования СРВ. MISRA C / C++ guidelines. Concurrency в современных стандартах C++ (11--26) и её взаимосвязь с СРВ. Отсутствие собственно СРВ свойств в стандартах C++, и как решить эту проблему через underlying ОСРВ.&lt;br /&gt;
&lt;br /&gt;
12. Язык программирования Ada (стандарт Ada 2022) для СРВ. Высоконадежный профиль Ada -- Ravenscar.&lt;br /&gt;
&lt;br /&gt;
13. Задание для самостоятельного изучения основных элементов Ada, так как полностью изучить её за лекционное время невозможно).&lt;br /&gt;
&lt;br /&gt;
14. ОСРВ RTEMS, её APIs (native,   POSIX и исторические),  применение в космической и зарубежной военной технике.&lt;br /&gt;
Интеграция RTEMS с Ada. C++ bindings to RTEMS API.&lt;br /&gt;
&lt;br /&gt;
15. ОСРВ FreeRTOS, её области применения. Ada и POSIX APIs.&lt;br /&gt;
&lt;br /&gt;
16. Формально-верифицированное микроядро seL4. Применение в качестве hypervisor&#039;a (для разделения компонент разного уровня критичности) и как РТОС. POSIX API (Ada binding пока отсутствует).&lt;br /&gt;
&lt;br /&gt;
17. Практическое задание на основе RTEMS, FreeRTOS или seL4 (по выбору), Ada или C++.&lt;br /&gt;
&lt;br /&gt;
* Часть 3: Методы инженерии высоконадежного наукоёмкого ПО&lt;br /&gt;
&lt;br /&gt;
18. Взаимосвязь между &amp;quot;наукоёмким&amp;quot; ПО и критическими по надежности системам реального времени. Языки программирования наукоёмких приложений (Fortran не учитываем): функциональные (ML как основа всего!), Ada, C++.&lt;br /&gt;
&lt;br /&gt;
19. Система типов языка программирования как отображение категорий реального мира на computer hardware. Система типов Hindley-Milner&#039;а как основа &amp;quot;сильных&amp;quot; систем типов (и её варианты: Ada generics &amp;amp; C++ templates).&lt;br /&gt;
&lt;br /&gt;
20. Необходимость отражения размерностей физических (в широком смысле) величин в системе типов. Dimension Types и их реализации в ML и C++. Библиотеки boost::units и DimTypes.&lt;br /&gt;
&lt;br /&gt;
21. Необходимость отражения различных систем координат в системе типов для векторных вычислений. Библиотека SpaceBallistics (C++).&lt;br /&gt;
&lt;br /&gt;
22. Проект с использованием библиотеки SpaceBallistics (в том числе интеграция с RTEMS): прототип системы управления космической ракетой-носителем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
23. От &amp;quot;сильных&amp;quot; систем типов к формальной верификации функциональных свойств ПО. Классы методов формальной верификации: для конечных автоматов (model checking), для логик 1-го порядка, логик высших порядков.&lt;br /&gt;
&lt;br /&gt;
24. Организация процесса разработки высоконадежного ПО с использованием формальной верификации, от сбора требований до генерации (или написания) верифицированного программного кода.&lt;br /&gt;
&lt;br /&gt;
25. Введение в B Method.&lt;br /&gt;
&lt;br /&gt;
26. Введение в Spark Ada.&lt;br /&gt;
&lt;br /&gt;
27. Очень краткое введение (если успеем) в Coq и Isabelle/HOL.&lt;br /&gt;
&lt;br /&gt;
== Проектные домашние задания ==&lt;br /&gt;
&lt;br /&gt;
* (13) выше, срок 2 недели от моменты выдачи задания&lt;br /&gt;
* (17) выше, срок 3 недели от момента выдачи задания&lt;br /&gt;
* (22) выше, срок 3 недели от момента выдачи задани&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;br /&gt;
[https://drive.google.com/drive/folders/1ysoTo3E7g-BHs7Id0j7Rm8E77J6eEx6v?ths=true Лекции]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5315</id>
		<title>Интерпретируемые методы классификации и порождения знаний</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5315"/>
		<updated>2026-09-09T16:10:50Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* План занятий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
Курс «Интерпретируемые методы классификации и порождения знаний» посвящён современным методам анализа данных и машинного обучения, которые обеспечивают не только высокую точность, но и интерпретируемость результатов. Основу курса составляет теория формальных понятий (Formal Concept Analysis, FCA) и её обобщения, включая узорные структуры. В рамках занятий студенты познакомятся с математическими основами теории решёток, построением и анализом иерархий объектов и признаков, изучат методы построения импликаций, ассоциативных правил и деревьев решений, а также их приложения в задачах классификации и анализа данных. Особое внимание уделяется интерпретируемым моделям, которые позволяют объяснять полученные знания и делать выводы на их основе. Ожидается, что после завершения курса студенты будут владеть инструментарием для построения прозрачных моделей анализа данных, понимать алгоритмическую сложность изучаемых задач и уметь применять эти методы в исследовательских и прикладных проектах.&lt;br /&gt;
* Формат: онлайн&lt;br /&gt;
* Форма контроля:  3 самостоятельные работы и домашняя работа (проект)&lt;br /&gt;
&lt;br /&gt;
== План занятий ==&lt;br /&gt;
* осенний семестр: 16 сентября – 14 декабря 2026 г.&lt;br /&gt;
* зачетная неделя: 15 – 21 декабря 2026 г.&lt;br /&gt;
* доп. выходные: 04 ноября 2026&lt;br /&gt;
&lt;br /&gt;
=Расписание занятий=&lt;br /&gt;
Занятия проходят с 9 сентября раз в неделю (1,5 часа) в среду в 15:30 - 16:55&lt;br /&gt;
* Формат: первая неделя — вводная лекция + семинар. Далее занятия чередуются: одна неделя лекция, следующая неделя семинар.&lt;br /&gt;
&lt;br /&gt;
09.09.2026 — Введение в курс. Отношения и графы (лекция + семинар)&lt;br /&gt;
 — Упорядоченные множества в анализе данных: Порядки, их графы и диаграммы (лекция)&lt;br /&gt;
 — Семинар: Порядки, их графы и диаграммы (семинар)&lt;br /&gt;
 — Теория решёток: Полурешётки и решётки (лекция)&lt;br /&gt;
 — Самостоятельная работа 1 &lt;br /&gt;
&lt;br /&gt;
 — Анализ формальных понятий (АФП) (лекция)&lt;br /&gt;
 — Семинар по АФП (семинар)&lt;br /&gt;
 — АФП: Импликации, базисы, алгоритм построения решёток (лекция)&lt;br /&gt;
 — Семинар по импликациям и базисам (семинар)&lt;br /&gt;
 — Самостоятельная работа 2 &lt;br /&gt;
 — АФП: Многозначный контекст, функциональные зависимости (лекция)&lt;br /&gt;
 — Семинар по многозначным контекстам (семинар)&lt;br /&gt;
 — АФП: Шкалирование и работа со сложными признаками (лекция)&lt;br /&gt;
 — Самостоятельная работа 3 &lt;br /&gt;
 — Презентации проектов (семинар)&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса ==&lt;br /&gt;
Д-р физ-мат. наук Кузнецов Сергей Олегович&lt;br /&gt;
== Преподаватели курса ==&lt;br /&gt;
Кузнецов Сергей Олегович&lt;br /&gt;
Томат Алан&lt;br /&gt;
== Чат курса ==&lt;br /&gt;
https://t.me/+Z112aXWXmEc1MDE0&lt;br /&gt;
== Программа курса и сдача домашек ==&lt;br /&gt;
Курс посвящён интерпретируемым методам классификации и порождения знаний на основе анализа формальных понятий (Formal Concept Analysis, FCA) и узорных структур.&lt;br /&gt;
 Основные темы включают:&lt;br /&gt;
отношения и графы, частичные порядки и решётки;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
анализ формальных понятий: построение решёток, импликации, базисы, функциональные зависимости;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
многозначные контексты, шкалирование, узорные структуры;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ассоциативные правила и деревья решений в терминах FCA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
интерпретируемые модели машинного обучения и их применение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== План домашних заданий с уточнением сроков сдачи ==&lt;br /&gt;
Вместо традиционных семинаров выполняются три самостоятельные работы и финальный проект:&lt;br /&gt;
Самостоятельная работа 1 — 08.10.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 2 — 12.11.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 3 — 10.12.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Презентация проекта — 17.12.2025&lt;br /&gt;
Репозиторий проекта:&lt;br /&gt;
https://gitlab.com/Al_Toretto/lazy_fca_learning&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
3 самостоятельные работы — по 2.5 балла (максимум 7.5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проект — 4 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 дополнительный балл за активность на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Максимум: 12.5 баллов. Итоговая оценка за курс = min(10, набранные баллы).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D0%9C%D0%98_%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%82%D0%B8_2026&amp;diff=5292</id>
		<title>ПМИ Современные компьютерные сети 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D0%9C%D0%98_%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%82%D0%B8_2026&amp;diff=5292"/>
		<updated>2026-09-05T23:17:25Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=О курсе=&lt;br /&gt;
&lt;br /&gt;
Основные блоки: &lt;br /&gt;
&lt;br /&gt;
1) Основы сетей – модели OSI/TCP-IP, физический и канальный уровни (Ethernet, Wi‑Fi и др.);&lt;br /&gt;
&lt;br /&gt;
2) Сетевая безопасность и архитектура защищённой сети – сегментация, DMZ, брандмауэры, VPN, IDS/IPS, криптография;&lt;br /&gt;
&lt;br /&gt;
3) Применение ИИ в сетевых архитектурах – AIOps и машинное обучение для управления сетью, прогнозирование трафика, обнаружение аномалий. Для проверки знаний используются лабораторные работы, тесты, мини-проекты и устные опросы.&lt;br /&gt;
&lt;br /&gt;
=Программа курса=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Неделя!!Лекции!! Семинары!!Домашние задания&lt;br /&gt;
|-&lt;br /&gt;
|1||Введение: роль компьютерных сетей, обзор модели OSI и модели TCP/IP.|| Обсуждение сценариев использования сетей (интернет, корпоративные сети).&lt;br /&gt;
||Тест на знание уровней OSI.&lt;br /&gt;
|-&lt;br /&gt;
|2||Физический уровень: среды передачи (витая пара, оптоволокно, радиосвязь), характеристики каналов, трансиверы.||Демонстрация разных кабельных сред и их свойств.||Задание: выбрать подходящий канал связи для заданных условий.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|3|| Канальный уровень: Ethernet (стандарт IEEE 802.3), MAC-адресация, кадры, VLAN, протоколы предотвращения петель (STP).||&lt;br /&gt;
Лабораторная: построение простой L2-топологии (коммутатор), проверка MAC-таблицы, эксперименты с VLAN.&lt;br /&gt;
||Краткий тест по Ethernet и VLAN; отчёт по лабораторной работе.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|4||Беспроводные сети: принципы Wi‑Fi (стандарты IEEE 802.11), Bluetooth, IoT-сети.&lt;br /&gt;
||Практическое занятие: настройка и защита Wi‑Fi-точки доступа (WPA2/WPA3), обзор IoT-протоколов.&lt;br /&gt;
||Тестирование по стандартам беспроводных сетей.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|5||Сетевой уровень: IP-адресация (IPv4, IPv6), маршрутизация в LAN и WAN (статическая, динамическая, протоколы RIP/OSPF).&lt;br /&gt;
|Лабораторная: настройка IP-адресов на виртуальных роутерах и хостах.&lt;br /&gt;
MPIO/LACP, бондинг сетевых интерфейсов&lt;br /&gt;
|Практикум: построение маршрутов вручную; обсуждение сравнительных характеристик IPv4/IPv6.&lt;br /&gt;
Тест по расчётам подсети, сравнению IPv4, IPv6&lt;br /&gt;
|-&lt;br /&gt;
|6|| Транспортный уровень: протоколы TCP и UDP, установление соединений, надёжность, потоковые и безпотоковые сервисы.&lt;br /&gt;
|| Групповое упражнение: анализ TCP- и UDP-трафика (Wireshark), моделирование работы TCP (handshake).&lt;br /&gt;
|| Контрольные задания по семантике TCP/UDP, короткий опрос.&lt;br /&gt;
|-&lt;br /&gt;
|7||Сетевая безопасность – атаки: классификация атак (фишинг, вредоносное ПО, DoS/DDoS, MITM и др.).&lt;br /&gt;
||Разбор кейсов известных сетевых атак (работа в группах).&lt;br /&gt;
||Тест: распознавание типов атак и их последствий.&lt;br /&gt;
|-&lt;br /&gt;
|8||Безопасная архитектура: сегментация сети, зоны доверия и демилитаризованная зона (DMZ), изоляция ресурсов.&lt;br /&gt;
||Проектирование примерной схемы безопасности (выделение DMZ, внутренних и сегментов управления).&lt;br /&gt;
||Домашнее задание: разработать схему сетевой сегментации для малой компании.&lt;br /&gt;
|-&lt;br /&gt;
|9||Брандмауэры и VPN: принципы работы межсетевых экранов (фильтрация пакетов, прокси), VPN-технологии (IPsec, SSL/TLS), NAT.&lt;br /&gt;
||Практикум по работе с nftables, отличия от iptableskle&lt;br /&gt;
||Настройка фильтрации в простом сценарии; отчет о параметрах VPN-соединения.&lt;br /&gt;
|-&lt;br /&gt;
|10||IDS/IPS и мониторинг: системы обнаружения вторжений, SIEM, протоколы телеметрии.&lt;br /&gt;
||Демонстрация работы IDS (например, Snort) и анализ результатов сканирования сети.&lt;br /&gt;
||Отчёт по анализу сетевого трафика в Wireshark с выявлением признаков атаки.&lt;br /&gt;
|-&lt;br /&gt;
|11||Криптография в сетях: SSL/TLS, сертификаты, PKI, основы шифрования данных.&lt;br /&gt;
||Практическая работа: генерация ключей и сертификатов, установка защищённого HTTPS-соединения.&lt;br /&gt;
||Создать собственный сертификат и настроить зашифрованное соединение (например, в браузере).&lt;br /&gt;
|-&lt;br /&gt;
|12|| Введение в AI/ML для сетей: понятие AIOps (автоматизация с помощью ИИ), машинное обучение в сетевом менеджменте.&lt;br /&gt;
||Обсуждение примеров применения ИИ к сети (Cisco, Juniper и т.д.); мини-проект: выбор случая использования AI.&lt;br /&gt;
|| Краткое эссе и/или презентация на тему «ИИ в управлении сетью».&lt;br /&gt;
|-&lt;br /&gt;
|13|| Прогнозирование и балансировка трафика: ML-алгоритмы для анализа и предсказания сетевой нагрузки. Обеспечение отказоустойчивости.&lt;br /&gt;
||Проектирование схемы предсказательной модели (выбор данных, алгоритма, критериев качества).&lt;br /&gt;
||Отчёт о разработке простого скрипта или об использовании инструмента для прогнозирования трафика.&lt;br /&gt;
|-&lt;br /&gt;
|14||Обнаружение аномалий: глубокое обучение для выявления необычных паттернов и угроз в трафике.&lt;br /&gt;
||Работа с примером: классификация нормального и аномального трафика (например, ML-библиотеками).&lt;br /&gt;
||Исследование: анализ учебной выборки трафика, отчёт о выявленных аномалиях. &lt;br /&gt;
|-&lt;br /&gt;
|15||SDN и NFV: программно-определяемые сети и виртуализация сетевых функций.&lt;br /&gt;
||Дискуссия и демонстрация: возможности SDN (Mininet), преимущества гибкой архитектуры.&lt;br /&gt;
||Лабораторная работа: настройка простейшей SDN-топологии.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Команда курса=&lt;br /&gt;
&#039;&#039;&#039;Лектор&#039;&#039;&#039; - Камардин Андрей Витальевич&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Андрей Камардин &lt;br /&gt;
&lt;br /&gt;
Михаил Беженарь &lt;br /&gt;
&lt;br /&gt;
Дмитрий Воробьев &lt;br /&gt;
&lt;br /&gt;
Роман Тин&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
Лекции для всех групп:&lt;br /&gt;
&lt;br /&gt;
Среда 09:00- 10:25&lt;br /&gt;
&lt;br /&gt;
2, 9, 16 сентября лекции в онлайн- формате. &lt;br /&gt;
&lt;br /&gt;
Ссылка для подключения в чате курса&lt;br /&gt;
&lt;br /&gt;
С 23 сентября очные лекции в ауд.115КПМ&lt;br /&gt;
&lt;br /&gt;
Семинары начинаются с 7 сентября.&lt;br /&gt;
&lt;br /&gt;
Семинары:&lt;br /&gt;
&lt;br /&gt;
515 группа |Камардин Андрей Витальевич| среда 10:35	первые 3 недели сентября онлайн, далее очно в 206 КПМ&lt;br /&gt;
&lt;br /&gt;
514 группа |Роман Тин| вторник 18:40	907 КПМ&lt;br /&gt;
&lt;br /&gt;
513 группа |Дмитрий Воробьев| суббота 15:30	413 ГК	&lt;br /&gt;
&lt;br /&gt;
501 группа |Михаил Бежнарь	| вторник 18:40	 907 КПМ&lt;br /&gt;
&lt;br /&gt;
4,5 курсы |Дмитрий Подлесных| четверг 15:30	804 КПМ коммуникация по почте  podlesnykh.da@mipt.ru&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+GVZtDFWz1MI1MTky Чат курса]&lt;br /&gt;
&lt;br /&gt;
=Запись на курс= &lt;br /&gt;
&lt;br /&gt;
Обязательно [https://forms.yandex.ru/cloud/6a967b821f1eb50b7a9c1373 заполните эту форму,] для записи на курс&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Operating_Systems_I_2026&amp;diff=5284</id>
		<title>Operating Systems I 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Operating_Systems_I_2026&amp;diff=5284"/>
		<updated>2026-09-02T18:59:10Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Lector==&lt;br /&gt;
&lt;br /&gt;
Podlesnykh Dmitry&lt;br /&gt;
podlesnykh.da@mipt.ru&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
&lt;br /&gt;
Thursday 10:35-13:35	706 КПМ&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5283</id>
		<title>Workshop on Software Development 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5283"/>
		<updated>2026-09-02T18:42:48Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Юлия Иванова  &lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
Вторник c 08.09&lt;br /&gt;
&lt;br /&gt;
15:30 - 16:55 лекция&lt;br /&gt;
&lt;br /&gt;
17:05 - 18:30 семинар&lt;br /&gt;
&lt;br /&gt;
Аудитория КПМ 206&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+H7-BlcDGvYQ5YTRi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5282</id>
		<title>Workshop on Software Development 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=Workshop_on_Software_Development_2026&amp;diff=5282"/>
		<updated>2026-09-02T18:37:19Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= О курсе =&lt;br /&gt;
==Команда курса==&lt;br /&gt;
Преподаватель - Юлия Иванова  &lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
Вторник c 08.09&lt;br /&gt;
&lt;br /&gt;
15:30 - 16:55 лекция&lt;br /&gt;
&lt;br /&gt;
17:05 - 18:30 семинар&lt;br /&gt;
&lt;br /&gt;
Аудитория УПМ 206&lt;br /&gt;
&lt;br /&gt;
==Чат курса==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+H7-BlcDGvYQ5YTRi Чат курса]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5281</id>
		<title>Автоматическая обработка естественного языка осень 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5281"/>
		<updated>2026-09-02T18:36:04Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Общие сведения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
* Семестр: 11 (5й курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
==Расписание==&lt;br /&gt;
с 9 сентября &lt;br /&gt;
&lt;br /&gt;
лекции - четверг c 18:50 до 20:15, &lt;br /&gt;
&lt;br /&gt;
семинары - пятница 13:55&lt;br /&gt;
&lt;br /&gt;
место проведения: онлайн (ссылка в чате курса)&lt;br /&gt;
&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRlKyDlf_UbsKAaYQ4K-wU4_BurWypOV9JsScIw5dbmwxXXAWNidjUuwbLOQlfqwg/pubhtml?gid=1433739955&amp;amp;single=true План курса]&lt;br /&gt;
* [https://t.me/+q7zpu7t88js1ZWJi Чат курса]&lt;br /&gt;
* [Таблица с оценками - будет опубликована к концу курса]&lt;br /&gt;
&lt;br /&gt;
== Материалы ==&lt;br /&gt;
* [https://ods.ai/tracks/nlp-course-spring-2026 &#039;&#039;&#039;Материалы, тесты, ДЗ, проект&#039;&#039;&#039;]&lt;br /&gt;
* [https://drive.google.com/drive/folders/1tB4hNctDVTVEp4o17dSiNeFo3dfuKVCq?usp=drive_link &#039;&#039;&#039;Видео занятий&#039;&#039;&#039;]&lt;br /&gt;
* [https://dzen.ru/id/6914713ea9b3de7cf99c3859 &#039;&#039;&#039;Видео занятий на ДЗЕН&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
На курсе будет 3 задания и 8 квизов&lt;br /&gt;
&lt;br /&gt;
*1 задание, за него можно получить 10 или 20 баллов, если пройти простую и сложную проверки соотв. &lt;br /&gt;
*2 задание, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*3 задаение, за него можно получить 10 или 20 баллов, если побить простой и сложный бейзлайн&lt;br /&gt;
*8 обязательных квизов по 4 вопроса, выдаются в день лекции, сдать их можно в течение двух недель после лекции.За прохождение квиза вы можете получить максимум 4 балла, минимум 0 баллов, за один правильный ответ по 1 баллу. Баллы за тест будут доступны после дедлайна.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Дедлайны по домашним заданиям ====&lt;br /&gt;
{|  class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Задание&lt;br /&gt;
! Дата выдачи&lt;br /&gt;
! Deadline&lt;br /&gt;
|-&lt;br /&gt;
|word2vec || 3 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|классификация текстов|| 4 занятие || 23:59&lt;br /&gt;
|-&lt;br /&gt;
|LLM|| 8 занятие ||  23:59&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
В ходе курса участникам будет предложено поработать над курсовым проектом.&lt;br /&gt;
* Проект неблокирующий.&lt;br /&gt;
* Средний максимум по курсу - 152 балла, проект составляет 60 из них. Соответственно, без проекта с максимумом баллов получится «хорошо».&lt;br /&gt;
* Защита в виде презентации не предполагается. Проект защищается по отчету и репозиторию с кодом.&lt;br /&gt;
&lt;br /&gt;
Всего за проект можно получить 60 баллов. Проект должен включать в себя несколько частей, описание представлено в шаблоне, которому необходимо следовать. &lt;br /&gt;
&lt;br /&gt;
Разбалловка:&lt;br /&gt;
* 2 балла - за подготовку отчета;&lt;br /&gt;
* 3 балла - за подготовку репозитория;&lt;br /&gt;
* 10 баллов - за описание Related Work и результатов других подходов;&lt;br /&gt;
* 10 баллов - за сбор и описание датасета и постановку задачи;&lt;br /&gt;
* 10 баллов - за разработку и описание подхода и конкурентных подходов;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на вашем датасете, то вам дается еще до 15 баллов; под вашим датасетом подразумевается не обязательно собранный вами датасет, но также и известный, для которого вы сделали разметку;&lt;br /&gt;
&lt;br /&gt;
если ваш подход показал SotA на задаче, по которой есть previous art (то есть опубликованные статьи на этом датасете по этой задаче), то вам дается еще до 25 баллов.&lt;br /&gt;
&lt;br /&gt;
Ссылка на шаблон: https://www.overleaf.com/read/vyqdnhjfjnwh&lt;br /&gt;
&lt;br /&gt;
Необходимо приложить отчет в формате pdf и ссылку на репозиторий с вашим кодом. Ссылку вставлять в поле “Решение”.&lt;br /&gt;
&lt;br /&gt;
= Критерии оценки по курсу =&lt;br /&gt;
&lt;br /&gt;
Для магистратуры:&lt;br /&gt;
* 137 - 152 - 10 баллов&lt;br /&gt;
* 122 - 136 - 9 баллов&lt;br /&gt;
* 107 - 121 - 8 баллов&lt;br /&gt;
* 92 - 106 - 7 баллов&lt;br /&gt;
* 77 - 91 - б баллов&lt;br /&gt;
* 62 - 76 - 5 баллов&lt;br /&gt;
* 47 - 61 - 4 балла&lt;br /&gt;
* 32 - 46 - 3 балла&lt;br /&gt;
* 31 и ниже - неуд&lt;br /&gt;
&lt;br /&gt;
Для слушателей ДПО:&lt;br /&gt;
* 107-152 - отлично&lt;br /&gt;
* 62-106 - хорошо &lt;br /&gt;
* 32-61  - удовлетворительно &lt;br /&gt;
ниже 32 баллов - непроходная оценка&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Для слушателей ДПО сдача всех ДЗ и проекта обязательно!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Перезачёт =&lt;br /&gt;
Если вы проходили курсы, программа которых на 75% и выше совпадает с программой NLP, есть возможность перезачесть курс. Для этого, заполните [https://forms.gle/ymYnuCq8KaRxnVwr8&#039;&#039;&#039;форму&#039;&#039;&#039;] до 28.02.2026.&lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/e/2PACX-1vRfv4g-sumUDdBnRCuxkBTkFavhGNBOLNl1g2sE5vOcslFwDFmuvQhmitYTswMY9hnZQeL1a-2nNIj5/pubhtml?gid=948379779&amp;amp;single=true &#039;&#039;&#039;Таблица с перезачетами&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
= Пересдача =&lt;br /&gt;
Если вы планируете пересдать курс заполните, пожалуйста, [https://forms.gle/wdWxtFbHLn3MakuW7 форму] &#039;&#039;&#039;до 28.08.2026&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5280</id>
		<title>Интерпретируемые методы классификации и порождения знаний</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5280"/>
		<updated>2026-09-02T17:23:44Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание занятий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
Курс «Интерпретируемые методы классификации и порождения знаний» посвящён современным методам анализа данных и машинного обучения, которые обеспечивают не только высокую точность, но и интерпретируемость результатов. Основу курса составляет теория формальных понятий (Formal Concept Analysis, FCA) и её обобщения, включая узорные структуры. В рамках занятий студенты познакомятся с математическими основами теории решёток, построением и анализом иерархий объектов и признаков, изучат методы построения импликаций, ассоциативных правил и деревьев решений, а также их приложения в задачах классификации и анализа данных. Особое внимание уделяется интерпретируемым моделям, которые позволяют объяснять полученные знания и делать выводы на их основе. Ожидается, что после завершения курса студенты будут владеть инструментарием для построения прозрачных моделей анализа данных, понимать алгоритмическую сложность изучаемых задач и уметь применять эти методы в исследовательских и прикладных проектах.&lt;br /&gt;
* Формат: онлайн&lt;br /&gt;
* Форма контроля:  3 самостоятельные работы и домашняя работа (проект)&lt;br /&gt;
&lt;br /&gt;
== План занятий ==&lt;br /&gt;
* осенний семестр: 10 сентября – 14 декабря 2025 г.&lt;br /&gt;
* зачетная неделя: 15 – 21 декабря 2025 г.&lt;br /&gt;
* доп. выходные: 04 ноября 2025 г.&lt;br /&gt;
&lt;br /&gt;
=Расписание занятий=&lt;br /&gt;
Занятия проходят с 9 сентября раз в неделю (1,5 часа) в среду в 15:30 - 16:55&lt;br /&gt;
* Формат: первая неделя — вводная лекция + семинар. Далее занятия чередуются: одна неделя лекция, следующая неделя семинар.&lt;br /&gt;
&lt;br /&gt;
09.09.2026 — Введение в курс. Отношения и графы (лекция + семинар)&lt;br /&gt;
 — Упорядоченные множества в анализе данных: Порядки, их графы и диаграммы (лекция)&lt;br /&gt;
 — Семинар: Порядки, их графы и диаграммы (семинар)&lt;br /&gt;
 — Теория решёток: Полурешётки и решётки (лекция)&lt;br /&gt;
 — Самостоятельная работа 1 &lt;br /&gt;
&lt;br /&gt;
 — Анализ формальных понятий (АФП) (лекция)&lt;br /&gt;
 — Семинар по АФП (семинар)&lt;br /&gt;
 — АФП: Импликации, базисы, алгоритм построения решёток (лекция)&lt;br /&gt;
 — Семинар по импликациям и базисам (семинар)&lt;br /&gt;
 — Самостоятельная работа 2 &lt;br /&gt;
 — АФП: Многозначный контекст, функциональные зависимости (лекция)&lt;br /&gt;
 — Семинар по многозначным контекстам (семинар)&lt;br /&gt;
 — АФП: Шкалирование и работа со сложными признаками (лекция)&lt;br /&gt;
 — Самостоятельная работа 3 &lt;br /&gt;
 — Презентации проектов (семинар)&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса ==&lt;br /&gt;
Д-р физ-мат. наук Кузнецов Сергей Олегович&lt;br /&gt;
== Преподаватели курса ==&lt;br /&gt;
Кузнецов Сергей Олегович&lt;br /&gt;
Томат Алан&lt;br /&gt;
== Чат курса ==&lt;br /&gt;
https://t.me/+Z112aXWXmEc1MDE0&lt;br /&gt;
== Программа курса и сдача домашек ==&lt;br /&gt;
Курс посвящён интерпретируемым методам классификации и порождения знаний на основе анализа формальных понятий (Formal Concept Analysis, FCA) и узорных структур.&lt;br /&gt;
 Основные темы включают:&lt;br /&gt;
отношения и графы, частичные порядки и решётки;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
анализ формальных понятий: построение решёток, импликации, базисы, функциональные зависимости;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
многозначные контексты, шкалирование, узорные структуры;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ассоциативные правила и деревья решений в терминах FCA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
интерпретируемые модели машинного обучения и их применение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== План домашних заданий с уточнением сроков сдачи ==&lt;br /&gt;
Вместо традиционных семинаров выполняются три самостоятельные работы и финальный проект:&lt;br /&gt;
Самостоятельная работа 1 — 08.10.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 2 — 12.11.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 3 — 10.12.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Презентация проекта — 17.12.2025&lt;br /&gt;
Репозиторий проекта:&lt;br /&gt;
https://gitlab.com/Al_Toretto/lazy_fca_learning&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
3 самостоятельные работы — по 2.5 балла (максимум 7.5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проект — 4 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 дополнительный балл за активность на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Максимум: 12.5 баллов. Итоговая оценка за курс = min(10, набранные баллы).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5279</id>
		<title>Интерпретируемые методы классификации и порождения знаний</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9&amp;diff=5279"/>
		<updated>2026-09-02T17:21:14Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание занятий */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения о курсе =&lt;br /&gt;
Курс «Интерпретируемые методы классификации и порождения знаний» посвящён современным методам анализа данных и машинного обучения, которые обеспечивают не только высокую точность, но и интерпретируемость результатов. Основу курса составляет теория формальных понятий (Formal Concept Analysis, FCA) и её обобщения, включая узорные структуры. В рамках занятий студенты познакомятся с математическими основами теории решёток, построением и анализом иерархий объектов и признаков, изучат методы построения импликаций, ассоциативных правил и деревьев решений, а также их приложения в задачах классификации и анализа данных. Особое внимание уделяется интерпретируемым моделям, которые позволяют объяснять полученные знания и делать выводы на их основе. Ожидается, что после завершения курса студенты будут владеть инструментарием для построения прозрачных моделей анализа данных, понимать алгоритмическую сложность изучаемых задач и уметь применять эти методы в исследовательских и прикладных проектах.&lt;br /&gt;
* Формат: онлайн&lt;br /&gt;
* Форма контроля:  3 самостоятельные работы и домашняя работа (проект)&lt;br /&gt;
&lt;br /&gt;
== План занятий ==&lt;br /&gt;
* осенний семестр: 10 сентября – 14 декабря 2025 г.&lt;br /&gt;
* зачетная неделя: 15 – 21 декабря 2025 г.&lt;br /&gt;
* доп. выходные: 04 ноября 2025 г.&lt;br /&gt;
&lt;br /&gt;
=Расписание занятий=&lt;br /&gt;
Занятия проходят раз в неделю (1,5 часа) в среду в 15:30 - 16:55&lt;br /&gt;
* Формат: первая неделя — вводная лекция + семинар. Далее занятия чередуются: одна неделя лекция, следующая неделя семинар.&lt;br /&gt;
&lt;br /&gt;
09.09.2026 — Введение в курс. Отношения и графы (лекция + семинар)&lt;br /&gt;
 — Упорядоченные множества в анализе данных: Порядки, их графы и диаграммы (лекция)&lt;br /&gt;
 — Семинар: Порядки, их графы и диаграммы (семинар)&lt;br /&gt;
 — Теория решёток: Полурешётки и решётки (лекция)&lt;br /&gt;
 — Самостоятельная работа 1 &lt;br /&gt;
&lt;br /&gt;
 — Анализ формальных понятий (АФП) (лекция)&lt;br /&gt;
 — Семинар по АФП (семинар)&lt;br /&gt;
 — АФП: Импликации, базисы, алгоритм построения решёток (лекция)&lt;br /&gt;
 — Семинар по импликациям и базисам (семинар)&lt;br /&gt;
 — Самостоятельная работа 2 &lt;br /&gt;
 — АФП: Многозначный контекст, функциональные зависимости (лекция)&lt;br /&gt;
 — Семинар по многозначным контекстам (семинар)&lt;br /&gt;
 — АФП: Шкалирование и работа со сложными признаками (лекция)&lt;br /&gt;
 — Самостоятельная работа 3 &lt;br /&gt;
 — Презентации проектов (семинар)&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса ==&lt;br /&gt;
Д-р физ-мат. наук Кузнецов Сергей Олегович&lt;br /&gt;
== Преподаватели курса ==&lt;br /&gt;
Кузнецов Сергей Олегович&lt;br /&gt;
Томат Алан&lt;br /&gt;
== Чат курса ==&lt;br /&gt;
https://t.me/+Z112aXWXmEc1MDE0&lt;br /&gt;
== Программа курса и сдача домашек ==&lt;br /&gt;
Курс посвящён интерпретируемым методам классификации и порождения знаний на основе анализа формальных понятий (Formal Concept Analysis, FCA) и узорных структур.&lt;br /&gt;
 Основные темы включают:&lt;br /&gt;
отношения и графы, частичные порядки и решётки;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
анализ формальных понятий: построение решёток, импликации, базисы, функциональные зависимости;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
многозначные контексты, шкалирование, узорные структуры;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ассоциативные правила и деревья решений в терминах FCA;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
интерпретируемые модели машинного обучения и их применение.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== План домашних заданий с уточнением сроков сдачи ==&lt;br /&gt;
Вместо традиционных семинаров выполняются три самостоятельные работы и финальный проект:&lt;br /&gt;
Самостоятельная работа 1 — 08.10.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 2 — 12.11.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Самостоятельная работа 3 — 10.12.2025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Презентация проекта — 17.12.2025&lt;br /&gt;
Репозиторий проекта:&lt;br /&gt;
https://gitlab.com/Al_Toretto/lazy_fca_learning&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
3 самостоятельные работы — по 2.5 балла (максимум 7.5).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проект — 4 балла.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 дополнительный балл за активность на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Максимум: 12.5 баллов. Итоговая оценка за курс = min(10, набранные баллы).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5275</id>
		<title>Высоконадёжные вычисления и системы реального времени</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5275"/>
		<updated>2026-09-02T11:04:37Z</updated>

		<summary type="html">&lt;p&gt;Milana: /* Расписание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
Предлагаемый курс адресован студентам в области инженерии программного обеспечения (ПО) и аппаратно-программных комплексов (системной инженерии), интересующихся проблемами построения систем реального времени (СРВ) с критическими требованиями по надежности.&lt;br /&gt;
&lt;br /&gt;
К такого рода системам относятся, например, системы управления космической техникой, авиационной техникой (как пилотируемой, так и беспилотной), ядерными и химическими реакторами, высокоскоростным железнодорожным и беспилотным автомобильным  транспортом, определенными медико-биологическими и финансовыми процессами, а также вооружениями и военной техникой. «Критический» уровень требований по надежности таких систем означает, что нарушение каких-либо свойств системы, составляющих надежность в широком смысле слова (например, функциональной или темпоральной корректности, отказоустойчивости, информационной безопасности и пр.) может привести к гибели людей или потенциально-неограниченному материальному ущербу.&lt;br /&gt;
&lt;br /&gt;
За рубежом, главным образом во Франции и других европейских странах, уже в середине 1990-х годов инженерия высоконадежных СРВ оформилась в самостоятельный раздел информационных технологий в индустрии, а также в отдельную академическую дисциплину из области компьютерных наук. К сожалению, в Российской Федерации данное направление до сих пор недостаточно развито, и методы инженерии высоконадежных систем часто не применяются даже в тех областях, где их применение является уже общепринятой мировой практикой. Например, авария космического аппарата «Луна-25» в августе 2023 года произошла по причине непроведения темпорального анализа коммуникаций между задачами в бортовой системе управления, в результате чего не было своевременно обработано критическое сообщение от бортового акселерометра, что привело к столкновению аппарата с Луной.&lt;br /&gt;
&lt;br /&gt;
Одним из факторов, до сих пор затрудняющих внедрение современных методов проектирования высоконадежных СРВ в российскую инженерную практику, является проблема подготовки соответствующих кадров. Данный курс призван восполнить этот пробел — он является первой и единственной в России образовательной программой, целью которой является подготовка отечественных специалистов в области высоконадежных СРВ. &lt;br /&gt;
&lt;br /&gt;
Следует отметить, что высоконадежные СРВ одновременно являются, как правило, наукоемким программным обеспечением. Поэтому специалист в области высоконадежной системной инженерии должен владеть междисциплинарным комплексом знаний и навыков:&lt;br /&gt;
— соответствующими знаниями из области компьютерных наук;&lt;br /&gt;
— методами прикладной математики (дифференциальных уравнений, вариационного исчисления, теории управления);&lt;br /&gt;
— а также иметь базовые знания в предметной области, связанной с управляемым объектом (например, в теоретической механике, аэродинамике или нейтронной физике).&lt;br /&gt;
&lt;br /&gt;
Знания и навыки, приобретенные студентами в результате изучения данного курса, могут быть использованы в будущей профессиональной деятельности в структурах Роскосмоса, Росатома, Ростеха, РЖД и других высокотехнологичных российских компаний.&lt;br /&gt;
&lt;br /&gt;
==План занятий==&lt;br /&gt;
&lt;br /&gt;
* осенний семестр: 01 сентября – 14 декабря &lt;br /&gt;
* зачетная неделя: 15 – 21 декабря&lt;br /&gt;
* доп. выходные:  04 ноября 2026 г.&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Занятия проводятся онлайн со 2 сентября &lt;br /&gt;
&lt;br /&gt;
Среда 17:00&lt;br /&gt;
&lt;br /&gt;
Ссылка на занятие размещена в чате курса&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса и единственный преподаватель==&lt;br /&gt;
Меркин Леонид Альбертович&lt;br /&gt;
&lt;br /&gt;
== Чат курса==&lt;br /&gt;
[https://t.me/+f6FXcwarto1kYzFi чат в Telegram]&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В рамках программы изучаются следующие темы:&lt;br /&gt;
&lt;br /&gt;
* Часть I: Основы теории систем реального времени (СРВ).&lt;br /&gt;
&lt;br /&gt;
1. Критическое по надёжности ПО как специальный класс ПО. Его основные характеристики (в том числе real-time) и области применения -- аэрокосмическая, ядерная, химическая промышленность, высокоскоростной железнодорожный транспорт, национальная оборона.&lt;br /&gt;
&lt;br /&gt;
2. Свойства надёжности ПО -- функциональные и нефункциональные (в первую очередь темпоральные). Опредедение СРВ, их основные свойства и примеры. Уровни критичности задач в СРВ (hard-, firm-, soft-real-time). Взаимосвязь между понятиями: СРВ, Concurrency, Parallelism.&lt;br /&gt;
&lt;br /&gt;
3. Методы дизайна и верификации темпоральных свойств 1-процессорных СРВ. Алгоритмы планирования задач. Приоритеты задач и уравнение планируемости (schedulability equation). Периодические (time-driven) и спорадические (event-driven) задачи, их учет в уравнении планируемости.&lt;br /&gt;
&lt;br /&gt;
4. Коммуникации между задачами, блокировки, проблема инверсии приоритетов, dеadlock и livelock. Алгоритм наследования приоритетов как решение данной проблемы. Модификация уравнения планируемости в условиях блокировок.&lt;br /&gt;
&lt;br /&gt;
5. Распределенные СРВ (РСРВ). Шины и сети с детерминированным временем передачи данных (ARINC 664, AFDX). Проблема обеспечения темпоральной консистентности данных в РСРВ. Протокол time stamp&#039;ов, учитывающих максимальное время доставки сообщений.&lt;br /&gt;
&lt;br /&gt;
6. Холистический алгоритм планирования задач и коммуникаций в РСРВ, его итеративная реализация.&lt;br /&gt;
&lt;br /&gt;
7. РСРВ в условиях возможных ошибок обработки и передачи данных. Алгоритмы поддержания консистентного состояния РСРВ. &amp;quot;Алгоритм византийских генералов&amp;quot;. Связь с алгоритмами консистентности систем распределенного реестра.&lt;br /&gt;
&lt;br /&gt;
* Часть II: Практические аспекты СРВ&lt;br /&gt;
&lt;br /&gt;
8. Операционные системы (ОС, kernels, executives) и user-level компоненты СРВ. Требования к языкам программирования user-level компонент.&lt;br /&gt;
&lt;br /&gt;
9. Стандарт Real-Time POSIX и операционные системы, его реализующие. Legacy стандарты API ОСРВ.&lt;br /&gt;
&lt;br /&gt;
10. Linux как ОСРВ -- варианты, конфигурации, использование.&lt;br /&gt;
&lt;br /&gt;
11. C и C++ как языки программирования СРВ. MISRA C / C++ guidelines. Concurrency в современных стандартах C++ (11--26) и её взаимосвязь с СРВ. Отсутствие собственно СРВ свойств в стандартах C++, и как решить эту проблему через underlying ОСРВ.&lt;br /&gt;
&lt;br /&gt;
12. Язык программирования Ada (стандарт Ada 2022) для СРВ. Высоконадежный профиль Ada -- Ravenscar.&lt;br /&gt;
&lt;br /&gt;
13. Задание для самостоятельного изучения основных элементов Ada, так как полностью изучить её за лекционное время невозможно).&lt;br /&gt;
&lt;br /&gt;
14. ОСРВ RTEMS, её APIs (native,   POSIX и исторические),  применение в космической и зарубежной военной технике.&lt;br /&gt;
Интеграция RTEMS с Ada. C++ bindings to RTEMS API.&lt;br /&gt;
&lt;br /&gt;
15. ОСРВ FreeRTOS, её области применения. Ada и POSIX APIs.&lt;br /&gt;
&lt;br /&gt;
16. Формально-верифицированное микроядро seL4. Применение в качестве hypervisor&#039;a (для разделения компонент разного уровня критичности) и как РТОС. POSIX API (Ada binding пока отсутствует).&lt;br /&gt;
&lt;br /&gt;
17. Практическое задание на основе RTEMS, FreeRTOS или seL4 (по выбору), Ada или C++.&lt;br /&gt;
&lt;br /&gt;
* Часть 3: Методы инженерии высоконадежного наукоёмкого ПО&lt;br /&gt;
&lt;br /&gt;
18. Взаимосвязь между &amp;quot;наукоёмким&amp;quot; ПО и критическими по надежности системам реального времени. Языки программирования наукоёмких приложений (Fortran не учитываем): функциональные (ML как основа всего!), Ada, C++.&lt;br /&gt;
&lt;br /&gt;
19. Система типов языка программирования как отображение категорий реального мира на computer hardware. Система типов Hindley-Milner&#039;а как основа &amp;quot;сильных&amp;quot; систем типов (и её варианты: Ada generics &amp;amp; C++ templates).&lt;br /&gt;
&lt;br /&gt;
20. Необходимость отражения размерностей физических (в широком смысле) величин в системе типов. Dimension Types и их реализации в ML и C++. Библиотеки boost::units и DimTypes.&lt;br /&gt;
&lt;br /&gt;
21. Необходимость отражения различных систем координат в системе типов для векторных вычислений. Библиотека SpaceBallistics (C++).&lt;br /&gt;
&lt;br /&gt;
22. Проект с использованием библиотеки SpaceBallistics (в том числе интеграция с RTEMS): прототип системы управления космической ракетой-носителем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
23. От &amp;quot;сильных&amp;quot; систем типов к формальной верификации функциональных свойств ПО. Классы методов формальной верификации: для конечных автоматов (model checking), для логик 1-го порядка, логик высших порядков.&lt;br /&gt;
&lt;br /&gt;
24. Организация процесса разработки высоконадежного ПО с использованием формальной верификации, от сбора требований до генерации (или написания) верифицированного программного кода.&lt;br /&gt;
&lt;br /&gt;
25. Введение в B Method.&lt;br /&gt;
&lt;br /&gt;
26. Введение в Spark Ada.&lt;br /&gt;
&lt;br /&gt;
27. Очень краткое введение (если успеем) в Coq и Isabelle/HOL.&lt;br /&gt;
&lt;br /&gt;
== Проектные домашние задания ==&lt;br /&gt;
&lt;br /&gt;
* (13) выше, срок 2 недели от моменты выдачи задания&lt;br /&gt;
* (17) выше, срок 3 недели от момента выдачи задания&lt;br /&gt;
* (22) выше, срок 3 недели от момента выдачи задани&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;br /&gt;
[https://www.rutube.ru Лекции]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5274</id>
		<title>Высоконадёжные вычисления и системы реального времени</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%92%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BD%D0%B0%D0%B4%D1%91%D0%B6%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8&amp;diff=5274"/>
		<updated>2026-09-02T11:04:13Z</updated>

		<summary type="html">&lt;p&gt;Milana: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общие сведения =&lt;br /&gt;
Предлагаемый курс адресован студентам в области инженерии программного обеспечения (ПО) и аппаратно-программных комплексов (системной инженерии), интересующихся проблемами построения систем реального времени (СРВ) с критическими требованиями по надежности.&lt;br /&gt;
&lt;br /&gt;
К такого рода системам относятся, например, системы управления космической техникой, авиационной техникой (как пилотируемой, так и беспилотной), ядерными и химическими реакторами, высокоскоростным железнодорожным и беспилотным автомобильным  транспортом, определенными медико-биологическими и финансовыми процессами, а также вооружениями и военной техникой. «Критический» уровень требований по надежности таких систем означает, что нарушение каких-либо свойств системы, составляющих надежность в широком смысле слова (например, функциональной или темпоральной корректности, отказоустойчивости, информационной безопасности и пр.) может привести к гибели людей или потенциально-неограниченному материальному ущербу.&lt;br /&gt;
&lt;br /&gt;
За рубежом, главным образом во Франции и других европейских странах, уже в середине 1990-х годов инженерия высоконадежных СРВ оформилась в самостоятельный раздел информационных технологий в индустрии, а также в отдельную академическую дисциплину из области компьютерных наук. К сожалению, в Российской Федерации данное направление до сих пор недостаточно развито, и методы инженерии высоконадежных систем часто не применяются даже в тех областях, где их применение является уже общепринятой мировой практикой. Например, авария космического аппарата «Луна-25» в августе 2023 года произошла по причине непроведения темпорального анализа коммуникаций между задачами в бортовой системе управления, в результате чего не было своевременно обработано критическое сообщение от бортового акселерометра, что привело к столкновению аппарата с Луной.&lt;br /&gt;
&lt;br /&gt;
Одним из факторов, до сих пор затрудняющих внедрение современных методов проектирования высоконадежных СРВ в российскую инженерную практику, является проблема подготовки соответствующих кадров. Данный курс призван восполнить этот пробел — он является первой и единственной в России образовательной программой, целью которой является подготовка отечественных специалистов в области высоконадежных СРВ. &lt;br /&gt;
&lt;br /&gt;
Следует отметить, что высоконадежные СРВ одновременно являются, как правило, наукоемким программным обеспечением. Поэтому специалист в области высоконадежной системной инженерии должен владеть междисциплинарным комплексом знаний и навыков:&lt;br /&gt;
— соответствующими знаниями из области компьютерных наук;&lt;br /&gt;
— методами прикладной математики (дифференциальных уравнений, вариационного исчисления, теории управления);&lt;br /&gt;
— а также иметь базовые знания в предметной области, связанной с управляемым объектом (например, в теоретической механике, аэродинамике или нейтронной физике).&lt;br /&gt;
&lt;br /&gt;
Знания и навыки, приобретенные студентами в результате изучения данного курса, могут быть использованы в будущей профессиональной деятельности в структурах Роскосмоса, Росатома, Ростеха, РЖД и других высокотехнологичных российских компаний.&lt;br /&gt;
&lt;br /&gt;
==План занятий==&lt;br /&gt;
&lt;br /&gt;
* осенний семестр: 01 сентября – 14 декабря &lt;br /&gt;
* зачетная неделя: 15 – 21 декабря&lt;br /&gt;
* доп. выходные:  04 ноября 2026 г.&lt;br /&gt;
&lt;br /&gt;
==Расписание==&lt;br /&gt;
&lt;br /&gt;
Занятия проводятся онлайн&lt;br /&gt;
&lt;br /&gt;
Среда 17:00&lt;br /&gt;
&lt;br /&gt;
Ссылка на занятие размещена в чате курса&lt;br /&gt;
&lt;br /&gt;
== Руководитель курса и единственный преподаватель==&lt;br /&gt;
Меркин Леонид Альбертович&lt;br /&gt;
&lt;br /&gt;
== Чат курса==&lt;br /&gt;
[https://t.me/+f6FXcwarto1kYzFi чат в Telegram]&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В рамках программы изучаются следующие темы:&lt;br /&gt;
&lt;br /&gt;
* Часть I: Основы теории систем реального времени (СРВ).&lt;br /&gt;
&lt;br /&gt;
1. Критическое по надёжности ПО как специальный класс ПО. Его основные характеристики (в том числе real-time) и области применения -- аэрокосмическая, ядерная, химическая промышленность, высокоскоростной железнодорожный транспорт, национальная оборона.&lt;br /&gt;
&lt;br /&gt;
2. Свойства надёжности ПО -- функциональные и нефункциональные (в первую очередь темпоральные). Опредедение СРВ, их основные свойства и примеры. Уровни критичности задач в СРВ (hard-, firm-, soft-real-time). Взаимосвязь между понятиями: СРВ, Concurrency, Parallelism.&lt;br /&gt;
&lt;br /&gt;
3. Методы дизайна и верификации темпоральных свойств 1-процессорных СРВ. Алгоритмы планирования задач. Приоритеты задач и уравнение планируемости (schedulability equation). Периодические (time-driven) и спорадические (event-driven) задачи, их учет в уравнении планируемости.&lt;br /&gt;
&lt;br /&gt;
4. Коммуникации между задачами, блокировки, проблема инверсии приоритетов, dеadlock и livelock. Алгоритм наследования приоритетов как решение данной проблемы. Модификация уравнения планируемости в условиях блокировок.&lt;br /&gt;
&lt;br /&gt;
5. Распределенные СРВ (РСРВ). Шины и сети с детерминированным временем передачи данных (ARINC 664, AFDX). Проблема обеспечения темпоральной консистентности данных в РСРВ. Протокол time stamp&#039;ов, учитывающих максимальное время доставки сообщений.&lt;br /&gt;
&lt;br /&gt;
6. Холистический алгоритм планирования задач и коммуникаций в РСРВ, его итеративная реализация.&lt;br /&gt;
&lt;br /&gt;
7. РСРВ в условиях возможных ошибок обработки и передачи данных. Алгоритмы поддержания консистентного состояния РСРВ. &amp;quot;Алгоритм византийских генералов&amp;quot;. Связь с алгоритмами консистентности систем распределенного реестра.&lt;br /&gt;
&lt;br /&gt;
* Часть II: Практические аспекты СРВ&lt;br /&gt;
&lt;br /&gt;
8. Операционные системы (ОС, kernels, executives) и user-level компоненты СРВ. Требования к языкам программирования user-level компонент.&lt;br /&gt;
&lt;br /&gt;
9. Стандарт Real-Time POSIX и операционные системы, его реализующие. Legacy стандарты API ОСРВ.&lt;br /&gt;
&lt;br /&gt;
10. Linux как ОСРВ -- варианты, конфигурации, использование.&lt;br /&gt;
&lt;br /&gt;
11. C и C++ как языки программирования СРВ. MISRA C / C++ guidelines. Concurrency в современных стандартах C++ (11--26) и её взаимосвязь с СРВ. Отсутствие собственно СРВ свойств в стандартах C++, и как решить эту проблему через underlying ОСРВ.&lt;br /&gt;
&lt;br /&gt;
12. Язык программирования Ada (стандарт Ada 2022) для СРВ. Высоконадежный профиль Ada -- Ravenscar.&lt;br /&gt;
&lt;br /&gt;
13. Задание для самостоятельного изучения основных элементов Ada, так как полностью изучить её за лекционное время невозможно).&lt;br /&gt;
&lt;br /&gt;
14. ОСРВ RTEMS, её APIs (native,   POSIX и исторические),  применение в космической и зарубежной военной технике.&lt;br /&gt;
Интеграция RTEMS с Ada. C++ bindings to RTEMS API.&lt;br /&gt;
&lt;br /&gt;
15. ОСРВ FreeRTOS, её области применения. Ada и POSIX APIs.&lt;br /&gt;
&lt;br /&gt;
16. Формально-верифицированное микроядро seL4. Применение в качестве hypervisor&#039;a (для разделения компонент разного уровня критичности) и как РТОС. POSIX API (Ada binding пока отсутствует).&lt;br /&gt;
&lt;br /&gt;
17. Практическое задание на основе RTEMS, FreeRTOS или seL4 (по выбору), Ada или C++.&lt;br /&gt;
&lt;br /&gt;
* Часть 3: Методы инженерии высоконадежного наукоёмкого ПО&lt;br /&gt;
&lt;br /&gt;
18. Взаимосвязь между &amp;quot;наукоёмким&amp;quot; ПО и критическими по надежности системам реального времени. Языки программирования наукоёмких приложений (Fortran не учитываем): функциональные (ML как основа всего!), Ada, C++.&lt;br /&gt;
&lt;br /&gt;
19. Система типов языка программирования как отображение категорий реального мира на computer hardware. Система типов Hindley-Milner&#039;а как основа &amp;quot;сильных&amp;quot; систем типов (и её варианты: Ada generics &amp;amp; C++ templates).&lt;br /&gt;
&lt;br /&gt;
20. Необходимость отражения размерностей физических (в широком смысле) величин в системе типов. Dimension Types и их реализации в ML и C++. Библиотеки boost::units и DimTypes.&lt;br /&gt;
&lt;br /&gt;
21. Необходимость отражения различных систем координат в системе типов для векторных вычислений. Библиотека SpaceBallistics (C++).&lt;br /&gt;
&lt;br /&gt;
22. Проект с использованием библиотеки SpaceBallistics (в том числе интеграция с RTEMS): прототип системы управления космической ракетой-носителем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
23. От &amp;quot;сильных&amp;quot; систем типов к формальной верификации функциональных свойств ПО. Классы методов формальной верификации: для конечных автоматов (model checking), для логик 1-го порядка, логик высших порядков.&lt;br /&gt;
&lt;br /&gt;
24. Организация процесса разработки высоконадежного ПО с использованием формальной верификации, от сбора требований до генерации (или написания) верифицированного программного кода.&lt;br /&gt;
&lt;br /&gt;
25. Введение в B Method.&lt;br /&gt;
&lt;br /&gt;
26. Введение в Spark Ada.&lt;br /&gt;
&lt;br /&gt;
27. Очень краткое введение (если успеем) в Coq и Isabelle/HOL.&lt;br /&gt;
&lt;br /&gt;
== Проектные домашние задания ==&lt;br /&gt;
&lt;br /&gt;
* (13) выше, срок 2 недели от моменты выдачи задания&lt;br /&gt;
* (17) выше, срок 3 недели от момента выдачи задания&lt;br /&gt;
* (22) выше, срок 3 недели от момента выдачи задани&lt;br /&gt;
&lt;br /&gt;
== Материалы занятий ==&lt;br /&gt;
[https://www.rutube.ru Лекции]&lt;/div&gt;</summary>
		<author><name>Milana</name></author>
	</entry>
</feed>