<?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=Spirina.es</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=Spirina.es"/>
	<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/Spirina.es"/>
	<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%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5473</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5473"/>
		<updated>2026-11-02T10:32:40Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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://t.me/ads_foreigns&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; Правила проведения экзамена&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5472</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5472"/>
		<updated>2026-11-02T10:32:14Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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://t.me/ads_foreigns&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; Правила проведения экзамена&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%92%D0%A2._%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2_%D0%B8_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9._2026&amp;diff=5469</id>
		<title>ИВТ. Математические основания алгоритмов и сложность вычислений. 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%92%D0%A2._%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2_%D0%B8_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9._2026&amp;diff=5469"/>
		<updated>2026-10-30T10:13:59Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Команда курса ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Руководитель курса / лектор:&#039;&#039;&#039; Троян-Головян Владислав&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;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; экзамен&lt;br /&gt;
&lt;br /&gt;
* Практикум по математическим основаниям алгоритмов&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; Дифференцированный зачет&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;
| 1&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;
| 4&lt;br /&gt;
| O-нотация и мастер-теорема&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Индукция и комбинаторика&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Теория вероятностей I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Теория вероятностей II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Вещественная арифметика&lt;br /&gt;
| Контрольная работа&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Теория чисел I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Теория чисел II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Графы I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Графы II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Вероятностные алгоритмы&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| P/NP: основы&lt;br /&gt;
| Контрольная работа&lt;br /&gt;
|-&lt;br /&gt;
| 15&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/+nCkriGIkjiM5YTMy [2026&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;[ИВТ, 1 курс&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt; [Математические основания алгоритмов&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;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;0&#039;&#039;&#039; до &#039;&#039;&#039;10&#039;&#039;&#039; баллов.&lt;br /&gt;
&lt;br /&gt;
* Срок выполнения: &#039;&#039;&#039;2 недели&#039;&#039;&#039;&lt;br /&gt;
* Формат выполнения: &#039;&#039;&#039;TeX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Контрольные работы ===&lt;br /&gt;
&lt;br /&gt;
В течение семестра проводятся две контрольные работы:&lt;br /&gt;
&lt;br /&gt;
* после лекции 8;&lt;br /&gt;
* после лекции 14.&lt;br /&gt;
&lt;br /&gt;
Каждая контрольная работа оценивается от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;10&#039;&#039;&#039; баллов.&lt;br /&gt;
&lt;br /&gt;
=== Допуск к зачёту ===&lt;br /&gt;
&lt;br /&gt;
Если:&lt;br /&gt;
&lt;br /&gt;
* средний балл за контрольные работы меньше &#039;&#039;&#039;3&#039;&#039;&#039;, и/или&lt;br /&gt;
* средний балл за домашние задания меньше &#039;&#039;&#039;3&#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;
По итогам семестра выставляется семинарский балл в диапазоне от &#039;&#039;&#039;−1&#039;&#039;&#039; до &#039;&#039;&#039;+1&#039;&#039;&#039;, который добавляется к итоговой оценке.&lt;br /&gt;
&lt;br /&gt;
=== Итоговая оценка за зачёт===&lt;br /&gt;
&lt;br /&gt;
0.5*AVG(ДЗ)+0.5*AVG(КР) + Балл от семинариста. &lt;br /&gt;
&lt;br /&gt;
Если итоговая оценка равна &#039;&#039;&#039;11&#039;&#039;&#039;, студент получает бонус к экзамену.&lt;br /&gt;
&lt;br /&gt;
=== Штрафы ===&lt;br /&gt;
&lt;br /&gt;
* Просрочка сдачи до 24 часов — штраф &#039;&#039;&#039;25%&#039;&#039;&#039;.&lt;br /&gt;
* Просрочка до 3 дней — штраф &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
* Просрочка более 3 дней — &#039;&#039;&#039;0 баллов&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;Исключение:&#039;&#039;&#039; официальный допуск или медицинская справка.&lt;br /&gt;
* За списывание оба участника получают оценку &#039;&#039;&#039;−10 баллов&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Политика списывания ==&lt;br /&gt;
&#039;&#039;&#039;Политика списывания:&#039;&#039;&#039; при подозрении на списывание семинарист/ассистент проводит устную беседу, если факт списывания подтверждается, то зануляется весь контест целиком. При повторном списывании ставится итоговая оценка неуд. 2.&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
Презентации и дополнительные материалы будут публиковаться по ходу занятий  в чате курса.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%BD%D0%B0_%D0%B3%D1%80%D0%B0%D1%84%D0%B0%D1%85_%D0%B8_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_2026&amp;diff=5468</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%BD%D0%B0_%D0%B3%D1%80%D0%B0%D1%84%D0%B0%D1%85_%D0%B8_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_2026&amp;diff=5468"/>
		<updated>2026-10-30T10:01:51Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; экзамен&lt;br /&gt;
&lt;br /&gt;
* Практикум по алгоритмам на графах и динамическому программированию&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; Дифференцированный зачет&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&lt;br /&gt;
| Основные идеи, базовые задачи: НОП, НВП, Банкомат&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Динамическое программирование 2: матричное ДП, алгоритм Хиршберга, задача о рюкзаке, ДП по цифрам&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ДП по битмаскам, гамильтоновы пути, клики; ДП по профилю, скошенному профилю&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Convex Hull Trick&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Графы 1: способы хранения, DFS, BFS, цвета вершин&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Графы 2: DFS и времена входа и выхода, топологическая сортировка, поиск КСС, 2-SAT, мосты и точки сочленения&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Остовные деревья, СНМ, алгоритм Крускала, алгоритм Прима, матроиды&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Алгоритм Борувки, LCA: поиск при помощи двух указателей, бинарных подъёмов, сведение LCA к RMQ. Алгоритм Фарака–Колтона и Бендера. Сведение RMQ к LCA&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Кратчайшие пути 1: алгоритм Дейкстры, алгоритм A*, алгоритм Форда–Беллмана, алгоритм Флойда–Уоршелла&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Кратчайшие пути 2: алгоритм Джонсона, улучшения алгоритма Дейкстры, двунаправленный A*, алгоритм IDA*&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Паросочетания: алгоритм Куна, теорема Бержа, теорема Кёнига. Построение минимального вершинного покрытия&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Потоки 1: основные понятия, теорема о максимальном потоке и минимальном разрезе, метод Форда–Фалкерсона, алгоритм Эдмондса–Карпа. Поиск максимального паросочетания при помощи поиска потока&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Алгоритмы Диница и Хопкрофта–Карпа&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Min-cost flow. Задача о назначениях&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
Ссылка на чат курса в мессенджере &lt;br /&gt;
[https://t.me/+79xMH16hnIU5MTFi [2026&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;[ИВТ, 2 курс&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt; [Алгоритмы на графах и ДП&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;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;6 контестов&#039;&#039;&#039;, в каждом из которых одна задача выполняется с последующим &#039;&#039;&#039;код-ревью&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
По задачам на ревью опрелеляется верхняя граница оценки(далее X):&lt;br /&gt;
&lt;br /&gt;
Если пройдено&lt;br /&gt;
&amp;lt;br&amp;gt; Для порога уд. 4 нужно пройти(получить approve) 3,&lt;br /&gt;
&amp;lt;br&amp;gt; Для порога хор. 7, нужно пройти 4,&lt;br /&gt;
&amp;lt;br&amp;gt; Для порога отл. 8-9, нужно пройти 5&lt;br /&gt;
&amp;lt;br&amp;gt; Для порога отл. 10, нужно пройти 6.&lt;br /&gt;
&lt;br /&gt;
=== Контрольные работы ===&lt;br /&gt;
&lt;br /&gt;
В течение семестра проводится &#039;&#039;&#039;2 контрольные работы&#039;&#039;&#039;. За каждую контрольную можно получить от &#039;&#039;&#039;0 до 10 баллов&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Блокирующее условие на неуд:&#039;&#039;&#039; сумма оценок по двум контрольным должна быть хотя бы 6б.&lt;br /&gt;
&lt;br /&gt;
Итоговая оценка рассчитывается на основе трёх составляющих:&lt;br /&gt;
&lt;br /&gt;
* A - контесты(от 1 до 10, выставляется по порогам)&lt;br /&gt;
* B - AVG контрольные(от 1 до 10)&lt;br /&gt;
* C - оценка от семинариста(от -1 до +1)&lt;br /&gt;
&lt;br /&gt;
Далее вычисляется Y=0.5*A+0.5*B+C&lt;br /&gt;
&lt;br /&gt;
И выставляется Min(X,Y)&lt;br /&gt;
&lt;br /&gt;
Пороги для оценки A:&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 50%: уд3,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 55%: уд4,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 65%: хор 5,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 70%: хор 6,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 75%: хор 7,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 85%: отл 8,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 90%: отл 9,&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;gt;= 95%: отл 10,&lt;br /&gt;
&amp;lt;br&amp;gt; Иначе: неуд 1&lt;br /&gt;
&lt;br /&gt;
== Политика списывания ==&lt;br /&gt;
&#039;&#039;&#039;Политика списывания:&#039;&#039;&#039; при подозрении на списывание семинарист/ассистент проводит устную беседу, если факт списывания подтверждается, то зануляется весь контест целиком. При повторном списывании ставится итоговая оценка неуд. 2.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5467</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5467"/>
		<updated>2026-10-30T08:17:33Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: &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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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;
В течение семестра планируются 5 домашних заданий, разбитых по темам: &lt;br /&gt;
# базовые строковые алгоритмы [7–28 сентября]; &lt;br /&gt;
# суффиксные строковые структуры [28 сентября – 24 октября]; &lt;br /&gt;
# алгоритмы в теории чисел [21 октября – 15 ноября];&lt;br /&gt;
# базовые алгоритмы в геометрии [1 ноября – 21 ноября]; &lt;br /&gt;
# продвинутые алгоритмы в геометрии [28 ноября – 15 декабря].&lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
&lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему почти все задачи. &lt;br /&gt;
&lt;br /&gt;
Ожидаемый максимальный балл — 120. Оценка за семестр стремится зафиксировать уровень навыков студента в решении и реализации практических задач по алгоритмам.&lt;br /&gt;
&lt;br /&gt;
Экзамен же рассчитан оценить уровень теоретической подготовки студента. На нём от студента ожидается знание доказательств изученных в течение курса алгоритмов, а также умение решать теоретические задачи. Обычно такие задачи более сложные, чем практические, что компенсируется отсутствием необходимости реализовывать их (имплементировать).&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Подробнее о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvYlrKIbN0Qgv9yjClbrIZyG лекции] потока осень 2024&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5466</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5466"/>
		<updated>2026-10-30T08:14:38Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Критерии оценивания и формы контроля успеваемости */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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;
В течение семестра планируются 5 домашних заданий, разбитых по темам: &lt;br /&gt;
# базовые строковые алгоритмы [7–28 сентября]; &lt;br /&gt;
# суффиксные строковые структуры [28 сентября – 24 октября]; &lt;br /&gt;
# алгоритмы в теории чисел [21 октября – 15 ноября];&lt;br /&gt;
# базовые алгоритмы в геометрии [1 ноября – 21 ноября]; &lt;br /&gt;
# продвинутые алгоритмы в геометрии [28 ноября – 15 декабря].&lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
&lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему почти все задачи. &lt;br /&gt;
&lt;br /&gt;
Ожидаемый максимальный балл — 120. Оценка за семестр стремится зафиксировать уровень навыков студента в решении и реализации практических задач по алгоритмам.&lt;br /&gt;
&lt;br /&gt;
Экзамен же рассчитан оценить уровень теоретической подготовки студента. На нём от студента ожидается знание доказательств изученных в течение курса алгоритмов, а также умение решать теоретические задачи. Обычно такие задачи более сложные, чем практические, что компенсируется отсутствием необходимости реализовывать их (имплементировать).&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvYlrKIbN0Qgv9yjClbrIZyG лекции] потока осень 2024&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5465</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5465"/>
		<updated>2026-10-30T08:13:08Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Критерии оценивания и формы контроля успеваемости */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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;
В течение семестра планируются 5 домашних заданий, разбитых по темам: 1) базовые строковые алгоритмы [7–28 сентября]; 2) суффиксные строковые структуры [28 сентября – 24 октября]; 3) алгоритмы в теории чисел [21 октября – 15 ноября]; 4) базовые алгоритмы в геометрии [1 ноября – 21 ноября]; 5) продвинутые алгоритмы в геометрии [28 ноября – 15 декабря]. В каждой теме планируется большой контест и небольшое теоретическое задание. Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему почти все задачи. Ожидаемый максимальный балл — 120. Оценка за семестр стремится зафиксировать уровень навыков студента в решении и реализации практических задач по алгоритмам.&lt;br /&gt;
&lt;br /&gt;
Экзамен же рассчитан оценить уровень теоретической подготовки студента. На нём от студента ожидается знание доказательств изученных в течение курса алгоритмов, а также умение решать теоретические задачи. Обычно такие задачи более сложные, чем практические, что компенсируется отсутствием необходимости реализовывать их (имплементировать).&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvYlrKIbN0Qgv9yjClbrIZyG лекции] потока осень 2024&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5464</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5464"/>
		<updated>2026-10-29T15:38:41Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Критерии оценивания и формы контроля успеваемости */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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;
