Алгоритмы и структуры данных. Подгруппы 102-1, 102-2, 107-2
Содержание
- 1 Общая информация
- 2 Домашние задания
- 3 Занятия
- 3.1 Семинар 0 (12.01). Ханойские башни.
- 3.2 Семинар 1 (14.01 и 15.01). Сортировка слиянием.
- 3.3 Семинар 2 (19.01). Двоичный поиск. O-символика.
- 3.4 Семинар 3 (21.01 и 22.01). O-символика. Разные задачи
- 3.5 Семинар 4 (26.01). Рекуррентные соотношения
- 3.6 Семинар 5 (28.01 и 29.01).
- 3.7 Семинар 6 (02.02)
- 3.8 Семинар 7 (04.02 и 05.02). Динамическое программирование.
Общая информация
Семинары ведет Умнов Алексей
Часы консультаций:
- Понедельник: 15:45 - 16:30
- Среда: 18:15 - 19:00
Место: ауд. 619.
Решения задач с семинаров
Код для задач по программированию можно присылать на адрес alexeyum@gmail.com.
Тему письма оформляйте по такому шаблону (иначе письмо может потеряться):
"АиСД - <Номер семинара>.<номер задачи> - <Подгруппа> <Фамилия> <Имя>".
Пример: "АиСД - 2.1 - 123-1 Умнов Алексей".
Не забывайте писать тесты к задачам (как обсуждалось на семинарах) и указывать версию компилятора/интерпретатора.
Стиль кода
Код должен соответствовать стайлгайду, принятому на курсе Основы_и_методологии_программирования.
Также есть дополнительные правила:
- Запрещено использовать глобальные переменные.
Домашние задания
Правила ревью
Алгоритм сдачи задачи такой:
1. Сдайте задачу в контест.
2. Отправьте исходный код (в точности тот, что был в контесте) на ревью с помощью rb.cs.hse.ru.
В заголовке ревью напишите "Дз<номер>.<буква/номер задачи> <подгруппа> <Фамилия Имя>". Ревьювером укажите "alexeyum".
Не забудьте нажать "Publish", чтобы отправить запрос на ревью.
3. Дождитесь ответа на ревью. Если ответа нет в течение 5 дней, то пишите об этом на alexeyum@gmail.com.
4. Если вы получили "Ship It", значит задача сдана. Если нет, то необходимо сделать все указанные в ревью исправления.
5. Сдайте исправленный код в контест, а потом загрузите его на ревью. Перейдите к шагу 3.
Задание 1
Помимо сдачи задания в контест (см. главную страницу), необходимо также пройти ревью по всем задачам.
Решение можно писать на C++ или на Python. Код должен соответствовать стайлгайду, принятому на курсе Основы_и_методологии_программирования.
За каждую задачу в задании можно получить до 10/6 баллов. Для этого нужно сдать решение в контест и пройти полное ревью. Если ревью пройдено частично, то за задачу будет начислен неполный балл.
Итоговая сумма будет округляться вверх.
Занятия
Семинар 0 (12.01). Ханойские башни.
Разбиралась задача о Ханойских башнях, ее рекурсивное решение, подсчитывалось время работы и доказывалась оптимальность. Также предлагалось запрограммировать этот алгоритм на любом языке.
Семинар 1 (14.01 и 15.01). Сортировка слиянием.
Разбирался алгоритм сортировки слиянием и были предложены задачи.
Семинар 2 (19.01). Двоичный поиск. O-символика.
Разбирались O-обозначения, были предложены задачи.
Семинар 3 (21.01 и 22.01). O-символика. Разные задачи
Разбирался алгоритм быстрой сортировки. Были предложены задачи.
Семинар 4 (26.01). Рекуррентные соотношения
Разбиралась основная теорема о рекуррентных соотношениях и примеры ее применения. Были предложены задачи.
Семинар 5 (28.01 и 29.01).
Разбирались задачи с прошлых семинаров.
Семинар 6 (02.02)
Разбирался алгоритм выбора порядковой статистики и алгоритм быстрого возведения в степень. Также разбирались задачи с прошлых семинаров.
Семинар 7 (04.02 и 05.02). Динамическое программирование.
Разбиралась задача о взвешенных интервалах и были предложены задачи.