Введение в олимпиадное программирование
О чём курс
Елена Крылова и Лев Стояновский учат школьников разбирать условия олимпиадных задач, выбирать посильные задания и организовывать работу на соревновании.
Для кого
Курс Высшей инженерной школы СПбПУ адресован ученикам 9–10 классов, которые уже владеют структурным и процедурным программированием. Он готовит к индивидуальным и командным олимпиадам. Авторы объясняют виды соревнований, их правила и способы оценки решений, а также помогают выбрать направление дальнейшей подготовки.
Что вы разберёте
Работа начинается с чтения объёмного условия задачи и предварительной оценки сложности решения. Затем вы примените математические знания в программировании, научитесь оценивать время работы алгоритма и расход памяти, организовывать данные и пользоваться стандартными алгоритмами. Авторы также разбирают тестирование программ, выбор заданий из большого набора и распределение ролей в команде.
Среди тем курса — числа и строки, массивы, перебор вариантов, рекурсия, жадные алгоритмы, графы и деревья. Практические задания можно выполнять на C++, Visual Basic, Pascal, Python, C# или Java. Теоретический материал авторы излагают преимущественно на алгоритмическом языке.
Как проходят занятия
Практики предусмотрено больше, чем теории; индивидуальная работа чередуется с командной. В дистанционном курсе размещают теоретические материалы, обсуждают новости олимпиад и отрабатывают решение задач. На занятиях используют систему автопроверки, подобную системам на соревнованиях по спортивному программированию.
В курс входят индивидуальные и командные тренинги, разбор заданий реальной олимпиады и соревнования для проверки подготовки. Вы познакомитесь с работой системы автопроверки и попробуете оценивать задачи до начала программирования. Авторы также заявляют организационную поддержку при участии в олимпиадах.
Программа обучения
Занятие 1 - Введение Особенности спортивного программирования. Олимпиады по программированию: виды, правила, способы оценки ответов. Примеры задач. Способы организации ввода и вывода, применяемые на олимпиадах. Оценка начального уровня учащихся – индивидуальная мини-олимпиада. Занятие 2 - Искусство выбора решаемой задачи Примеры олимпиадных пакетов задач. Техника работы с условием задачи. Тренинги (индивидуальные и командный) по оценке сложности задач. Занятие 3 - Математика в программировании Примеры задач, где решение находится математически проще, чем программно. Краткая сводка полезных программисту сведений из математики. Решение задач. Командный тренинг. Занятие 4 - Основные типы данных Числовые типы данных, их возможности и особенности. Символы и строки. Работа со «слишком большими числами». Стандартные действия по анализу свойств чисел. Командный тренинг – решение задач на технику работы с числами. Занятие 5 - Использование больших объёмов данных Массивы. Организация динамических массивов. Полезные алгоритмы, связанные с массивами. Проблема ограничений по памяти при олимпиадном программировании. Обзор специализированных типов данных (стеки, списки) и инструментов для их реализации. Индивидуальный тренинг – технически сложные задачи. Занятие 6 - Перебор вариантов как метод поиска решения Способы организации перебора. Простой перебор с параметром, с заданным числом параметров. Индуктивный перебор: генерация варианта на основе предыдущего. Индивидуальный тренинг. Занятие 7 - Перебор вариантов как метод поиска решения (продолжение) Рекурсия как способ организации перебора. Альтернативы рекурсии. Эффективность по времени, примеры. Командный тренинг с выбором задач из большого набора. Занятие 8 - Тестирование программы. Организация работы команды Тестовые данные в олимпиадном программировании. Самотестирование программы. Типы тестовых данных в зависимости от способа оценки результатов. Варианты распределения ролей в команде. Командный тренинг - тактический разбор пакета заданий реальной олимпиады. Занятие 9 - Оптимизация поиска решения Способы ускорения перебора вариантов. «Жадные алгоритмы», условия их применимости. Командный тренинг с выбором задач из большого набора. Занятие 10 - Графы и деревья Примеры задач, моделируемых посредством графов. Способы представления графов в программе. Обзор некоторых алгоритмов, связанных с графами. Решение задач Занятие 11 - Командная олимпиада по программированию Занятие 12 - Разбор заданий командной олимпиады Индивидуальная олимпиада по программированию – экзамен
Теги курса
Отзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.