+7 (812) 703-02-02 info@hse.spbstu.ru

Введение в олимпиадное программирование

C 9 класса | 12 занятий | Очно или онлайн

Длительность курса: 78 ак. часов (12 занятий по 4 ак. часа + 30 часов домашней работы)

О чём курс

Спортивное программирование – особый вид деятельности, увлекательный и азартный. Олимпиады по программированию бывают индивидуальными и командными, бывают официальными, дающими льготы при поступлении в ВУЗ, и совсем «домашними».

Главное отличие олимпиадного программирования от обычного – необходимость быстро анализировать многословные условия задач, выбирать из обширного набора решаемые, добиваться верного результата любыми средствами.

Что нужно для успеха? Прежде всего, умение читать задачу, увидеть в её описании путь к решению. Затем – опыт программирования, уверенное владение синтаксисом языка и инструментами отладки. Далее – знание стандартных приёмов решения задач, классических алгоритмов. И наконец, воля, внимание, стрессоустойчивость, умение работать и в команде, и самостоятельно.

Цель курса: дать школьникам знания, навыки и опыт, необходимые для участия в олимпиадах по спортивному программированию (как индивидуальных, так и командных), обеспечить организационную поддержку и руководство при участии в олимпиадах, помочь в выборе стратегии дальнейшего самосовершенствования.

Теоретический материал излагается преимущественно на алгоритмическом языке. Языками практических заданий являются С++, Visual Basic, Pascal, Python, C# и Java (учащийся может работать на любом из этих языков). Практики существенно больше, чем теории. Чередуется командная и индивидуальная работа.

Обучение осуществляется с использованием дистанционного курса, посредством которого отрабатываются необходимые навыки. В этом же курсе размещаются теоретические материалы, публикуются и обсуждаются новости, связанные с олимпиадами по программированию. На занятиях используется система автопроверки, аналогичная традиционно применяемым на олимпиадах по спортивному программированию.

Стилистика курса – креативность, соревновательность, сотрудничество.

Спортивное программирование - увлекательная и азартная интеллектуальная игра, а преуспевшие в ней могут добыть неплохие бонусы при поступлении в ВУЗы. Курс знакомит с правилами олимпиад, учит читать условие задачи, оценивать её сложность, планировать тактику, организовывать работу команды. Цель - дать старт дальнейшему саморазвитию ученика, обеспечив его необходимыми начальными знаниями и опытом. Курс для тех, кто уже умеет программировать.

Курс адресован школьникам 9-10 классов, уже владеющих навыками структурного и процедурного программирования.

Для курса есть очные и онлайн-группы.

Чему научим

В результате обучения учащиеся получат следующие знания, умения и навыки.

  • Навыки работы с системами автопроверки, применяемыми на олимпиадах по программированию.
  • Навыки анализа объёмных постановок задач, примерной оценки сложности решения.
  • Умение использовать в программировании математические знания, анализировать свойства чисел.
  • Умение организовывать структурированные данные, размер которых определяется в ходе работы программы.
  • Навыки оценки вычислительной сложности алгоритма, объёма используемой при его реализации памяти.
  • Знания некоторых стандартных алгоритмов, часто применяемых в спортивном программировании.
  • Навыки организации командной работы на олимпиаде.
  • Оперативная информация о доступных олимпиадах по спортивному программированию, их особенностям и правилам.

Занятие 1

Введение

  • Особенности спортивного программирования.
  • Олимпиады по программированию: виды, правила, способы оценки ответов.
  • Примеры задач.
  • Способы организации ввода и вывода, применяемые на олимпиадах.
  • Оценка начального уровня учащихся – индивидуальная мини-олимпиада.

Занятие 2

Искусство выбора решаемой задачи

  • Примеры олимпиадных пакетов задач.
  • Техника работы с условием задачи.
  • Тренинги (индивидуальные и командный) по оценке сложности задач.

Занятие 3

Математика в программировании

  • Примеры задач, где решение находится математически проще, чем программно.
  •  Краткая сводка полезных программисту сведений из математики.
  • Решение задач.
  • Командный тренинг.

Занятие 4

Основные типы данных

  • Числовые типы данных, их возможности и особенности.
  • Символы и строки.
  • Работа со «слишком большими числами».
  • Стандартные действия по анализу свойств чисел.
  • Командный тренинг – решение задач на технику работы с числами.

Занятие 5

Использование больших объёмов данных

  • Массивы. Организация динамических массивов.
  • Полезные алгоритмы, связанные с массивами.
  • Проблема ограничений по памяти при олимпиадном программировании.
  • Обзор специализированных типов данных (стеки, списки) и инструментов для их реализации.
  • Индивидуальный тренинг – технически сложные задачи.