В течение семестра планируются 5 домашних заданий, разбитых по темам: 1) базовые строковые алгоритмы [7–28 сентября]; 2) суффиксные строковые структуры [28 сентября – 24 октября]; 3) алгоритмы в теории чисел [21 октября – 15 ноября]; 4) базовые алгоритмы в геометрии [1 ноября – 21 ноября]; 5) продвинутые алгоритмы в геометрии [28 ноября – 15 декабря]. В каждой теме планируется большой контест и небольшое теоретическое задание. Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему почти все задачи. Ожидаемый максимальный балл — 120. Оценка за семестр стремится зафиксировать уровень навыков студента в решении и реализации практических задач по алгоритмам.&lt;br /&gt;
&lt;br /&gt;
Экзамен же рассчитан оценить уровень теоретической подготовки студента. На нём от студента ожидается знание доказательств изученных в течение курса алгоритмов, а также умение решать теоретические задачи. Обычно такие задачи более сложные, чем практические, что компенсируется отсутствием необходимости реализовывать их (имплементировать).&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvYlrKIbN0Qgv9yjClbrIZyG лекции] потока осень 2024&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5463</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5463"/>
		<updated>2026-10-29T15:36:25Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Материалы курса */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://www.youtube.com/playlist?list=PL4_hYwCyhAvYlrKIbN0Qgv9yjClbrIZyG лекции] потока осень 2024&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5462</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5462"/>
		<updated>2026-10-29T15:35:20Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;  экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5461</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5461"/>
		<updated>2026-10-29T15:35:09Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* О курсе */&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5460</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5460"/>
		<updated>2026-10-29T15:34:53Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* О курсе */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
В семестре планируется 15 лекций и 30 семинаров (практических занятий). На лекциях разбираются различные модельные задачи и алгоритмы их решения, на семинарах студентам предлагается решать теоретические задачи, обсуждать их решения, реализовывать код избранных алгоритмов, а также сдавать домашние задания.&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5459</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5459"/>
		<updated>2026-10-29T15:34:08Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Материалы курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Дасгупта С., Пападимитриу Х., Вазирани У. Алгоритмы. – МЦНМО, 2014&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов – «Мир», 1979&lt;br /&gt;
# Препарата Ф., Шеймос М. Вычислительная геометрия: введение – «Мир», 1989&lt;br /&gt;
# Gusfield D. Algorithms on Strings, Trees, and Sequences – Cambridge University Press, 1997&lt;br /&gt;
# De Berg M. et al. Computational Geometry. Algorithms and Applications – Springer, 2008&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5458</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5458"/>
		<updated>2026-10-29T15:33:22Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5457</id>
		<title>Алгоритмы и структуры данных I. Базовый поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5457"/>
		<updated>2026-10-29T15:29:16Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* 5. Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Алгоритмы и структуры данных&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1 курс, осенний семестр&#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;
&#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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция&lt;br /&gt;
! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &#039;&#039;&#039;Асимптотика. Анализ алгоритмов.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;O-, Ω- и Θ-нотации. Временная сложность алгоритма. Модель вычисления.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &#039;&#039;&#039;Рекурренты. Алгоритм Евклида. Бинарный поиск.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Рекуррентные соотношения и способы их решения: метод подстановки, деревья рекурсии, Мастер-теорема (б/д).&lt;br /&gt;
&amp;lt;br&amp;gt;Алгоритм Евклида. Бинарный поиск по ответу. Примеры задач.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &#039;&#039;&#039;Квадратичные сортировки.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Сортировки выбором, вставками и пузырьком. &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация, время работы и доказательство.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &#039;&#039;&#039;Merge sort (сортировка слиянием).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Сортировка слиянием с дополнительной памятью и Inplace. &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| &#039;&#039;&#039;Быстрая сортировка (Quicksort).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация. Разбиение Ломуто и Хоара. Доказательство времени работы. Барьер Ω(n log n) (б/д).&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &#039;&#039;&#039;Пирамидная сортировка (HeapSort).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Бинарная пирамида. SiftUp и SiftDown. Построение пирамиды, пирамидальная сортировка и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &#039;&#039;&#039;Лист. Стек. Очередь.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Односвязные и двусвязные списки. Стек и очередь. Реализация на списках.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| &#039;&#039;&#039;Бинарное дерево поиска.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Способы обхода. Поиск, вставка и удаление элемента. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| &#039;&#039;&#039;AVL-дерево.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Анализ высоты AVL-дерева. Balance-фактор. Повороты. Поиск, вставка и удаление элементов. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| &#039;&#039;&#039;Амортизационный анализ.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Методы подсчёта, банковский метод и метод потенциалов. Очередь на двух стеках. Двоичный счётчик.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| &#039;&#039;&#039;Splay-дерево.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Повороты. Splay, Split и Merge. Поиск, вставка и удаление элементов. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| &#039;&#039;&#039;Динамическое программирование.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Критерии применимости, порядки пересчёта, одномерная и двумерная динамика. &lt;br /&gt;
&amp;lt;br&amp;gt;Задача о рюкзаке: дискретная и непрерывная постановки, реализация и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &#039;&#039;&#039;НОП и НВП.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Наибольшая общая подпоследовательность: оптимальная подструктура, реализация и анализ времени. &lt;br /&gt;
&amp;lt;br&amp;gt;Наибольшая возрастающая подпоследовательность: решения за O(n²) и O(n log n), реализация и анализ времени.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 14&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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Активность&lt;br /&gt;
! Срок / неделя&lt;br /&gt;
! Формат                    &lt;br /&gt;
|-&lt;br /&gt;
| Контест №1      &lt;br /&gt;
| 2–3 недели на выполнение &lt;br /&gt;
| 10–20 задач             &lt;br /&gt;
|-                           &lt;br /&gt;
| Контест №2                  &lt;br /&gt;
| 2–3 недели на выполнение    &lt;br /&gt;
| 10–20 задач                 &lt;br /&gt;
|-                           &lt;br /&gt;
| Контест №3                  &lt;br /&gt;
| 2–3 недели на выполнение    &lt;br /&gt;
| 10–20 задач                 &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;
За семестр студент выполняет 3 контеста. В каждом контесте от 10 до 18 задач и выделены обязательные задачи, необходимые для получения удовлетворительной оценки.&lt;br /&gt;
&lt;br /&gt;
* Выполнение обязательных задач соответствует оценке 3 из 10 за контест.&lt;br /&gt;
* Каждая следующая решённая задача добавляет 1 балл к оценке за контест.&lt;br /&gt;
* Максимальная оценка за контест — 10 баллов.&lt;br /&gt;
* Контесты проверяются ассистентами.&lt;br /&gt;
&lt;br /&gt;
=== Итоговая контрольная работа ===&lt;br /&gt;
&lt;br /&gt;
В конце семестра проводится контрольная работа. Она оценивается по 10-балльной шкале и учитывается при расчёте итоговой оценки с весом 30%.&lt;br /&gt;
&lt;br /&gt;
== 4. Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+ykSAeh2wxNphNTFi чат] курса&lt;br /&gt;
&lt;br /&gt;
В чате публикуются организационные объявления, информация о контестах и дедлайнах, уточнения по контрольной работе и изменения в расписании.&lt;br /&gt;
&lt;br /&gt;
== 5. Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
Таблица с оценками доступна студентам в канале дисциплины&lt;br /&gt;
&lt;br /&gt;
== 6. Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обязательное условие:&#039;&#039;&#039; если хотя бы один из трёх контестов выполнен на оценку ниже 3 баллов из 10, итоговая оценка за курс является неудовлетворительной.&lt;br /&gt;
&lt;br /&gt;
Если обязательное условие выполнено, итоговая оценка рассчитывается по формуле:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Итог = 0,7 × средняя оценка за контесты + 0,3 × оценка за контрольную + бонус за активность&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Средняя оценка за контесты рассчитывается по трём контестам и имеет вес 70% в итоговой оценке.&lt;br /&gt;
* Оценка за итоговую контрольную работу имеет вес 30%.&lt;br /&gt;
* Семинарист может добавить до 1 балла за активность студента на семинарах.&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;
Для каждого контеста устанавливается дедлайн. После дедлайна задачи могут быть оценены максимум в 50% от количества баллов, предусмотренных за них в соответствующем домашнем задании.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
&lt;br /&gt;
# Для получения положительной итоговой оценки каждый из трёх контестов должен быть выполнен минимум на 3 балла из 10.&lt;br /&gt;
&lt;br /&gt;
# В каждом контесте три обязательные задачи формируют минимальную удовлетворительную оценку; дополнительные задачи повышают оценку за контест.&lt;br /&gt;
&lt;br /&gt;
# После дедлайна обязательные задачи оцениваются с ограничением не более 50% от предусмотренных за них баллов.&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;
&#039;&#039;&#039;Папка с материалами:&#039;&#039;&#039; [ссылка будет добавлена]&lt;br /&gt;
&lt;br /&gt;
* Презентации лекций, материалы семинаров и условия контестов.&lt;br /&gt;
* Материалы для подготовки к итоговой контрольной работе.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5456</id>
		<title>Алгоритмы и структуры данных I. Базовый поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5456"/>
		<updated>2026-10-29T15:28:47Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* 4. Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Алгоритмы и структуры данных&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;1 курс, осенний семестр&#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;
