<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://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="http://wiki.atp-fivt.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spirina.es"/>
		<link rel="alternate" type="text/html" href="http://wiki.atp-fivt.org/index.php/%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-05-13T17:55:23Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://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=4690</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4690"/>
				<updated>2026-05-13T09:48: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;
&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;
{|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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4689</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4689"/>
				<updated>2026-05-13T09:47:13Z</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;
От желающих сдавать курс факультативно (по выбору) ожидается знакомство с одним из языков программирования в рамках любого университетского курса.&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4688</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4688"/>
				<updated>2026-05-13T09:35:40Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
'''Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.'''&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4687</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4687"/>
				<updated>2026-05-13T09:35:19Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
==='''Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.'''===&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4686</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4686"/>
				<updated>2026-05-13T09:34:46Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. &lt;br /&gt;
&lt;br /&gt;
='''Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.'''=&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4685</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4685"/>
				<updated>2026-05-13T09:33:49Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&lt;br /&gt;
&lt;br /&gt;
3. Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4684</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4684"/>
				<updated>2026-05-13T09:33:38Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&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;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>http://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=4683</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4683"/>
				<updated>2026-05-13T09:33:27Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1. Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2. Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&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;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>http://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=4682</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4682"/>
				<updated>2026-05-13T09:33: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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1.Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2.Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&lt;br /&gt;
&lt;br /&gt;
3.Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
&lt;br /&gt;
4. &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4681</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4681"/>
				<updated>2026-05-13T09:32:37Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1.Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2.Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&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;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>http://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=4680</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4680"/>
				<updated>2026-05-13T09:32:26Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
1.Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
&lt;br /&gt;
2.Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&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;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>http://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=4679</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4679"/>
				<updated>2026-05-13T09:31:42Z</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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
# Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
# Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&lt;br /&gt;
# Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
# &lt;br /&gt;
*В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4678</id>
		<title>Алгоритмы и структуры данных I. Иностранный поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4678"/>
				<updated>2026-05-13T09:31:11Z</updated>
		
		<summary type="html">&lt;p&gt;Spirina.es: Новая страница: «Информация о курсе с осени 2025 г. Курс будет меняться.  == О курсе == Курс посвящён фундамент…»&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;
#Линейные структуры данных&lt;br /&gt;
#Амортизационный анализ&lt;br /&gt;
#Префиксные суммы и задачи диапазонов&lt;br /&gt;
#Сортировки I: фундаментальные алгоритмы&lt;br /&gt;
#Сортировки II: быстрые алгоритмы&lt;br /&gt;
#Кучи и приоритетные очереди&lt;br /&gt;
#Деревья поиска I&lt;br /&gt;
#Деревья поиска II: самобалансирующиеся деревья&lt;br /&gt;
#Структуры данных для запросов на отрезках&lt;br /&gt;
#Продвинутые структуры данных&lt;br /&gt;
#Хеширование и вероятностные структуры&lt;br /&gt;
#Динамическое программирование&lt;br /&gt;
#Матричные методы и вычислительная геометрия&lt;br /&gt;
&lt;br /&gt;
== Коммуникация ==&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания и формы контроля успеваемости ==&lt;br /&gt;
&lt;br /&gt;
''' Правила проведения экзамена'''&lt;br /&gt;
&lt;br /&gt;
Экзамен будет проходить в четыре этапа: три основных и один бонусный.&lt;br /&gt;
&lt;br /&gt;
# Выдается билет, содержащий четыре вопроса из программы. Ответ на каждый вопрос оценивается из 1.5 баллов. При оценке ответа на какой-либо вопрос ниже 0.5 ставится автоматически пересдача. На подготовку ответа дается 1 час. За ответ на эту часть программы дается до шести баллов. Продолжительность ответа в ходе данной части экзамена не должна превышать 45 минут. Экзаменатор имеет право попросить сформулировать смежные по теме определения и формулировки утверждений и теорем, не указанные явно в вопросе. При использовании утверждения или теоремы из данного курса экзаменатор имеет право поинтересоваться ее доказательством.&lt;br /&gt;
# Далее идет блиц-опрос по программе, за который дается не более одного балла. В его ходе экзаменатор имеет право спросить любое определение и формулировку любой теоремы из курса. Также он может поинтересоваться постановкой задачи, которую решает некоторый алгоритм. Отвечать необходимо практически сразу, без долгих размышлений. Если на текущий момент у студента меньше 5.5 баллов, то экзамен заканчивается.&lt;br /&gt;
# Заключительная часть экзамена состоит в том, что вам будут предложены для решения две задачи. Сначала идет задача среднего уровня сложности. Ее решение принесет вам два балла и возможность получить задачу на 10, если за первые два этапа было не менее 6.5 баллов. Если же задача не решена, то выдается задача «попроще», за решение которой дается один балл. Время подготовки ответа на задачу попроще составляет 25 минут, на задачу среднего уровня — 40 минут.&lt;br /&gt;
# *В случае, если вы претендуете на отл(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;/div&gt;</summary>
		<author><name>Spirina.es</name></author>	</entry>

	<entry>
		<id>http://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=4677</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4677"/>
				<updated>2026-05-13T09:15:54Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4676</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4676"/>
				<updated>2026-05-13T09:15:18Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4675</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4675"/>
				<updated>2026-05-13T09:14:58Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4674</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4674"/>
				<updated>2026-05-13T09:14:37Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
'''Задачи с код-ревью'''&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
&lt;br /&gt;
'''Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4673</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4673"/>
				<updated>2026-05-13T09:13:56Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
'''*Задачи без код-ревью'''&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4672</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4672"/>
				<updated>2026-05-13T09:12:58Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
*число итераций ревью не ограничено;&lt;br /&gt;
*при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4671</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4671"/>
				<updated>2026-05-13T09:12: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4670</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4670"/>
				<updated>2026-05-13T09:11: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
Чтобы задача считалась решённой:&lt;br /&gt;
*Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
*Ассистент проводит код-ревью.&lt;br /&gt;
*По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
*После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
'''Дополнительные правила:'''&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4669</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4669"/>
				<updated>2026-05-13T09:10:54Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&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;
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;
'''Дополнительные правила:'''&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
*решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
*такие задачи должны пройти все тесты в системе.&lt;br /&gt;
*пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
*однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Устная защита решений'''&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
*подтвердить самостоятельность решения,&lt;br /&gt;
*проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
*теоретическую подготовку,&lt;br /&gt;
*практические навыки программирования,&lt;br /&gt;
*глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4668</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4668"/>
				<updated>2026-05-13T09:07:56Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
# Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
## Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4667</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4667"/>
				<updated>2026-05-13T09:07: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
# Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
&lt;br /&gt;
# Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4666</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4666"/>
				<updated>2026-05-13T09: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
# Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
# Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4665</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4665"/>
				<updated>2026-05-13T08:52: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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
# Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
# Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4664</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4664"/>
				<updated>2026-05-13T08:52: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;
Курс алгоритмов и структур данных — одна из ключевых дисциплин в области теоретической информатики на ФПМИ. Он посвящён изучению методов эффективного решения вычислительных задач и принципов организации данных, лежащих в основе современных программных систем.&lt;br /&gt;
В рамках курса рассматриваются как фундаментальные теоретические вопросы, так и практические аспекты применения алгоритмических подходов в реальных задачах, возникающих в индустрии.&lt;br /&gt;
В первом (осеннем) семестре основное внимание  будет сосредоточено на разнообразных структурах данных, которые нужны будут в роли «чёрных ящиков» для более продвинутых алгоритмов. &lt;br /&gt;
Для формирования необходимой базы в начале курса разбираются:&lt;br /&gt;
классические линейные алгоритмы,&lt;br /&gt;
принцип бинарного поиска,&lt;br /&gt;
основные алгоритмы сортировки.&lt;br /&gt;
Далее курс переходит к систематическому изучению структур данных, включая:&lt;br /&gt;
линейные структуры,&lt;br /&gt;
кучи (приоритетные очереди),&lt;br /&gt;
деревья отрезков,&lt;br /&gt;
деревья поиска,&lt;br /&gt;
хеш-таблицы,&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;
{|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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
#1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
#2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4663</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4663"/>
				<updated>2026-05-13T08:52: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
#1) введение, бинарный поиск; &lt;br /&gt;
#2) сортировки; &lt;br /&gt;
#3) кучи, линейные контейнеры; &lt;br /&gt;
#4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
#5) деревья поиска;&lt;br /&gt;
#6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
#1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
#2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4662</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4662"/>
				<updated>2026-05-13T08:50:57Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
*1) введение, бинарный поиск; &lt;br /&gt;
*2) сортировки; &lt;br /&gt;
*3) кучи, линейные контейнеры; &lt;br /&gt;
*4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
*5) деревья поиска;&lt;br /&gt;
*6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
'''В каждой теме планируется большой контест и небольшое теоретическое задание.'''&lt;br /&gt;
 &lt;br /&gt;