Занятие 6

Перебор вариантов как метод поиска решения

  • Способы организации перебора.
  • Простой перебор с параметром, с заданным числом параметров.
  • Индуктивный перебор: генерация варианта на основе предыдущего.
  • Индивидуальный тренинг.

Занятие 7

Перебор вариантов как метод поиска решения (продолжение)

  • Рекурсия как способ организации перебора.
  • Альтернативы рекурсии.
  • Эффективность по времени, примеры.
  • Командный тренинг с выбором задач из большого набора.

Занятие 8

Тестирование программы

  • Тестовые данные в олимпиадном программировании.
  • Самотестирование программы. Типы тестовых данных в зависимости от способа оценки результатов.

Организация работы команды

  • Варианты распределения ролей в команде.
  • Командный тренинг - тактический разбор пакета заданий реальной олимпиады.

Занятие 9

Оптимизация поиска решения

  • Способы ускорения перебора вариантов.
  • «Жадные алгоритмы», условия их применимости.
  • Командный тренинг с выбором задач из большого набора.

Занятие 10

Графы и деревья

  • Примеры задач, моделируемых посредством графов.
  • Способы представления графов в программе.
  • Обзор некоторых алгоритмов, связанных с графами.
  • Решение задач

Занятие 11

Командная олимпиада по программированию

Занятие 12

Разбор заданий командной олимпиады

Индивидуальная олимпиада по программированию – экзамен

Стоимость

21 800 ₽

Есть скидки от 10% до 20%. Узнать подробнее...

Как поступить

Для тех, кто еще не учится в АИШ:

  • Вступительное тестирование

Для уже обучающихся в АИШ:

  • Семестр 3. Практикум по программированию – промежуточная аттестация не менее 90 баллов или итоговая оценка не ниже «отлично»
  • Семестр 4. Процедурное программирование – промежуточная аттестация не менее 70 баллов или итоговая оценка не ниже «хорошо»
  • Семестр 3. Практикум по программированию на языке C# – промежуточная аттестация не менее 90 баллов или итоговая оценка не ниже «отлично»
  • Семестр 4. Процедурное программирование на языке С# – промежуточная аттестация не менее 70 баллов или итоговая оценка не ниже «хорошо»
  • Семестр 2. Структурное программирование на языке Python – промежуточная аттестация не менее 70 баллов или итоговая оценка не ниже «хорошо»
  • Семестр 3. Практикум по программированию на языке Python – промежуточная аттестация не менее 70 баллов или итоговая оценка не ниже «хорошо»
  • Семестр 4. Функциональное программирование и структуры данных на языке Python – промежуточная аттестация не менее 75 баллов или итоговая оценка не ниже «хорошо»
  • Семестр 1. Структурное программирование на С/С++ – промежуточная аттестация не менее 60 баллов или итоговая оценка не ниже «хорошо»
Тест № АИШ-341 Вступительный тест для обучения на семестре "Введение в олимпиадное программирование"

Необходимые знания и умения для успешного прохождения тестирования:

  1. Базовые математические знания, основы математической культуры.
  2. Опыт процедурного программирования на языке Python, С++, C# или Pascal:
    • Типы данных, преобразование типов.
    • Операторы консольного ввода и вывода, присваивания.
    • Операторы для организации циклов и ветвлений.
    • Массивы и стандартные алгоритмы работы с ними (поиск, нахождение максимума, сортировка, сдвиг и т.п.).
    • Создание процедур и функций, способы передачи данных между подпрограммами.
    • Владение приёмами работы со строками (выделение и поиск подстроки).
    • Знание классических численных алгоритмов (НОД, выделение цифр числа).

По результатам выполнения практического задания необходимо набрать не менее 65 баллов.

Для сдачи теста предоставляется 1 попытка.

Как записаться на занятия

Если ребёнок уже обучается

оставьте заявку в Личном кабинете

Если ребёнок ещё не обучается

заполните форму

суббота 27.01.2024 - 04.05.2024 18:00 - 21:30

Группа
108.14.01
Свободных мест: 8
Аудитория
№211
ул. Обручевых, д.1, вход с ул. Гидротехников
воскресенье 28.01.2024 - 05.05.2024 онлайн 10:00 - 13:30

Группа
508.14.01
Свободных мест: 9
Аудитория
_Онлайн

Выберите группу

Академия информатики для школьников в цифрах

19 лет

успешной работы
в Политехническом университете Петра Великого

10

направлений обучения

83

учебные программы

3 500

школьников
проходят обучение
ежегодно

4

учебные площадки

36

компьютерных классов