&#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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция&lt;br /&gt;
! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &#039;&#039;&#039;Асимптотика. Анализ алгоритмов.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;O-, Ω- и Θ-нотации. Временная сложность алгоритма. Модель вычисления.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &#039;&#039;&#039;Рекурренты. Алгоритм Евклида. Бинарный поиск.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Рекуррентные соотношения и способы их решения: метод подстановки, деревья рекурсии, Мастер-теорема (б/д).&lt;br /&gt;
&amp;lt;br&amp;gt;Алгоритм Евклида. Бинарный поиск по ответу. Примеры задач.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &#039;&#039;&#039;Квадратичные сортировки.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Сортировки выбором, вставками и пузырьком. &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация, время работы и доказательство.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &#039;&#039;&#039;Merge sort (сортировка слиянием).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Сортировка слиянием с дополнительной памятью и Inplace. &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| &#039;&#039;&#039;Быстрая сортировка (Quicksort).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Реализация. Разбиение Ломуто и Хоара. Доказательство времени работы. Барьер Ω(n log n) (б/д).&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &#039;&#039;&#039;Пирамидная сортировка (HeapSort).&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Бинарная пирамида. SiftUp и SiftDown. Построение пирамиды, пирамидальная сортировка и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &#039;&#039;&#039;Лист. Стек. Очередь.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Односвязные и двусвязные списки. Стек и очередь. Реализация на списках.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| &#039;&#039;&#039;Бинарное дерево поиска.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Способы обхода. Поиск, вставка и удаление элемента. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| &#039;&#039;&#039;AVL-дерево.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Анализ высоты AVL-дерева. Balance-фактор. Повороты. Поиск, вставка и удаление элементов. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| &#039;&#039;&#039;Амортизационный анализ.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Методы подсчёта, банковский метод и метод потенциалов. Очередь на двух стеках. Двоичный счётчик.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| &#039;&#039;&#039;Splay-дерево.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Повороты. Splay, Split и Merge. Поиск, вставка и удаление элементов. Анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| &#039;&#039;&#039;Динамическое программирование.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Критерии применимости, порядки пересчёта, одномерная и двумерная динамика. &lt;br /&gt;
&amp;lt;br&amp;gt;Задача о рюкзаке: дискретная и непрерывная постановки, реализация и анализ времени работы.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &#039;&#039;&#039;НОП и НВП.&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Наибольшая общая подпоследовательность: оптимальная подструктура, реализация и анализ времени. &lt;br /&gt;
&amp;lt;br&amp;gt;Наибольшая возрастающая подпоследовательность: решения за O(n²) и O(n log n), реализация и анализ времени.&lt;br /&gt;
| Практика и задачи по теме лекции.&lt;br /&gt;
|-&lt;br /&gt;
| 14&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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Активность&lt;br /&gt;
! Срок / неделя&lt;br /&gt;
! Формат                    &lt;br /&gt;
|-&lt;br /&gt;
| Контест №1      &lt;br /&gt;
| 2–3 недели на выполнение &lt;br /&gt;
| 10–20 задач             &lt;br /&gt;
|-                           &lt;br /&gt;
| Контест №2                  &lt;br /&gt;
| 2–3 недели на выполнение    &lt;br /&gt;
| 10–20 задач                 &lt;br /&gt;
|-                           &lt;br /&gt;
| Контест №3                  &lt;br /&gt;
| 2–3 недели на выполнение    &lt;br /&gt;
| 10–20 задач                 &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;
За семестр студент выполняет 3 контеста. В каждом контесте от 10 до 18 задач и выделены обязательные задачи, необходимые для получения удовлетворительной оценки.&lt;br /&gt;
&lt;br /&gt;
* Выполнение обязательных задач соответствует оценке 3 из 10 за контест.&lt;br /&gt;
* Каждая следующая решённая задача добавляет 1 балл к оценке за контест.&lt;br /&gt;
* Максимальная оценка за контест — 10 баллов.&lt;br /&gt;
* Контесты проверяются ассистентами.&lt;br /&gt;
&lt;br /&gt;
=== Итоговая контрольная работа ===&lt;br /&gt;
&lt;br /&gt;
В конце семестра проводится контрольная работа. Она оценивается по 10-балльной шкале и учитывается при расчёте итоговой оценки с весом 30%.&lt;br /&gt;
&lt;br /&gt;
== 4. Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+ykSAeh2wxNphNTFi чат] курса&lt;br /&gt;
&lt;br /&gt;
В чате публикуются организационные объявления, информация о контестах и дедлайнах, уточнения по контрольной работе и изменения в расписании.&lt;br /&gt;
&lt;br /&gt;
== 5. Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Таблица с оценками:&#039;&#039;&#039; [ссылка будет добавлена ближе к старту семестра]&lt;br /&gt;
&lt;br /&gt;
В таблице фиксируются результаты трёх контестов, итоговой контрольной работы и бонус за активность на семинарах.&lt;br /&gt;
&lt;br /&gt;
== 6. Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Обязательное условие:&#039;&#039;&#039; если хотя бы один из трёх контестов выполнен на оценку ниже 3 баллов из 10, итоговая оценка за курс является неудовлетворительной.&lt;br /&gt;
&lt;br /&gt;
Если обязательное условие выполнено, итоговая оценка рассчитывается по формуле:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Итог = 0,7 × средняя оценка за контесты + 0,3 × оценка за контрольную + бонус за активность&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Средняя оценка за контесты рассчитывается по трём контестам и имеет вес 70% в итоговой оценке.&lt;br /&gt;
* Оценка за итоговую контрольную работу имеет вес 30%.&lt;br /&gt;
* Семинарист может добавить до 1 балла за активность студента на семинарах.&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;
Для каждого контеста устанавливается дедлайн. После дедлайна задачи могут быть оценены максимум в 50% от количества баллов, предусмотренных за них в соответствующем домашнем задании.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
&lt;br /&gt;
# Для получения положительной итоговой оценки каждый из трёх контестов должен быть выполнен минимум на 3 балла из 10.&lt;br /&gt;
&lt;br /&gt;
# В каждом контесте три обязательные задачи формируют минимальную удовлетворительную оценку; дополнительные задачи повышают оценку за контест.&lt;br /&gt;
&lt;br /&gt;
# После дедлайна обязательные задачи оцениваются с ограничением не более 50% от предусмотренных за них баллов.&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;
&#039;&#039;&#039;Папка с материалами:&#039;&#039;&#039; [ссылка будет добавлена]&lt;br /&gt;
&lt;br /&gt;
* Презентации лекций, материалы семинаров и условия контестов.&lt;br /&gt;
* Материалы для подготовки к итоговой контрольной работе.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%9C%D0%A2%D0%A3._%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=5455</id>
		<title>ММТУ. Введение в программирование</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%9C%D0%A2%D0%A3._%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=5455"/>
		<updated>2026-10-29T15:26:49Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Это годовой курс С++, предназначенный для будущих ученых в области численного моделирования. Он рассчитан как на новичков, так и на студентов с опытом программирования, и существенно опирается на хорошее понимание физики. Первый семестр посвящен фундаментальным темам в области алгоритмов и техническим аспектам работы с памятью. Второй семестр посвящен проектной деятельности, объектно-ориентированному программированию и STL C++17.&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;Форма контроля:&#039;&#039;&#039; Дифференцированный зачет&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||Переменные, циклы, условия.||Контест.&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||Хранение переменных типа float. Проблемы и рецепты для их решения.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|7||Дискретная оптимизация. Жадные алгоритмы. Динамическое программирование.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|8||Лекция: ответы на вопросы.||Контрольная №1.&lt;br /&gt;