*1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
*2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
*Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
*Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования,&lt;br /&gt;
чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Устная защита решений&lt;br /&gt;
&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4661</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4661"/>
				<updated>2026-05-13T08:43: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;
== Программа курса ==&lt;br /&gt;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&lt;br /&gt;
&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4660</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4660"/>
				<updated>2026-05-13T08:43:16Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
'''Бонусы'''&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;
Лектор: Степанов Илья &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>http://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=4659</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4659"/>
				<updated>2026-05-13T08:33: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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
*Бонусы*&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4658</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4658"/>
				<updated>2026-05-13T08:06:54Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор: Степанов Илья &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>http://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=4657</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4657"/>
				<updated>2026-05-13T08:06:37Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор Степанов Илья &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>http://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=4656</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4656"/>
				<updated>2026-05-13T08:05:31Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор Степанов Илья &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>http://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=4655</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4655"/>
				<updated>2026-05-13T08:04:30Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор Степанов Илья &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>http://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=4654</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4654"/>
				<updated>2026-05-13T08:04:06Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор Степанов Илья &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;
Примерная [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>http://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=4653</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4653"/>
				<updated>2026-05-13T08:03:02Z</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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
Чат курса (Telegram)&lt;br /&gt;
&lt;br /&gt;
== Прогресс студентов ==&lt;br /&gt;
Таблица с оценками, доступная студентам&lt;br /&gt;
&lt;br /&gt;
&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), нужно набрать примерно 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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&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;
Лектор Степанов Илья &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;
Примерная [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>http://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=4649</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4649"/>
				<updated>2026-05-05T14:49: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;
'''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;
деревья поиска,&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
'''3. Коммуникация'''&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
Чат курса (Telegram)&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;
&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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
5) деревья поиска;&lt;br /&gt;
6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
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;
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;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&lt;br /&gt;
Если понимаете, что в какой-то задаче очень слабые тесты (заходят решения, которые не должны), можете подготовить более сильные тесты. Их добавят в систему, а вам дадут бонусные баллы.&lt;br /&gt;
&lt;br /&gt;
Штрафы&lt;br /&gt;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. Правила курса'''&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
'''7. Команда курса'''&lt;br /&gt;
Лектор Степанов Илья &lt;br /&gt;
Семинаристы: &lt;br /&gt;
&lt;br /&gt;
'''8. Материалы курса'''&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&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>http://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=4648</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4648"/>
				<updated>2026-05-05T14:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;Spirina.es: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
принцип бинарного поиска,&lt;br /&gt;
основные алгоритмы сортировки.&lt;br /&gt;
Далее курс переходит к систематическому изучению структур данных, включая:&lt;br /&gt;
линейные структуры,&lt;br /&gt;
кучи (приоритетные очереди),&lt;br /&gt;
деревья отрезков,&lt;br /&gt;
деревья поиска,&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|4||Кучи. HeapSort.||&lt;br /&gt;
|5||Кучи(продолжение). Динамический массив||Кучи, линейные контейнеры.&lt;br /&gt;
|6||Связные списки. Кучи Фибоначчи.||&lt;br /&gt;
|7||Стеки. Очередь.||&lt;br /&gt;
|8||Дерево отрезков.||Дерево отрезков, дерево Фенвика.&lt;br /&gt;
|9||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''3. Коммуникация'''&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
Чат курса (Telegram)&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;
&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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
 5) деревья поиска;&lt;br /&gt;
 6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
 Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
● Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
● Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
 а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
Устная защита решений&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
и глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&lt;br /&gt;
Если понимаете, что в какой-то задаче очень слабые тесты (заходят решения, которые не должны), можете подготовить более сильные тесты. Их добавят в систему, а вам дадут бонусные баллы.&lt;br /&gt;
&lt;br /&gt;
Штрафы&lt;br /&gt;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. Правила курса'''&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
'''7. Команда курса'''&lt;br /&gt;
Лектор Степанов Илья &lt;br /&gt;
Семинаристы: &lt;br /&gt;
&lt;br /&gt;
'''8. Материалы курса'''&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&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>http://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=4647</id>
		<title>Алгоритмы и структуры данных I. Основной поток 2026</title>
		<link rel="alternate" type="text/html" href="http://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=4647"/>
				<updated>2026-05-05T14:41:55Z</updated>
		
		<summary type="html">&lt;p&gt;Spirina.es: Новая страница: «'''Курс алгоритмы и структуры данных.'''  '''1. О курсе''' Курс алгоритмов и структур данных —…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
принцип бинарного поиска,&lt;br /&gt;
основные алгоритмы сортировки.&lt;br /&gt;
Далее курс переходит к систематическому изучению структур данных, включая:&lt;br /&gt;
линейные структуры,&lt;br /&gt;
кучи (приоритетные очереди),&lt;br /&gt;
деревья отрезков,&lt;br /&gt;
деревья поиска,&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;
В семестре 15 лекций и 30 семинаров (практических занятий).&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;
|2||MergeSoft. QuickSort.||&lt;br /&gt;
|3||Derandomized. QuickSort. LSDSort.||Сортировки.&lt;br /&gt;
|4||Кучи. HeapSort.||&lt;br /&gt;
|5||Кучи(продолжение). Динамический массив||Кучи, линейные контейнеры.&lt;br /&gt;
|6||Связные списки. Кучи Фибоначчи.||&lt;br /&gt;
|7||Стеки. Очередь.||&lt;br /&gt;
|8||Дерево отрезков.||Дерево отрезков, дерево Фенвика.&lt;br /&gt;
|9||Динамическое ДО. Персистентные структуры данных&lt;br /&gt;
|10||Деревья поиска:AVL-деревья, Splay-дерево.||Деревья поиска.&lt;br /&gt;
|11||Неявное дерево поиска.||&lt;br /&gt;
|12||Декартово дерево. В-дерево.||&lt;br /&gt;
|13||Красно-чёрное дерево.||&lt;br /&gt;
|14||Хэш-таблицы.||Хеш-таблицы. &lt;br /&gt;
|15||Хэш-таблицы (продолжение).||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Коммуникация'''&lt;br /&gt;
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.&lt;br /&gt;
&lt;br /&gt;
Чат курса (Telegram)&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;
&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;
В течение семестра планируются 5–6 домашних заданий.&lt;br /&gt;
Выдаются примерно каждые три недели сроком на три недели. &lt;br /&gt;
1) введение, бинарный поиск; &lt;br /&gt;
2) сортировки; &lt;br /&gt;
3) кучи, линейные контейнеры; &lt;br /&gt;
4) дерево отрезков, дерево Фенвика;&lt;br /&gt;
 5) деревья поиска;&lt;br /&gt;
 6) хеш-таблицы. &lt;br /&gt;
&lt;br /&gt;
В каждой теме планируется большой контест и небольшое теоретическое задание. &lt;br /&gt;
1. Теоретические задания&lt;br /&gt;
Теоретические домашние задания сдаются устно семинаристу.&lt;br /&gt;
 Формат предполагает:&lt;br /&gt;
объяснение решения,&lt;br /&gt;
ответы на уточняющие вопросы,&lt;br /&gt;
демонстрацию понимания используемых идей и методов.&lt;br /&gt;
2. Практические задания&lt;br /&gt;
Практические задачи делятся на два типа:&lt;br /&gt;
● Задачи с код-ревью&lt;br /&gt;
Чтобы задача считалась решённой:&lt;br /&gt;
Необходимо загрузить код в указанный репозиторий (который укажут семинарист и ассистент).&lt;br /&gt;
Ассистент проводит код-ревью.&lt;br /&gt;
По результатам ревью код может быть отправлен на доработку.&lt;br /&gt;
После успешного прохождения всех итераций ревью задача засчитывается, и за неё выставляется балл.&lt;br /&gt;
Дополнительные правила:&lt;br /&gt;
число итераций ревью не ограничено;&lt;br /&gt;
при этом ассистент может отказать в дальнейшем ревью, если считает, что было сделано чрезмерное количество некачественных попыток.&lt;br /&gt;
● Задачи без код-ревью&lt;br /&gt;
решения таких задач не предполагает обязательного просмотра кода решения со стороны ассистента. &lt;br /&gt;
такие задачи должны пройти все тесты в системе.&lt;br /&gt;
 а также пройти встроенную автоматическую проверку на кодстайл (то есть в самом яндекс-контесте настроены некоторые минимальные требования, чтобы код был не совсем плохой). &lt;br /&gt;
однако семинарист может выборочно запросить устную сдачу.&lt;br /&gt;
Устная защита решений&lt;br /&gt;
Для части задач из контестов предусмотрена устная защита.&lt;br /&gt;
Цель защиты:&lt;br /&gt;
подтвердить самостоятельность решения,&lt;br /&gt;
проверить понимание алгоритма и структуры кода.&lt;br /&gt;
Такая система позволяет оценить:&lt;br /&gt;
теоретическую подготовку,&lt;br /&gt;
практические навыки программирования,&lt;br /&gt;
и глубину понимания алгоритмов.&lt;br /&gt;
&lt;br /&gt;
Бонусы&lt;br /&gt;
Семинарист может ставить небольшие бонусы за активность на семинарах. Уточняйте правила их выставления у семинаристов.&lt;br /&gt;
Если понимаете, что в какой-то задаче очень слабые тесты (заходят решения, которые не должны), можете подготовить более сильные тесты. Их добавят в систему, а вам дадут бонусные баллы.&lt;br /&gt;
&lt;br /&gt;
Штрафы&lt;br /&gt;
Ближе к концу семестра будет проведена проверка на списывание (антиплагиат). Пойманные на списывании получат штраф к баллам за семестр, включая автоматический «неуд». Списыванием может быть рассчитано и независимое использование одного и того же открытого кода. Поэтому пишите полностью свой код, не прибегая к помощи готовых библиотек. Исключение — код, приводимый на лекциях и семинарах.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6. Правила курса'''&lt;br /&gt;
Более подробно и во избежание спорных ситуаций в конце семестра читайте о правилах курса [https://docs.google.com/document/d/1TNoAMWFGZHsEigH9BlM_lGI4jdHxxR66Y3jHGtntQME/edit здесь]&lt;br /&gt;
&lt;br /&gt;
'''7. Команда курса'''&lt;br /&gt;
Лектор Степанов Илья &lt;br /&gt;
Семинаристы: &lt;br /&gt;
&lt;br /&gt;
'''8. Материалы курса'''&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL4_hYwCyhAvbR2onqJWW7JQi8TYEaQN_p лекции] потока 2024 года&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>

	</feed>