|-&lt;br /&gt;
|9||Указатели I. Модель памяти .flat. Правила работы стека и кучи.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|10||Технические аспекты. Linux, WSL, valgrind.(практика).||Лабораторная&lt;br /&gt;
|-&lt;br /&gt;
|11||Указатели II. Двойные указатели, двухмерные и расширяемые массивы.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|12||Стек и очередь на массивах и на списках. Обзор структур данных STL.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|13||Списки.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|14||Деревья.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|15||Лекция: ответы на вопросы.||Теоретический опрос.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Контесты - самостоятельная работа, не сдается и не оценивается. &lt;br /&gt;
*Лабораторные (5 шт) - в течение недели каждая по 2 балла, потом 1 балл.&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;
*0.33*A + 0.33*B + 0.33*C + D, где&lt;br /&gt;
*A -- оценка за первую контрольную (от 1 до 10)&lt;br /&gt;
*B -- оценка за теоретический опрос (от 1 до 10)&lt;br /&gt;
*C -- оценка за лабораторные (от 0 до 10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Бонусы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*D -- оценка за проект (от 0 до 5)&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;
https://disk.yandex.ru/d/FqkEeFej_4e8NQ &lt;br /&gt;
https://www.youtube.com/playlist?list=PLecy9mZ2ycLK4kjnS2SXSUVY2w044lxGd&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%9C%D0%A2%D0%A3._%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=5454</id>
		<title>ММТУ. Введение в программирование</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9C%D0%9C%D0%A2%D0%A3._%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=5454"/>
		<updated>2026-10-29T15:26:27Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Это годовой курс С++, предназначенный для будущих ученых в области численного моделирования. Он рассчитан как на новичков, так и на студентов с опытом программирования, и существенно опирается на хорошее понимание физики. Первый семестр посвящен фундаментальным темам в области алгоритмов и техническим аспектам работы с памятью. Второй семестр посвящен проектной деятельности, объектно-ориентированному программированию и STL C++17.&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;Форма контроля:&#039;&#039;&#039; Дифференцированный зачет&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||Переменные, циклы, условия.||Контест.&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||Хранение переменных типа float. Проблемы и рецепты для их решения.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|7||Дискретная оптимизация. Жадные алгоритмы. Динамическое программирование.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|8||Лекция: ответы на вопросы.||Контрольная №1.&lt;br /&gt;
|-&lt;br /&gt;
|9||Указатели I. Модель памяти .flat. Правила работы стека и кучи.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|10||Технические аспекты. Linux, WSL, valgrind.(практика).||Лабораторная&lt;br /&gt;
|-&lt;br /&gt;
|11||Указатели II. Двойные указатели, двухмерные и расширяемые массивы.||Контест.&lt;br /&gt;
|-&lt;br /&gt;
|12||Стек и очередь на массивах и на списках. Обзор структур данных STL.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|13||Списки.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|14||Деревья.||Лабораторная.&lt;br /&gt;
|-&lt;br /&gt;
|15||Лекция: ответы на вопросы.||Теоретический опрос.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Контесты - самостоятельная работа, не сдается и не оценивается. &lt;br /&gt;
*Лабораторные (5 шт) - в течение недели каждая по 2 балла, потом 1 балл.&lt;br /&gt;
*Теоретический опрос – стандартная сдача теории лектору или семинаристу. &lt;br /&gt;
*Проект - можно делать с начала семестра, сдача на зачетной неделе, дает дополнительные баллы.&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
• чат курса – по группам, создает семинарист (Telegram или другой мессенджер)  &lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам в чате дисциплины&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
*0.33*A + 0.33*B + 0.33*C + D, где&lt;br /&gt;
*A -- оценка за первую контрольную (от 1 до 10)&lt;br /&gt;
*B -- оценка за теоретический опрос (от 1 до 10)&lt;br /&gt;
*C -- оценка за лабораторные (от 0 до 10)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Бонусы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*D -- оценка за проект (от 0 до 5)&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;
https://disk.yandex.ru/d/FqkEeFej_4e8NQ &lt;br /&gt;
https://www.youtube.com/playlist?list=PLecy9mZ2ycLK4kjnS2SXSUVY2w044lxGd&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._(%D0%BE%D0%B4%D0%BD%D0%BE%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80%D0%BE%D0%B2%D1%8B%D0%B9)_2026&amp;diff=5453</id>
		<title>Программирование на языке C++. (односеместровый) 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._(%D0%BE%D0%B4%D0%BD%D0%BE%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80%D0%BE%D0%B2%D1%8B%D0%B9)_2026&amp;diff=5453"/>
		<updated>2026-10-29T15:25:05Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Параметр&lt;br /&gt;
! Значение&lt;br /&gt;
|-&lt;br /&gt;
| Формат&lt;br /&gt;
| 15 лекций + 15 семинаров (1 пара лекция + 1 пара семинар в неделю)&lt;br /&gt;
|-&lt;br /&gt;
| Стандарт языка&lt;br /&gt;
| C++17 (отдельные элементы C++20)&lt;br /&gt;
|-&lt;br /&gt;
| Среда разработки&lt;br /&gt;
| MSVC / g++ / clang++ — на выбор студента&lt;br /&gt;
|-&lt;br /&gt;
| Система сборки&lt;br /&gt;
| CMake или встроенная сборка IDE (без отдельной лекции)&lt;br /&gt;
|-&lt;br /&gt;
| Домашние работы&lt;br /&gt;
| 5 блоковых заданий (1–2 недели каждое) + итоговый проект&lt;br /&gt;
|-&lt;br /&gt;
| Использование LLM&lt;br /&gt;
| Разрешено при обязательной устной защите решения&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Курс посвящён изучению современного C++ от базовых конструкций языка до продвинутых возможностей, применяемых в промышленной разработке. В ходе обучения слушатели освоят синтаксис языка, работу с памятью, указателями, функциями, контейнерами STL и обработкой ошибок, а также научатся писать безопасный и эффективный код.&lt;br /&gt;
&lt;br /&gt;
Особое внимание уделяется объектно-ориентированному программированию, принципам проектирования (SOLID), шаблонам, исключениям, RAII, умным указателям, move-семантике и современным возможностям C++17/20. Отдельный блок посвящён стандартной библиотеке STL, алгоритмам, контейнерам и современному стилю разработки.&lt;br /&gt;
&lt;br /&gt;
По завершении курса участники смогут разрабатывать надёжные приложения на C++, грамотно управлять ресурсами, проектировать архитектуру программ, использовать современные возможности языка и эффективно применять стандартную библиотеку для решения практических задач.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пререквизиты&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Для успешного освоения курса слушателю достаточно иметь базовые навыки программирования: понимать, что такое переменные, типы данных, условные операторы, циклы и функции. Желателен опыт написания простых программ на любом языке программирования (например, Python, Pascal). Специальных знаний по C++ не требуется, так как курс начинается с основ языка.&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;
* &#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;
Ссылка на чат курса [https://t.me/+8AWYEeSgSKMzMDk6 в Tg]&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&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;
| 1&lt;br /&gt;
| Введение в C++ и первая программа&lt;br /&gt;
| Знакомство со средой и первые программы&lt;br /&gt;
| &#039;&#039;&#039;ДЗ 1.&#039;&#039;&#039; Основы C++: текстовый обработчик данных. Срок сдачи: после 4-го семинара.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Объявления, выражения, управление потоком, ошибки&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;
| 4&lt;br /&gt;
| Функции, ссылки, const&lt;br /&gt;
| Функции и эффективная передача данных&lt;br /&gt;
| &#039;&#039;&#039;Сдача ДЗ 1&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Классы и инкапсуляция&lt;br /&gt;
| Проектирование простых классов&lt;br /&gt;
| &#039;&#039;&#039;ДЗ 2.&#039;&#039;&#039; ООП: полиморфная предметная область.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Конструкторы, деструкторы, правило трёх&lt;br /&gt;
| Класс с управлением ресурсом (Rule of Three)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Наследование, интерфейсы и полиморфизм&lt;br /&gt;
| Полиморфная иерархия классов&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| SOLID, композиция, агрегация, паттерны&lt;br /&gt;
| Рефакторинг и проектирование&lt;br /&gt;
| &#039;&#039;&#039;Сдача ДЗ 2&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Шаблоны&lt;br /&gt;
| Шаблоны на практике&lt;br /&gt;
| &#039;&#039;&#039;ДЗ 3.&#039;&#039;&#039; Шаблоны и исключения: generic-контейнер.&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Исключения и RAII&lt;br /&gt;
| Безопасный код с исключениями&lt;br /&gt;
| &#039;&#039;&#039;Сдача ДЗ 3&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Умные указатели&lt;br /&gt;
| Умные указатели вместо new/delete&lt;br /&gt;
| &#039;&#039;&#039;ДЗ 4.&#039;&#039;&#039; Современный C++: ресурсный менеджер.&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Move-семантика и приведения типов&lt;br /&gt;
| Move и cast на практике&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Вывод типов, лямбды, std::function&lt;br /&gt;
| Современный стиль C++&lt;br /&gt;
| &#039;&#039;&#039;Сдача ДЗ 4&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| STL: контейнеры, итераторы, алгоритмы&lt;br /&gt;
| STL на практике&lt;br /&gt;
| &#039;&#039;&#039;ДЗ 5.&#039;&#039;&#039; STL: прикладная задача на контейнерах и алгоритмах.&amp;lt;br&amp;gt;Итоговый проект (параллельно с ДЗ 5).&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Итоги: современный C++ и перспективы&lt;br /&gt;
| Итоговое занятие&lt;br /&gt;
| &#039;&#039;&#039;Сдача ДЗ 5.&#039;&#039;&#039; Защита итогового проекта.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Более подробную программу курса можно посмотреть здесь:&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/file/d/13DYwVY4MAYvptY9fY_Gb8ZStGUsFwxlF/view?usp=drive_link Подробная программа курса]&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Описание и критерии оценивания домашних заданий и итогового проекта&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Название&lt;br /&gt;
!Срок сдачи&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Домашнее задание 1. Основы C++: текстовый обработчик данных&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Цель:&#039;&#039;&#039; Закрепить базовый синтаксис, работу с vector/map/string, функциями и корректной обработкой ошибок без ООП.&lt;br /&gt;
|После семинара 4 (конец 4-й недели)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Домашнее задание 2. ООП: полиморфная предметная область&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Цель:&#039;&#039;&#039; Закрепить инкапсуляцию, правило трёх, наследование, полиморфизм и базовое проектирование (композиция предпочтительнее лишнего наследования).&lt;br /&gt;
| После семинара 8 (конец 8-й недели)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Домашнее задание 3. Шаблоны и исключения: generic-контейнер&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Цель:&#039;&#039;&#039; Закрепить шаблоны классов, RAII, обработку ошибок и exception-safety.&lt;br /&gt;
|После семинара 10 (конец 10-й недели)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Домашнее задание 4. Современный C++: ресурсный менеджер&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Цель:&#039;&#039;&#039; Закрепить умные указатели, move-семантику, правило пяти/нуля и современный стиль.&lt;br /&gt;
|После семинара 13 (конец 13-й недели)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Домашнее задание 5. STL: прикладная задача на контейнерах и алгоритмах&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Цель:&#039;&#039;&#039; Закрепить выбор контейнеров, итераторы, алгоритмы STL и современный стиль.&lt;br /&gt;
|После семинара 14 (начало 15-й недели)&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;
&#039;&#039;&#039;Формат защиты:&#039;&#039;&#039; Презентация 10 мин+ вопросы.&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;
* Домашние задания: максимум 5 баллов (5 заданий по 1 баллу).&lt;br /&gt;
* Устный зачет: до 3 баллов.&lt;br /&gt;
* Командный проект: до 2 баллов.&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://drive.google.com/file/d/1TQ98OMNn5WlozV1mpayfIUXVPKqypSR0/view?usp=sharing здесь].&#039;&#039;&#039;&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;
# &#039;&#039;&#039;Бьерн Страуструп&#039;&#039;&#039; — &#039;&#039;«Программирование. Принципы и практика использования C++»&#039;&#039;&lt;br /&gt;
#: Один из лучших вводных курсов от создателя языка. Много примеров, объясняет не только «как», но и «почему».&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Стенли Липпман, Жози Лажойе, Барбара Му&#039;&#039;&#039; — &#039;&#039;«Язык программирования C++. Базовый курс»&#039;&#039; (5-е издание)&lt;br /&gt;
#: Системное введение в язык и STL, с акцентом на правильные привычки и современные возможности C++.&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Герберт Шилдт&#039;&#039;&#039; — &#039;&#039;«C++: базовый курс»&#039;&#039; (3-е издание)&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; — &#039;&#039;«Эффективное использование C++»&#039;&#039; и &#039;&#039;«Наиболее эффективное использование C++»&#039;&#039;&lt;br /&gt;
#: Классика: более 55 советов по стилю, управлению ресурсами, RAII, const и правильному использованию STL.&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Герб Саттер&#039;&#039;&#039; — &#039;&#039;«Новые сложные задачи на C++»&#039;&#039; и &#039;&#039;«Решение сложных задач на C++»&#039;&#039;&lt;br /&gt;
#: Примеры нетривиальных ситуаций, показывают, как думать о коде, а не только о синтаксисе.&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Николай Джосаттис&#039;&#039;&#039; — &#039;&#039;«C++. Стандартная библиотека»&#039;&#039;&lt;br /&gt;
#: Подробный справочник по STL: контейнеры, алгоритмы, итераторы, с примерами и замечаниями по эффективности.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Современный C++17/20 и продвинутые темы&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Бьерн Страуструп&#039;&#039;&#039; — &#039;&#039;«A Tour of C++»&#039;&#039; (2-е и 3-е издания)&lt;br /&gt;
#: Обзор современного C++ для опытных программистов: кратко, но полно о возможностях C++11/14/17/20, идеях дизайна и типичных паттернах.&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Андрей Александреску, Герб Саттер&#039;&#039;&#039; — &#039;&#039;«C++ Coding Standards: 101 Rules, Guidelines, and Best Practices»&#039;&#039;&lt;br /&gt;
#: Стандарты кода, именование, безопасность, производительность, использование шаблонов и STL.&lt;br /&gt;
#&lt;br /&gt;
# &#039;&#039;&#039;Николай Джосаттис&#039;&#039;&#039; — &#039;&#039;«C++20. The Complete Guide»&#039;&#039;&lt;br /&gt;
#: Обзор новых возможностей C++20: modules, coroutines, ranges, константные вычисления и улучшения шаблонов.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9F%D1%80%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D1%83%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5452</id>
		<title>Программирование на языке C++. Продвинутый поток 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9F%D1%80%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D1%83%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5452"/>
		<updated>2026-10-29T15:24:08Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Курс посвящён изучению основных возможностей языка C++, особенностей управления памятью, объектно-ориентированного программирования, наследования и полиморфизма, стадий компиляции, шаблонов, исключений и устройства стандартных контейнеров.&lt;br /&gt;
&lt;br /&gt;
== Команда курса ==&lt;br /&gt;
Руководитель, лектор и семинарист: Мещерин Илья&lt;br /&gt;
&amp;lt;br&amp;gt;Семинарист (некоторые занятия): Долта Артём&lt;br /&gt;
&amp;lt;br&amp;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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция/ Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Основные термины языка C++. Объекты, значения, переменные, типы. Объявления и определения, области видимости. Основные типы и операции над ними. Выражения и операторы. Приоритет операторов и порядок вычислений. Виды ошибок: ошибки компиляции (CE), ошибки времени выполнения (RE). Понятие неопределенного поведения (UB).&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Указатели. Взятие адреса и разыменование. Арифметика указателей. Функции. Пергрузка функций. Указатели на функции. Массивы. Сходства и различия между массивами и указателями. Передача массивов в функции. Динамическая память, функции malloc/free, операторы new/delete. Статическая память и стек. Проблемы утечек памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ссылки. Особенности инициализации ссылок. Возврат ссылок из функций. Проблема висячих ссылок. Константы. Константные указатели и указатели на константу. Константные ссылки. Способы передачи аргументов в функцию. Способы приведения типов: static_cast, reinterpret_cast, const_cast.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Структуры и классы. Члены классов. Модификаторы доступа. Перегрузка операторов. Конструкторы и деструкторы. Операторы присваивания. Правило трех. Списки инициализации в конструкторах. Идиома copy-and-swap. Статические члены классов. Внутренние классы и локальные классы. Константные методы. Указатели на поля и методы.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Наследование. Публичное и приватное наследование. Видимость и доступность членов класса при наследовании. Использование using. Размещение объектов в памяти при наследовании. Приведения типов при наследовании. Принцип подстановки Лисков. Множественное наследование. Diamond problem. Виртуальное наследование.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Полиморфизм. Виртуальные функции. Ключевое слово override. Чисто виртуальные функции. Таблицы виртуальных функций. Внутреннее устройство vtable. Понятие ABI. Внутреннее устройство указателей на члены класса. Проблема виртуальных функций в конструкторах. Ошибка pure vitrual method call.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Стадии компиляции. Препроцессинг. Ассемблирование. Линковка, единицы трансляции. Ключевое слово extern. Правило одного определения и ключевое слово inline. Оптимизации компилятора.  Примеры нетривиального UB из-за оптимизаций. Санитайзеры.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Шаблоны классов, функций, типов, переменных. Перегрузка шаблонных функций. Частичная и полная специализация шаблонов. Особенности определения шаблонных функций. Числовые параметры шаблонов. Простейшие compile-time вычисления. Шаблонные параметры шаблонов. Простейшие метафункции и их реализация. Зависимые имена. Шаблоны с переменным числом аргументов. Выражения свертки.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Исключения. Отличие исключений от RE. Особенности перехвата исключений. Проблема исключений в конструкторах и деструкторах. Идиома RAII и умные указатели. Множественные исключения, функция uncaught_exceptions. Иерархия стандартных исключений. Внутреннее устройство механизма обработки исключений.&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Устройство стандартных контейнеров: vector, list, deque, map, unordered_map. Особенности vector&amp;lt;bool&amp;gt;. Реализация методов push_back и reserve для vector. Конструкция placement new. Итераторы. Инвалидация итераторов. Константные и неконстантные итераторы. Обратные итераторы. Категории итераторов.&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>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5451</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5451"/>
		<updated>2026-10-29T15:05:36Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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;
&#039;&#039;&#039; Правила проведения экзамена&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9F%D1%80%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D1%83%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5450</id>
		<title>Программирование на языке C++. Продвинутый поток 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9F%D1%80%D0%BE%D0%B4%D0%B2%D0%B8%D0%BD%D1%83%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5450"/>
		<updated>2026-10-29T15:02:53Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
Курс посвящён изучению основных возможностей языка C++, особенностей управления памятью, объектно-ориентированного программирования, наследования и полиморфизма, стадий компиляции, шаблонов, исключений и устройства стандартных контейнеров.&lt;br /&gt;
&lt;br /&gt;
== Команда курса ==&lt;br /&gt;
Руководитель, лектор и семинарист: Мещерин Илья&lt;br /&gt;
&amp;lt;br&amp;gt;Семинарист (некоторые занятия): Долта Артём&lt;br /&gt;
&amp;lt;br&amp;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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция/ Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Основные термины языка C++. Объекты, значения, переменные, типы. Объявления и определения, области видимости. Основные типы и операции над ними. Выражения и операторы. Приоритет операторов и порядок вычислений. Виды ошибок: ошибки компиляции (CE), ошибки времени выполнения (RE). Понятие неопределенного поведения (UB).&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Указатели. Взятие адреса и разыменование. Арифметика указателей. Функции. Пергрузка функций. Указатели на функции. Массивы. Сходства и различия между массивами и указателями. Передача массивов в функции. Динамическая память, функции malloc/free, операторы new/delete. Статическая память и стек. Проблемы утечек памяти.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Ссылки. Особенности инициализации ссылок. Возврат ссылок из функций. Проблема висячих ссылок. Константы. Константные указатели и указатели на константу. Константные ссылки. Способы передачи аргументов в функцию. Способы приведения типов: static_cast, reinterpret_cast, const_cast.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Структуры и классы. Члены классов. Модификаторы доступа. Перегрузка операторов. Конструкторы и деструкторы. Операторы присваивания. Правило трех. Списки инициализации в конструкторах. Идиома copy-and-swap. Статические члены классов. Внутренние классы и локальные классы. Константные методы. Указатели на поля и методы.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Наследование. Публичное и приватное наследование. Видимость и доступность членов класса при наследовании. Использование using. Размещение объектов в памяти при наследовании. Приведения типов при наследовании. Принцип подстановки Лисков. Множественное наследование. Diamond problem. Виртуальное наследование.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Полиморфизм. Виртуальные функции. Ключевое слово override. Чисто виртуальные функции. Таблицы виртуальных функций. Внутреннее устройство vtable. Понятие ABI. Внутреннее устройство указателей на члены класса. Проблема виртуальных функций в конструкторах. Ошибка pure vitrual method call.&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Стадии компиляции. Препроцессинг. Ассемблирование. Линковка, единицы трансляции. Ключевое слово extern. Правило одного определения и ключевое слово inline. Оптимизации компилятора.  Примеры нетривиального UB из-за оптимизаций. Санитайзеры.&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Шаблоны классов, функций, типов, переменных. Перегрузка шаблонных функций. Частичная и полная специализация шаблонов. Особенности определения шаблонных функций. Числовые параметры шаблонов. Простейшие compile-time вычисления. Шаблонные параметры шаблонов. Простейшие метафункции и их реализация. Зависимые имена. Шаблоны с переменным числом аргументов. Выражения свертки.&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Исключения. Отличие исключений от RE. Особенности перехвата исключений. Проблема исключений в конструкторах и деструкторах. Идиома RAII и умные указатели. Множественные исключения, функция uncaught_exceptions. Иерархия стандартных исключений. Внутреннее устройство механизма обработки исключений.&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Устройство стандартных контейнеров: vector, list, deque, map, unordered_map. Особенности vector&amp;lt;bool&amp;gt;. Реализация методов push_back и reserve для vector. Конструкция placement new. Итераторы. Инвалидация итераторов. Константные и неконстантные итераторы. Обратные итераторы. Категории итераторов.&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>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5449</id>
		<title>Программирование на языке C++. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5449"/>
		<updated>2026-10-29T14:52:29Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Первый (осенний) семестр&#039;&#039;&#039; предназначен для начинающих разработчиков на C++.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Второй (весенний) семестр&#039;&#039;&#039; даёт углублённое понимание тонкостей языка и раскрывает особенности возможностей новых стандартов. Подойдёт как для тех, у кого C++ является первым опытом программирования, так и для тех, кто переходит на C++ с других языков.&lt;br /&gt;
&lt;br /&gt;
Важной особенностью курса является то, что упор делается на большое количество практики, код-ревью и устные сдачи. Данный подход позволяет выстроить сильный фундамент для дальнейшего профессионального развития как C++-разработчика, так и в любой другой IT-специальности.&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;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;&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;
&#039;&#039;&#039;Программа курса осеннего семестра&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&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;
| 2&lt;br /&gt;
| Основные типы и операции над ними. Выражения и операторы.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Control statements. Compile-time errors, runtime errors. Undefined behavior и unspecified behavior.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Указатели. Виды памяти.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Динамическая память. Массивы. Указатели на функции.&lt;br /&gt;
|Stack &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Ссылки. Константы. Константные указатели и ссылки.&lt;br /&gt;
| Stack &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Приведения типов. Классы и структуры. Модификаторы доступа.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Конструкторы и деструкторы. Оператор присваивания. Правило трёх.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Перегрузка операторов. Const-, static-, explicit-методы. Указатели на члены.&lt;br /&gt;
| BigInteger&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Наследование и его виды. Видимость и доступность методов при наследовании. Конструкторы и деструкторы при наследовании.&lt;br /&gt;
| Rational&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Приведения типов при наследовании. Множественное наследование. Виртуальные функции и полиморфные типы.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Абстрактные классы. Pure virtual функции. RTTI и dynamic_cast. Таблицы виртуальных функций.&lt;br /&gt;
| Geometry &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Виртуальные функции (окончание). Шаблоны. Перегрузка и специализация шаблонов.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Вычисления на шаблонах. Метафункции. Зависимые имена.&lt;br /&gt;
| Matrix&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Вариативные шаблоны. Исключения. Идиома RAII.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Весенний семестр&#039;&#039;&#039;&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;
| 16&lt;br /&gt;
| Исключения в конструкторах и деструкторах. noexcept. Exception-safety.&lt;br /&gt;
| Residue&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Контейнеры. Внутреннее устройство vector и deque.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Устройство deque. Итераторы, виды итераторов, инвалидация итераторов. Внутреннее устройство list.&lt;br /&gt;
| Deque&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Внутреннее устройство map. Классы string_view и span. Идея аллокаторов.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Внутреннее устройство unordered_map. Allocator traits. Allocator-aware контейнеры.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Выравнивания. Перегрузка new/delete. Идея move-семантики. Move-конструкторы и move-assignment операторы.&lt;br /&gt;
| List and StackAllocator &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Определения lvalue и rvalue. Rvalue-ссылки. Reference qualifiers. Perfect forwarding. Универсальные ссылки. std::forward.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Реализация std::move и std::forward. xvalues, RVO, copy elision, temporary materialization. Функция move_if_noexcept.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Вывод типов auto, decltype. CTAD, template deduction guides. Tuples, structured bindings, tuple-like types.&lt;br /&gt;
| Unordered Map &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| unique_ptr, shared_ptr, weak_ptr, make_shared, enable_shared_from_this. Type erasure. std::any.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Стирание типов в shared_ptr. Шаблонное метапрограммирование. Идиома SFINAE. Реализация is_class. Метафункция enable_if.&lt;br /&gt;
| SharedPtr&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Реализация has_method_construct, is_base_of. Спецификатор и оператор requires. Концепты.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Лямбды. Замыкания. Списки захвата. Захват с инициализацией. Захват this. Обобщённые лямбды.&lt;br /&gt;
| Tuple &lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Шаблонные лямбды. std::function, std::bind, std::reference_wrapper, std::invoke. Идея реализации std::function.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Constexpr-переменные и функции. Compile-time вычисления.&lt;br /&gt;
| Function&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;На каждую задачу:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
срок сдачи в контест — 3 недели (2 недели без штрафа);&lt;br /&gt;
&lt;br /&gt;
срок прохождения ревью (в том числе устного) — 4 недели с момента релиза задачи и 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;
&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;
Итоговая оценка по задачам считается так:&lt;br /&gt;
&lt;br /&gt;
* формула: (кол-во баллов по сданным задачам - штрафы за скат) / кол-во баллов за все задачи * 7&lt;br /&gt;
* финальная контрольная работа является блокирующей и приносит от 0 до 3 баллов (при баллах ниже порога, который считается после сдачи кр, зачет считается не сданным и переходит в ранг пересдачи)&lt;br /&gt;
* Итоговая оценка складывается из максимальных баллов (7 за задачи + 3 за к.р. + 1 от семинариста) и итог округляется вниз.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Весенний семестр&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Баллы за сданные задачи ограничивают оценку таким образом:&lt;br /&gt;
*учитываются 6 задач с коэффициентом (о нем ниже) + баллы за задачу reze&lt;br /&gt;
*нормировка выглядит следующим образом&lt;br /&gt;
        1) 1 задача -&amp;gt; ее баллы * 1.0&lt;br /&gt;
        2) 2 задачи -&amp;gt; их баллы * 1.1&lt;br /&gt;
        3) 3 задачи -&amp;gt; их баллы * 1.2&lt;br /&gt;
        4) 4 задачи -&amp;gt; их баллы * 1.3&lt;br /&gt;
        5) 5 задачи -&amp;gt; их баллы * 1.4&lt;br /&gt;
        6) 6 задачи -&amp;gt; их баллы * 1.5&lt;br /&gt;
&lt;br /&gt;
*чтобы иметь возможность получить оценку уд. необходимо сдать 1-2 задачи (не учитывая Residue) + сумма баллов всех сданных задач 250-449.&lt;br /&gt;
*чтобы иметь возможность получить оценку хор. необходимо сдать 3-4 задачи (не учитывая Residue) + сумма баллов всех сданных задач 450-749.&lt;br /&gt;
*чтобы иметь возможность получить оценку отл. необходимо сдать 5-6 задачи (не учитывая Residue) + сумма баллов всех сданных задач 750-1000+.&lt;br /&gt;
*финальная сумма баллов переводится в оценку по формуле баллы / 100. Например, 740 баллов переходят в оценку 7, а 755 в оценку 8 по правилу округления.&lt;br /&gt;
&lt;br /&gt;
2. Сам процесс сдачи экзамена:&lt;br /&gt;
* при сдаче на уд. - отвечаются 2 билета на уд.&lt;br /&gt;
* при сдаче на хор. - отвечаются 2 билета на уд. и 2 билета на хор.&lt;br /&gt;
* при сдаче на отл. - отвечаются 2 билета на хор и 2 билета на отл.&lt;br /&gt;
&lt;br /&gt;
3. Если у вас одна из следующих ситуаций, то есть возможность повысить оценку:&lt;br /&gt;
* 2 (не учитывая Residue) задачи и больше 500 баллов, то можно ответить на оценку хор 5 (для этого необходимо успешно ответить все билеты на оценку уд. и затем 2 дополнительных билета на хор.)&lt;br /&gt;
* 4 (не учитывая Residue) задачи и больше 800 баллов, то можно ответить на оценку отл 8 (для этого необходимо успешно ответить все билеты на оценку хор. и затем 2 дополнительных билета на отл.)&lt;br /&gt;
&lt;br /&gt;
4. При успешной сдаче 3+ задач (то есть вы успешно сдали 4-6 задач) в семестре (не учитывая Residue) билеты на уд. отвечать не обязательно.&lt;br /&gt;
&lt;br /&gt;
5. При успешной сдаче 4+ задач (то есть вы успешно сдали 5-6 задач, не учитывая Residue), есть возможность вытянуть 3 билета на хор и 3 билета на отл, но выбрать из каждого множества по 2 для ответа на экзамене.&lt;br /&gt;
&lt;br /&gt;
Крайне рекомендуем досдать все задачи как можно раньше, чтобы идти на экзамен с максимально возможным количеством баллов))))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример расчёта баллов.&#039;&#039;&#039; &lt;br /&gt;
Сиксевенов Пабло Ильич решил за семестр Residue на 90 баллов, list на 180, tuple на 200.&lt;br /&gt;
Получаем такую формулу расчёта его баллов: (180 + 200) * 1.1 + 90 = 508. - Ему необходимо ответить 2 билета на уд тк на уд достаточно решено задач и баллов.&lt;br /&gt;
Если все успешно, он может попробовать сдать на хор, тк у него 500+ баллов, для получения оценки хор 5 ему необходимо успешно ответить 2 билета на хор.&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
Видеолекции &lt;br /&gt;
&lt;br /&gt;
* [https://vkvideo.ru/playlist/-206078025_142 Видеолекции первого семестра]&lt;br /&gt;
* [https://vkvideo.ru/playlist/-206078025_238/season_undefined Видеолекции второго семестра]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/file/d/1CglSQmZ7LX_fHw-w1LQbDJBr7w1y3bcx/view?usp=sharing программа экзамена]&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5448</id>
		<title>Программирование на языке C++. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5_C%2B%2B._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5448"/>
		<updated>2026-10-29T14:50:04Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Команда курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Первый (осенний) семестр&#039;&#039;&#039; предназначен для начинающих разработчиков на C++.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Второй (весенний) семестр&#039;&#039;&#039; даёт углублённое понимание тонкостей языка и раскрывает особенности возможностей новых стандартов. Подойдёт как для тех, у кого C++ является первым опытом программирования, так и для тех, кто переходит на C++ с других языков.&lt;br /&gt;
&lt;br /&gt;
Важной особенностью курса является то, что упор делается на большое количество практики, код-ревью и устные сдачи. Данный подход позволяет выстроить сильный фундамент для дальнейшего профессионального развития как C++-разработчика, так и в любой другой IT-специальности.&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;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039;&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;
&#039;&#039;&#039;Программа курса осеннего семестра&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&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;
| 2&lt;br /&gt;
| Основные типы и операции над ними. Выражения и операторы.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Control statements. Compile-time errors, runtime errors. Undefined behavior и unspecified behavior.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Указатели. Виды памяти.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Динамическая память. Массивы. Указатели на функции.&lt;br /&gt;
|Stack &lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Ссылки. Константы. Константные указатели и ссылки.&lt;br /&gt;
| Stack &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Приведения типов. Классы и структуры. Модификаторы доступа.&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Конструкторы и деструкторы. Оператор присваивания. Правило трёх.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Перегрузка операторов. Const-, static-, explicit-методы. Указатели на члены.&lt;br /&gt;
| BigInteger&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Наследование и его виды. Видимость и доступность методов при наследовании. Конструкторы и деструкторы при наследовании.&lt;br /&gt;
| Rational&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Приведения типов при наследовании. Множественное наследование. Виртуальные функции и полиморфные типы.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Абстрактные классы. Pure virtual функции. RTTI и dynamic_cast. Таблицы виртуальных функций.&lt;br /&gt;
| Geometry &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Виртуальные функции (окончание). Шаблоны. Перегрузка и специализация шаблонов.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Вычисления на шаблонах. Метафункции. Зависимые имена.&lt;br /&gt;
| Matrix&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Вариативные шаблоны. Исключения. Идиома RAII.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Весенний семестр&#039;&#039;&#039;&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;
| 16&lt;br /&gt;
| Исключения в конструкторах и деструкторах. noexcept. Exception-safety.&lt;br /&gt;
| Residue&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Контейнеры. Внутреннее устройство vector и deque.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Устройство deque. Итераторы, виды итераторов, инвалидация итераторов. Внутреннее устройство list.&lt;br /&gt;
| Deque&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Внутреннее устройство map. Классы string_view и span. Идея аллокаторов.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Внутреннее устройство unordered_map. Allocator traits. Allocator-aware контейнеры.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Выравнивания. Перегрузка new/delete. Идея move-семантики. Move-конструкторы и move-assignment операторы.&lt;br /&gt;
| List and StackAllocator &lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Определения lvalue и rvalue. Rvalue-ссылки. Reference qualifiers. Perfect forwarding. Универсальные ссылки. std::forward.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Реализация std::move и std::forward. xvalues, RVO, copy elision, temporary materialization. Функция move_if_noexcept.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Вывод типов auto, decltype. CTAD, template deduction guides. Tuples, structured bindings, tuple-like types.&lt;br /&gt;
| Unordered Map &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| unique_ptr, shared_ptr, weak_ptr, make_shared, enable_shared_from_this. Type erasure. std::any.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Стирание типов в shared_ptr. Шаблонное метапрограммирование. Идиома SFINAE. Реализация is_class. Метафункция enable_if.&lt;br /&gt;
| SharedPtr&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| Реализация has_method_construct, is_base_of. Спецификатор и оператор requires. Концепты.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| Лямбды. Замыкания. Списки захвата. Захват с инициализацией. Захват this. Обобщённые лямбды.&lt;br /&gt;
| Tuple &lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| Шаблонные лямбды. std::function, std::bind, std::reference_wrapper, std::invoke. Идея реализации std::function.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| Constexpr-переменные и функции. Compile-time вычисления.&lt;br /&gt;
| Function&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;На каждую задачу:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
срок сдачи в контест — 3 недели (2 недели без штрафа);&lt;br /&gt;
&lt;br /&gt;
срок прохождения ревью (в том числе устного) — 4 недели с момента релиза задачи и 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;
&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;
Итоговая оценка по задачам считается так:&lt;br /&gt;
&lt;br /&gt;
* формула: (кол-во баллов по сданным задачам - штрафы за скат) / кол-во баллов за все задачи * 7&lt;br /&gt;
* финальная контрольная работа является блокирующей и приносит от 0 до 3 баллов (при баллах ниже порога, который считается после сдачи кр, зачет считается не сданным и переходит в ранг пересдачи)&lt;br /&gt;
* Итоговая оценка складывается из максимальных баллов (7 за задачи + 3 за к.р. + 1 от семинариста) и итог округляется вниз.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Весенний семестр&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Баллы за сданные задачи ограничивают оценку таким образом:&lt;br /&gt;
*учитываются 6 задач с коэффициентом (о нем ниже) + баллы за задачу reze&lt;br /&gt;
*нормировка выглядит следующим образом&lt;br /&gt;
        1) 1 задача -&amp;gt; ее баллы * 1.0&lt;br /&gt;
        2) 2 задачи -&amp;gt; их баллы * 1.1&lt;br /&gt;
        3) 3 задачи -&amp;gt; их баллы * 1.2&lt;br /&gt;
        4) 4 задачи -&amp;gt; их баллы * 1.3&lt;br /&gt;
        5) 5 задачи -&amp;gt; их баллы * 1.4&lt;br /&gt;
        6) 6 задачи -&amp;gt; их баллы * 1.5&lt;br /&gt;
&lt;br /&gt;
*чтобы иметь возможность получить оценку уд. необходимо сдать 1-2 задачи (не учитывая Residue) + сумма баллов всех сданных задач 250-449.&lt;br /&gt;
*чтобы иметь возможность получить оценку хор. необходимо сдать 3-4 задачи (не учитывая Residue) + сумма баллов всех сданных задач 450-749.&lt;br /&gt;
*чтобы иметь возможность получить оценку отл. необходимо сдать 5-6 задачи (не учитывая Residue) + сумма баллов всех сданных задач 750-1000+.&lt;br /&gt;
*финальная сумма баллов переводится в оценку по формуле баллы / 100. Например, 740 баллов переходят в оценку 7, а 755 в оценку 8 по правилу округления.&lt;br /&gt;
&lt;br /&gt;
2. Сам процесс сдачи экзамена:&lt;br /&gt;
* при сдаче на уд. - отвечаются 2 билета на уд.&lt;br /&gt;
* при сдаче на хор. - отвечаются 2 билета на уд. и 2 билета на хор.&lt;br /&gt;
* при сдаче на отл. - отвечаются 2 билета на хор и 2 билета на отл.&lt;br /&gt;
&lt;br /&gt;
3. Если у вас одна из следующих ситуаций, то есть возможность повысить оценку:&lt;br /&gt;
* 2 (не учитывая Residue) задачи и больше 500 баллов, то можно ответить на оценку хор 5 (для этого необходимо успешно ответить все билеты на оценку уд. и затем 2 дополнительных билета на хор.)&lt;br /&gt;
* 4 (не учитывая Residue) задачи и больше 800 баллов, то можно ответить на оценку отл 8 (для этого необходимо успешно ответить все билеты на оценку хор. и затем 2 дополнительных билета на отл.)&lt;br /&gt;
&lt;br /&gt;
4. При успешной сдаче 3+ задач (то есть вы успешно сдали 4-6 задач) в семестре (не учитывая Residue) билеты на уд. отвечать не обязательно.&lt;br /&gt;
&lt;br /&gt;
5. При успешной сдаче 4+ задач (то есть вы успешно сдали 5-6 задач, не учитывая Residue), есть возможность вытянуть 3 билета на хор и 3 билета на отл, но выбрать из каждого множества по 2 для ответа на экзамене.&lt;br /&gt;
&lt;br /&gt;
Крайне рекомендуем досдать все задачи как можно раньше, чтобы идти на экзамен с максимально возможным количеством баллов))))&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Пример расчёта баллов.&#039;&#039;&#039; &lt;br /&gt;
Сиксевенов Пабло Ильич решил за семестр Residue на 90 баллов, list на 180, tuple на 200.&lt;br /&gt;
Получаем такую формулу расчёта его баллов: (180 + 200) * 1.1 + 90 = 508. - Ему необходимо ответить 2 билета на уд тк на уд достаточно решено задач и баллов.&lt;br /&gt;
Если все успешно, он может попробовать сдать на хор, тк у него 500+ баллов, для получения оценки хор 5 ему необходимо успешно ответить 2 билета на хор.&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
Видеолекции &lt;br /&gt;
&lt;br /&gt;
* [https://vkvideo.ru/playlist/-206078025_142 Видеолекции первого семестра]&lt;br /&gt;
* [https://vkvideo.ru/playlist/-206078025_238/season_undefined Видеолекции второго семестра]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/file/d/1CglSQmZ7LX_fHw-w1LQbDJBr7w1y3bcx/view?usp=sharing программа экзамена]&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5447</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5447"/>
		<updated>2026-10-29T14:49:09Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026 чат] курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
таблица с оценками доступна студентам в канале дисциплины&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8_%D0%B8_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D0%B8_2026&amp;diff=5446</id>
		<title>Формальные языки и трансляции 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8_%D0%B8_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D0%B8_2026&amp;diff=5446"/>
		<updated>2026-10-29T14:23:19Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: &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;
За семестр мы проходим путь от конечного автомата до промышленного алгоритма синтаксического анализа. Сначала разбираемся с регулярными языками и доказываем, что автоматы и регулярные выражения задают одно и то же. Затем поднимаемся по иерархии Хомского к контекстно-свободным грамматикам и учимся строить по ним разбор за полиномиальное время. Заканчиваем LR-анализом, который лежит внутри реальных компиляторов, и конечными преобразователями, через которые описывается контекстная замена.&lt;br /&gt;
&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;
* &#039;&#039;&#039;Алгебра.&#039;&#039;&#039; Понятие моноида и подмоноида приходит из теории групп, здесь оно применяется к языкам.&lt;br /&gt;
* &#039;&#039;&#039;Алгоритмы и структуры данных.&#039;&#039;&#039; Обходы графов, динамическое программирование, оценка асимптотики.&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;
* Разбирать слово по грамматике алгоритмами Кока, Янгера и Касами, Эрли и LR(k), оценивая стоимость каждого.&lt;br /&gt;
* Строить конечный преобразователь для заданного преобразования и раскладывать его по теореме Нива.&lt;br /&gt;
&lt;br /&gt;
== Команда курса ==&lt;br /&gt;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Ахтямов Павел Ибрагимович&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;
Семестр идёт 15 недель. Каждая неделя состоит из одной лекции и одного семинара, оба занятия по два академических часа, то есть по час двадцать.&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;
Семестр рассчитан на 15 недель. Темы восстановлены по материалам потока 2025 года, контрольные стоят на неделях 6 и 15.&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;
| 1&lt;br /&gt;
| НКА, конфигурации, упрощения автомата&lt;br /&gt;
| Регулярные выражения&lt;br /&gt;
| ДЗ 1. Регулярные языки&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Удаление ε-переходов, распознавание слова, переход к ДКА&lt;br /&gt;
| Конечные автоматы&lt;br /&gt;
| ДЗ 2. Автоматы и ε-переходы&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Построение ДКА, замкнутость, теорема Клини&lt;br /&gt;
| Построение ДКА, теорема Клини&lt;br /&gt;
| ДЗ 3. Детерминизация и дополнение&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Лемма о разрастании, эквивалентность слов, классы Σ*/∼&lt;br /&gt;
| Теорема Клини, лемма о разрастании, минимизация&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Единственность и построение МПДКА, Майхилл и Нероуд&lt;br /&gt;
| Лемма о разрастании, эквивалентность языков&lt;br /&gt;
| ДЗ 4. Минимизация, Майхилл и Нероуд&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Иерархия Хомского, деревья вывода, однозначность&lt;br /&gt;
| &#039;&#039;&#039;Контрольная 1&#039;&#039;&#039; (весь семинар)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Форма Хомского, CYK, разрастание&lt;br /&gt;
| Контекстно-свободные грамматики&lt;br /&gt;
| ДЗ 5. Грамматики и иерархия Хомского&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Автоматы с магазинной памятью, эквивалентность с КС-грамматиками&lt;br /&gt;
| Форма Хомского, CYK, разрастание&lt;br /&gt;
| ДЗ 6. Нормальная форма Хомского и CYK&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Алгоритм Эрли: ситуации, корректность, сложность&lt;br /&gt;
| МП-автоматы&lt;br /&gt;
| ДЗ 7. МП-автоматы&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Форма Грейбах, пересечение с регулярным языком&lt;br /&gt;
| Алгоритм Эрли&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| LR(k): восходящий разбор, активные префиксы, LR(k)-ситуации&lt;br /&gt;
| Лемма Огдена, перенос-свёртка&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| LR(k): построение таблиц, критерий класса&lt;br /&gt;
| LR(k)-разбор&lt;br /&gt;
| ДЗ 8. LR(k)-грамматики&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| LR(k): корректность разбора и линейность&lt;br /&gt;
| Преобразователи, контекстная замена&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Преобразователи: определение и примеры&lt;br /&gt;
| Лемма о накачке, теорема Хомского и Шютценберже&lt;br /&gt;
| ДЗ 9. Преобразователи, лемма о накачке&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Композиция, теорема Нива, замкнутость КС-языков&lt;br /&gt;
| &#039;&#039;&#039;Контрольная 2&#039;&#039;&#039; (весь семинар)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Контрольная работа занимает семинар целиком, поэтому на неделях 6 и 15 семинарской темы нет. Отсюда общий сдвиг: начиная с седьмой недели семинар отрабатывает материал предыдущей лекции, и для этого курса так даже лучше, потому что между доказательством и задачами появляется пауза.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Контрольная 1&#039;&#039;&#039; закрывает автоматный блок: регулярные выражения, построение и минимизацию автомата, доказательство неавтоматности.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Контрольная 2&#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;
* &#039;&#039;&#039;Лемма Огдена&#039;&#039;&#039; и доказательство существенной неоднозначности языков (семинар 9).&lt;br /&gt;
* &#039;&#039;&#039;Теорема Париха&#039;&#039;&#039;, полулинейные множества и следствие про однобуквенный алфавит (дополнительный семинар).&lt;br /&gt;
* &#039;&#039;&#039;Теорема Хомского и Шютценберже&#039;&#039;&#039; в слабой и сильной формах через язык Дика (семинары 12 и 13).&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;
&#039;&#039;&#039;Экзамен блокирующий.&#039;&#039;&#039; Семестровые баллы не компенсируют его провал, каким бы высоким ни был их запас. Смысл такого правила простой: курс проверяет умение доказывать, а доказательство защищается в разговоре, а не накапливается баллами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Баллы за семестр ===&lt;br /&gt;
&lt;br /&gt;
Максимум за семестр составляет 50 баллов, и эти 50 баллов и есть первая половина итоговой оценки.&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;
| Контрольная работа 1&lt;br /&gt;
| 10&lt;br /&gt;
| Неделя 6, весь семинар&lt;br /&gt;
|-&lt;br /&gt;
| Контрольная работа 2&lt;br /&gt;
| 10&lt;br /&gt;
| Неделя 15, весь семинар&lt;br /&gt;
|-&lt;br /&gt;
| Сдача домашних заданий&lt;br /&gt;
| 10&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;
Оставшиеся 25 баллов зависят от выбранного потока.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Теоретический поток&#039;&#039;&#039; сдаёт коллоквиум на 10 баллов и делает доклад на 10 баллов. В этом году коллоквиум проводится только здесь.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Практический поток&#039;&#039;&#039; делает практикум на 10 баллов, реализуя изученные в курсе алгоритмы, и защищает его устно ещё на 10 баллов. Устная защита практикума заменяет коллоквиум: разговор с преподавателем происходит в обоих потоках, просто в одном он идёт про доказательство сложного факта, а в другом про собственный код.&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;
* М. Р. Пентус. &#039;&#039;Математическая теория формальных языков&#039;&#039;.&lt;br /&gt;
* А. Ахо, Д. Ульман. &#039;&#039;Теория синтаксического анализа, перевода и компиляции&#039;&#039;, том 1. Основной источник для блока про LR-разбор, нумерация теорем в лекциях 11–13 идёт по этой книге.&lt;br /&gt;
* А. Ахо, Р. Сети, Д. Ульман. &#039;&#039;Компиляторы: принципы, технологии и инструменты (Dragon Book)&#039;&#039;.&lt;br /&gt;
* В. Пырэу, Н. Ефанов. &#039;&#039;Формальные языки (черновик)&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5445</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5445"/>
		<updated>2026-10-29T14:17:05Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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://docs.google.com/spreadsheets/d/1RnkI99hoPM61eVqnjLb-zGLQQW9eOwBrkwcrwcAdr7Y/edit?usp=sharing таблица] с оценками&lt;br /&gt;
&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;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5444</id>
		<title>Алгоритмы и структуры данных III. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5444"/>
		<updated>2026-10-29T14:03:46Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{delete|Нет такого курса}}&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%92%D0%A2._%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2_%D0%B8_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9._2026&amp;diff=5443</id>
		<title>ИВТ. Математические основания алгоритмов и сложность вычислений. 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%98%D0%92%D0%A2._%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2_%D0%B8_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9._2026&amp;diff=5443"/>
		<updated>2026-10-29T13:59:28Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Материалы курса */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
== Команда курса ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Руководитель курса / лектор:&#039;&#039;&#039; Троян-Головян Владислав&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;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; экзамен&lt;br /&gt;
&lt;br /&gt;
* Практикум по математическим основаниям алгоритмов&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Форма контроля:&#039;&#039;&#039; Дифференцированный зачет&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;
| 1&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;
| 4&lt;br /&gt;
| O-нотация и мастер-теорема&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Индукция и комбинаторика&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Теория вероятностей I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Теория вероятностей II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Вещественная арифметика&lt;br /&gt;
| Контрольная работа&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Теория чисел I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Теория чисел II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Графы I&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Графы II&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Вероятностные алгоритмы&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| P/NP: основы&lt;br /&gt;
| Контрольная работа&lt;br /&gt;
|-&lt;br /&gt;
| 15&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;
По каждой теме выдаётся домашнее задание, оцениваемое от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;10&#039;&#039;&#039; баллов.&lt;br /&gt;
&lt;br /&gt;
* Срок выполнения: &#039;&#039;&#039;2 недели&#039;&#039;&#039;&lt;br /&gt;
* Формат выполнения: &#039;&#039;&#039;TeX&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Контрольные работы ===&lt;br /&gt;
&lt;br /&gt;
В течение семестра проводятся две контрольные работы:&lt;br /&gt;
&lt;br /&gt;
* после лекции 8;&lt;br /&gt;
* после лекции 14.&lt;br /&gt;
&lt;br /&gt;
Каждая контрольная работа оценивается от &#039;&#039;&#039;0&#039;&#039;&#039; до &#039;&#039;&#039;10&#039;&#039;&#039; баллов.&lt;br /&gt;
&lt;br /&gt;
=== Допуск к зачёту ===&lt;br /&gt;
&lt;br /&gt;
Если:&lt;br /&gt;
&lt;br /&gt;
* средний балл за контрольные работы меньше &#039;&#039;&#039;3&#039;&#039;&#039;, и/или&lt;br /&gt;
* средний балл за домашние задания меньше &#039;&#039;&#039;3&#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;
По итогам семестра выставляется семинарский балл в диапазоне от &#039;&#039;&#039;−1&#039;&#039;&#039; до &#039;&#039;&#039;+1&#039;&#039;&#039;, который добавляется к итоговой оценке.&lt;br /&gt;
&lt;br /&gt;
=== Итоговая оценка за зачёт===&lt;br /&gt;
&lt;br /&gt;
0.5*AVG(ДЗ)+0.5*AVG(КР) + Балл от семинариста. &lt;br /&gt;
&lt;br /&gt;
Если итоговая оценка равна &#039;&#039;&#039;11&#039;&#039;&#039;, студент получает бонус к экзамену.&lt;br /&gt;
&lt;br /&gt;
=== Штрафы ===&lt;br /&gt;
&lt;br /&gt;
* Просрочка сдачи до 24 часов — штраф &#039;&#039;&#039;25%&#039;&#039;&#039;.&lt;br /&gt;
* Просрочка до 3 дней — штраф &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
* Просрочка более 3 дней — &#039;&#039;&#039;0 баллов&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;Исключение:&#039;&#039;&#039; официальный допуск или медицинская справка.&lt;br /&gt;
* За списывание оба участника получают оценку &#039;&#039;&#039;−10 баллов&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Политика списывания ==&lt;br /&gt;
&#039;&#039;&#039;Политика списывания:&#039;&#039;&#039; при подозрении на списывание семинарист/ассистент проводит устную беседу, если факт списывания подтверждается, то зануляется весь контест целиком. При повторном списывании ставится итоговая оценка неуд. 2.&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
&lt;br /&gt;
Презентации и дополнительные материалы будут публиковаться по ходу занятий  в чате курса.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5442</id>
		<title>Алгоритмы и структуры данных III. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5442"/>
		<updated>2026-10-29T13:57:49Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: Полностью удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5441</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5441"/>
		<updated>2026-10-29T13:56:26Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: Удалено перенаправление на Алгоритмы и структуры данных III. Иностранный поток 2026&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Информация о курсе с осени 2025 г. Курс будет меняться.&lt;br /&gt;
&lt;br /&gt;
== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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://docs.google.com/spreadsheets/d/1RnkI99hoPM61eVqnjLb-zGLQQW9eOwBrkwcrwcAdr7Y/edit?usp=sharing таблица] с оценками&lt;br /&gt;
&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;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5440</id>
		<title>Алгоритмы и структуры данных III. Иностранный поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%98%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5440"/>
		<updated>2026-10-29T13:29:06Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Информация о курсе с осени 2025 г. Курс будет меняться.&lt;br /&gt;
&lt;br /&gt;
== О курсе ==&lt;br /&gt;
Курс посвящён фундаментальным алгоритмам и структурам данных, используемым в современной разработке, спортивном программировании и backend-системах. Студенты изучат методы анализа сложности алгоритмов, классические структуры данных, сортировки, деревья, хеширование, динамическое программирование и основы вычислительной геометрии. Основной акцент делается на понимании асимптотики, проектировании эффективных решений и практическом применении алгоритмов для обработки данных и оптимизации вычислений. &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;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Неделя&lt;br /&gt;
! Лекция / Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Анализ алгоритмов и асимптотика&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Бинарный поиск и методы поиска ответа&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Линейные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Амортизационный анализ&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Префиксные суммы и задачи диапазонов&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Сортировки II: быстрые алгоритмы&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Кучи и приоритетные очереди&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Деревья поиска I&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Структуры данных для запросов на отрезках&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Продвинутые структуры данных&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Хеширование и вероятностные структуры&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Динамическое программирование&lt;br /&gt;
|-&lt;br /&gt;
| 15&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://docs.google.com/spreadsheets/d/1RnkI99hoPM61eVqnjLb-zGLQQW9eOwBrkwcrwcAdr7Y/edit?usp=sharing таблица] с оценками&lt;br /&gt;
&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;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. *В случае, если вы претендуете на отл(10), вам нужно сообщить об этом экзаменатору. После консультации с лектором он выдаст задачу продвинутого уровня сложности. Подготовка и ответ этого этапа не должны превышать полутора часов.&lt;br /&gt;
*В случае, если на какой-то из стадий экзамена истекло выделенное время, экзаменатор имеет право прервать экзамен и выставить оценку на основе данных вами ответов.&lt;br /&gt;
Если вам необходимо отлучиться в ходе экзамена, это можно сделать только между стадиями или между задачами из третьего этапа.&lt;br /&gt;
*В случае несогласия с оценкой вы имеете право отапеллировать ее у лектора до выхода из аудитории.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5439</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5439"/>
		<updated>2026-10-29T13:25:05Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP&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||Алгоритмы над многочленами и линейные рекурренты&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5438</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5438"/>
		<updated>2026-10-29T13:24:12Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке|&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы|&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик|&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP|&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||Алгоритмы над многочленами и линейные рекурренты|&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями|&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы|&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка|&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках|&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей|&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне|&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5437</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5437"/>
		<updated>2026-10-29T13:23:53Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы|&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик|&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP|&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||Алгоритмы над многочленами и линейные рекурренты|&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями|&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы|&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка|&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках|&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей|&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне|&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5436</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5436"/>
		<updated>2026-10-29T13:23:32Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5435</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5435"/>
		<updated>2026-10-29T13:23:17Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке|&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5434</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5434"/>
		<updated>2026-10-29T13:22:51Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Материалы курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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://drive.google.com/file/d/1EG31vtO4NSrRQgQgXwoHDv0YcSRM9R9m/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5433</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5433"/>
		<updated>2026-10-29T13:20:01Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Правила курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5432</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5432"/>
		<updated>2026-10-29T13:19:48Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Критерии оценивания и формы контроля успеваемости */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5431</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5431"/>
		<updated>2026-10-29T13:10:40Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Команда курса */&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;
&#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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5430</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5430"/>
		<updated>2026-10-29T13:07:36Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&#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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&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;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5429</id>
		<title>Алгоритмы и структуры данных III. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_III._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5429"/>
		<updated>2026-10-29T13:07:05Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Программа курса */&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;
&#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;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; Дифференцированный зачет и экзамен&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||Хеширование и поиск образца в строке||&lt;br /&gt;
|-&lt;br /&gt;
|2||Префикс-функция, Z-функция и палиндромы||&lt;br /&gt;
|-&lt;br /&gt;
|3||Боры и алгоритм Ахо — Корасик||&lt;br /&gt;
|-&lt;br /&gt;
|4||Суффиксный массив и массив LCP||&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||Алгоритмы над многочленами и линейные рекурренты||&lt;br /&gt;
|-&lt;br /&gt;
|10||Теория чисел и алгоритмы над конечными полями||&lt;br /&gt;
|-&lt;br /&gt;
|11||Вычислительная геометрия: базовые примитивы||&lt;br /&gt;
|-&lt;br /&gt;
|12||Триангуляция многоугольников и выпуклая оболочка||&lt;br /&gt;
|-&lt;br /&gt;
|13|| Алгоритмы на выпуклых многоугольниках||&lt;br /&gt;
|-&lt;br /&gt;
|14||Принадлежность точки многоугольнику и пересечение полуплоскостей||&lt;br /&gt;
|-&lt;br /&gt;
|15||Диаграммы Вороного и триангуляция Делоне||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5428</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5428"/>
		<updated>2026-10-29T13:01:48Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026 чат] курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1wlVfS7ck6oFHgoY2_hH4r5QWvRwyGVvmYy98FBBAFOk/edit?gid=0#gid=0 таблица] с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5427</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5427"/>
		<updated>2026-10-29T13:01:23Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Прогресс студентов */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026 чат] курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1wlVfS7ck6oFHgoY2_hH4r5QWvRwyGVvmYy98FBBAFOk/edit?gid=0#gid=0 таблица]&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5426</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5426"/>
		<updated>2026-10-29T13:00:15Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026 чат] курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5425</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5425"/>
		<updated>2026-10-29T12:59:49Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026] чат курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5424</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5424"/>
		<updated>2026-10-29T12:59:21Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026_чат] курса&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5423</id>
		<title>Алгоритмы и структуры данных I. Основной поток 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%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_I._%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA_2026&amp;diff=5423"/>
		<updated>2026-10-29T12:58:46Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&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;
&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;
&#039;&#039;&#039;Лектор:&#039;&#039;&#039; Степанов Илья Данилович&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Семинаристы:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;br&amp;gt;Спицын Николай Антонович&lt;br /&gt;
&amp;lt;br&amp;gt;Смышляев Федор Витальевич&lt;br /&gt;
&amp;lt;br&amp;gt;Белков Иван Иванович&lt;br /&gt;
&amp;lt;br&amp;gt;Подзорова Полина Владимировна&lt;br /&gt;
&amp;lt;br&amp;gt;Халтурин Евгений Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Чернецкий Аркадий Михайлович&lt;br /&gt;
&amp;lt;br&amp;gt;Сбродов Егор Алексеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Вашкевич Егор Сергеевич&lt;br /&gt;
&amp;lt;br&amp;gt;Чубенко Полина Николаевна&lt;br /&gt;
&amp;lt;br&amp;gt;Савичев Дмитрий Александрович&lt;br /&gt;
&amp;lt;br&amp;gt;Нагибин Всеволод Владимирович&lt;br /&gt;
&amp;lt;br&amp;gt;Климанова Ирина Евгеньевна&lt;br /&gt;
&amp;lt;br&amp;gt;Кулешов Игорь Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Цой Максим Вячеславович&lt;br /&gt;
&amp;lt;br&amp;gt;Клячин Артемий Владиславович&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Формы контроля:&#039;&#039;&#039; экзамен&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||Асимптоматика. Бинарный поиск.||Бинарный поиск, два указателя&lt;br /&gt;
|-&lt;br /&gt;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|-&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|-&lt;br /&gt;
|4||Кучи. HeapSort.||&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||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|-&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|-&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|-&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|-&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|-&lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
 [https://t.me/ads_general2026_чат курса]&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
За курс предусмотрены &#039;&#039;&#039;две&#039;&#039;&#039; независимые оценки: за &#039;&#039;&#039;зачёт&#039;&#039;&#039; и за &#039;&#039;&#039;экзамен&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Оценка за семестр считается по формуле в общей табличке.&lt;br /&gt;
Оценка за зачёт ставится за работу в семестре: за сдачу теоретических и практических домашних задач, а также за активность на семинарах и помощь в развитии курса (исправление опечаток в условиях, подготовка более сильных тестов к задачам, разработка собственных задач и пр.). &lt;br /&gt;
&lt;br /&gt;
Список задач будет окончательно известен только ближе к концу семестра, поэтому заранее невозможно спрогнозировать, какие будут пороги на каждую оценку.&lt;br /&gt;
Чтобы заработать минимальную положительную оценку (уд. 3), нужно набрать примерно 50% баллов от максимума. &lt;br /&gt;
Чтобы заработать наивысшую оценку (отл. 10), нужно приблизиться к идеальному студенту, решившему все задачи. Решить всё возможно: в семестре будет много бонусных задач, которые идут в зачёт&lt;br /&gt;
Ожидаемый максимальный балл ~150. &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;
В течение семестра планируются 5–6 домашних заданий.&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;В каждой теме планируется большой контест и небольшое теоретическое задание.&#039;&#039;&#039;&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;
*демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
2. Практические задания&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;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&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;
&#039;&#039;&#039;Задачи без код-ревью&#039;&#039;&#039;&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;
Для части задач из контестов предусмотрена устная защита.&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;Бонусы&#039;&#039;&#039;&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;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
== Правила курса ==&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
== Материалы курса ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&lt;br /&gt;
&lt;br /&gt;
Примерная [https://drive.google.com/file/d/1ZU6efLnjNXPEA5iwgfmMoBwaTvZWiICn/view?usp=sharing программа] экзамена&lt;br /&gt;
&lt;br /&gt;
Литература:&lt;br /&gt;
# Абрамов С. А. Лекции о сложности алгоритмов. МЦНМО, 2020.&lt;br /&gt;
# Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. «Мир», 1980.&lt;br /&gt;
# Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. «Мир», 1979.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 1. «ИД Вильямс», 2018.&lt;br /&gt;
# Кнут Д. Э. Искусство программирования, Т. 3. «ИД Вильямс», 2018.&lt;br /&gt;
# Карацуба А. А., Офман Ю. П. Умножение многозначных чисел на автоматах // Доклады АН СССР, 1962, 145(2).&lt;br /&gt;
# Strassen V. Gaussian elimination is not optimal // Numerische Mathematik, 1969, 13(4).&lt;br /&gt;
# Кормен Т. и др. Алгоритмы. Построение и анализ. «ИД Вильямс», 2011.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A0%D0%BE%D0%B1%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B2_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B5_2026&amp;diff=5299</id>
		<title>Робастные методы в математической статистике 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A0%D0%BE%D0%B1%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B2_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B5_2026&amp;diff=5299"/>
		<updated>2026-09-07T09:31:42Z</updated>

		<summary type="html">&lt;p&gt;Spirina.es: /* Коммуникация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== О курсе ==&lt;br /&gt;
&#039;&#039;&#039;КУРС РАСЧИТАН ДЛЯ СТУДЕНТОВ 4го КУРСА&#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;
* научить студентов методике постановки конкретных задач анализа статистических данных в зависимости от природы формирования данных и целей их обработки, выбора адекватных статистических методов решения задачи и правильной интерпретации получаемых статистических выводов.&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;
&#039;&#039;&#039;Руководитель / лектор курса:&#039;&#039;&#039; д.ф.-м.н., профессор Цитович Иван Иванович&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;
| 1 || Введение ||&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-8 || Предмет математической статистики ||&lt;br /&gt;
|-&lt;br /&gt;
| 9-10 || Последовательная проверка непараметрических гипотез ||&lt;br /&gt;
|-&lt;br /&gt;
| 11-12 || Субоптимальная проверка непараметрических гипотез ||&lt;br /&gt;
|-&lt;br /&gt;
| 13-14 || Робастное оценивание параметров распределения ||&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Итоги и выводы ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Особенности курса ==&lt;br /&gt;
&lt;br /&gt;
Большая часть теоретического материала будет предложена в виде видеофайлов лекций по данному курсу, которые доступны в телеграмм канале RSMS25.&lt;br /&gt;
&lt;br /&gt;
На самих лекциях будет только анонс материала следующего занятия и разбор тех мест, по поводу которых у студентов есть вопросы.&lt;br /&gt;
&lt;br /&gt;
Отсутствие вопросов означает усвоение материала студентом.&lt;br /&gt;
&lt;br /&gt;
Вопросы можно задавать в письменном виде (в том числе обезличено) через систему коммуникаций студент–преподаватель Piazza.&lt;br /&gt;
&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;
RSMS26&lt;br /&gt;
&lt;br /&gt;
https://t.me/+_q3FmrVowPoxY2Iy&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ссылка на чат&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://t.me/+HSwiiCpvORRkMzli&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Система коммуникаций студент–преподаватель:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Piazza&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;
&amp;lt;math&amp;gt;О = ДЗ1 + ДЗ2 + КР + К1 + К2 + К3 + К4 + К5 + А + Б&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&lt;br /&gt;
* &#039;&#039;&#039;ДЗ1, ДЗ2&#039;&#039;&#039; — два индивидуальных домашних задания;&lt;br /&gt;
* &#039;&#039;&#039;КР&#039;&#039;&#039; — письменная аудиторная контрольная работа;&lt;br /&gt;
* &#039;&#039;&#039;К1–К5&#039;&#039;&#039; — аудиторные работы по теории;&lt;br /&gt;
* &#039;&#039;&#039;А&#039;&#039;&#039; — активность на занятиях (коллекционирование «+» и «−»);&lt;br /&gt;
* &#039;&#039;&#039;Б&#039;&#039;&#039; — бонус (за тяготы и лишения).&lt;br /&gt;
&lt;br /&gt;
Письменная аудиторная контрольная работа (КР) и два индивидуальных домашних задания (ДЗ1 и ДЗ2) оцениваются по 10 баллов.&lt;br /&gt;
Аудиторные работы по теории — до 2 баллов.&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;
В рамках курса предусмотрено два индивидуальных домашних задания.&lt;br /&gt;
&lt;br /&gt;
Темы подбираются индивидуально для каждого студента.&lt;br /&gt;
&lt;br /&gt;
Несвоевременная сдача домашней работы наказывается снятием 2 баллов с результата.&lt;br /&gt;
&lt;br /&gt;
Домашнюю работу можно исправить после проверки. В этом случае дополнительно набранные баллы делятся на 2.&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;
По умолчанию все являются участниками бонусной программы.&lt;br /&gt;
&lt;br /&gt;
Из программы можно выйти полностью или частично в любой момент, прислав соответствующее письмо. Вернуться обратно в полную бонусную программу нельзя.&lt;br /&gt;
&lt;br /&gt;
Участники полной бонусной программы имеют право написать эссе, а также получают дополнительные баллы (Б), величина которых определяется в конце семестра.&lt;br /&gt;
&lt;br /&gt;
Для участников полной бонусной программы итоговое число баллов делится на 4 и получается значение бонуса.&lt;br /&gt;
&lt;br /&gt;
Для участников частичной бонусной программы итоговое число баллов делится на 2 или больше в зависимости от степени участия в бонусной программе и получается значение бонуса.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Итоговый контроль&#039;&#039;&#039; — экзамен.&lt;br /&gt;
&lt;br /&gt;
За ответ на экзамене можно получить до 10 баллов.&lt;br /&gt;
&lt;br /&gt;
Если величина бонуса с точностью до округления устраивает студента, то её можно использовать как итоговую оценку, прислав соответствующее письмо.&lt;br /&gt;
&lt;br /&gt;
Если студент участвовал в бонусной программе частично, то без экзамена можно получить не более 7 баллов или написать контрольную работу.&lt;br /&gt;
&lt;br /&gt;
Если величина бонуса с точностью до округления не устраивает студента (или он хочет сдавать экзамен), то студент сдаёт экзамен.&lt;br /&gt;
&lt;br /&gt;
В этом случае к результату ответа на экзамене добавляется 50% от значения бонуса, и полученная величина округляется до целого числа. Это и есть итоговая оценка по курсу.&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;
Материалы доступны в телеграмм канале RSMS25.&lt;br /&gt;
&lt;br /&gt;
Дополнительная коммуникация по вопросам курса осуществляется через систему Piazza.&lt;/div&gt;</summary>
		<author><name>Spirina.es</name></author>
	</entry>
</feed>