Алгоритмическое программирование

7 апреля - 19 мая

Онлайн-курсы, интенсивы, лекции, контест и финал - чемпионат

Telegram

Онлайн-курсы

Основы C/C++ для спортивного программирования

C и C++ являются наиболее подходящими языками для спортивного программирования. Курс направлен на участников, не имеющих опыта работы с данными языками. Программа курса включает в себя знакомство с базовыми понятиями языка: переменные, типы данных, условные операторы, циклы, функции и многое другое. Советуем пройти этот курс, если вы хотите в будущем пройти другой наш онлайн-курс «Быстрый старт в спортивное программирование», для прохождения которого знание языка С++ не является обязательным — вы можете успешно его пройти, зная какой-нибудь другой язык, однако некоторые задачи курса нельзя сдать на других языках программирования.

Переменные

Первая программа, переменные, считывание
Подводные камни
Локальный запуск
Символьный тип данных
Типы данных с плавающей точкой
Логический тип данных

Условные операторы и циклы

Логические операции
Условный оператор
Циклы while, do-while
Цикл for

Массивы и функции

Массивы
Многомерные массивы
Квадратичные сортировки
Квадратичные сортировки, сортировка вставками
Функции
Рекурсия

Сложные структуры данных

Указатели
Передача параметров в функцию: указатели и ссылки
Структура: конструкторы и деструкторы
Перегрузка операторов
Vector
String

Битовые операции и системы счисления

Быстрое считывание
Системы счисления
Битовые операции
Хранение целых чисел в компьютере
Хранение дробных чисел в компьютере

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

Курс поможет войти в мир спортивного программирования. Рассматриваются базовые теоретические и практические аспекты, необходимые для успешного участия в состязаниях по спортивному программированию любого уровня: от базовых линейных алгоритмов до основ теории графов и их обходов. Также рассматриваются вопросы асимптотического анализа и оценки эффективности программы.

Базовые алгоритмы

Асимптотика
Линейные алгоритмы
Бинарный поиск

Теория чисел

Целые типы данных, решето Эратосфена
Операции по модулю
Алгоритм Евклида
Бинарное возведение в степень и деление по модулю

Динамическое программирование

Определение
Линейное динамическое программирование
Двумерное динамическое программирование
Восстановление ответа
Задача о рюкзаке

Теория графов

Базовые определения теории графов
Обход в глубину
Обход в ширину

Быстрый старт в спортивное программирование. Часть 2

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

Простейшие структуры данных

Односвязные и двухсвязные списки. Операторы new и delete
Стек. Функции malloc, realloc, free
Очередь. Стек и очередь с минимумом
Дек. Персистентные структуры данных

Кучи

Структура данных «Куча»
Вспомогательные процедуры 1
Вспомогательные процедуры 2
Операции
HeapSort
Технические сложности

Сортировки

Сортировка слиянием
Подсчет инверсий
Сортировки сравнениями
Поразрядная сортировка

Введение в алгоритмы STL

QuickSort и поиск K-ой порядковой статистики
Основные алгоритмы STL: std::sort
Основные алгоритмы STL: около-сортировки и линейный поиск
Бинарный поиск и «сложные» алгоритмы
Контейнеры STL
Решение задач с использованием STL

Основы Теории Графов для спортивного программирования

Курс поможет войти в мир спортивного программирования. Слушатели познакомятся с теорией графов на более глубоком практическом уровне для успешного решения задач по спортивному программированию. Пройдя этот курс, вы научитесь решать задачи по теории графов для участия в олимпиадных программах по спортивному программированию. Узнаете или повторите, что такое графы, где в жизни применяется теория графов, как и зачем теорию графов применяют математики и программисты.

Представление сетей в компьютере

Основные понятия теории графов
Матрица смежности. Список ребер
Упорядоченный список дуг
Список смежности и поиск компонент связности
Дерево
Список предков и поиск цикла в графе
Подсчет высоты и диаметра дерева
Обход в глубину на стеке

Алгоритмы BFS и Дейкстра

Волновой алгоритм обхода графа
Поиск в ширину для неединичных ребер
Алгоритм Дейкстры

Алгоритмы Беллмана – Форда и Флойда

Алгоритм Беллмана-Форда
Алгоритм Левита
Поиск цикла отрицательного веса
Алгоритм Флойда-Уоршелла

Интенсивы

09-13 октября

Любой желающий может принять участие в обучающих онлайн-интенсивах по программированию! Интенсивы пройдут в четырёх дивизионах по уровню сложности (С, D, E и F) в формате онлайн-лекций, контестов и онлайн-разборов. За пять дней предстоит осилить более 10 часов лекционных занятий и 15 часов практических. Темы: вычислительная геометрия, динамическое программирование, теория чисел, особенности работы с алгоритмами и другие. Лекторы курса — преподаватели крупнейших вузов России (МФТИ, ДВФУ).

09-13 октября 2023 года
>10 лекций
онлайн/очно

Очные точки

Долгопрудный
Иванов Иван Иванович
Иванов Иван Иванович
должность
mail@gmail.com
Долгопрудный
Сидорова Светлана Викторовна
Сидорова Светлана Викторовна
должность
mail@gmail.com
Москва
Лядова Анна Михайловна
Лядова Анна Михайловна
должность
mail@gmail.com

Чемпионат RuCode

15 октября

Чтобы принять участие в чемпионате, необходимо
1

Собрать команду до трёх человек

2

Каждому зарегистрироваться на сайте

3

Капитану зарегистрировать команду и добавить в нее тиммейтов

4

Присоединиться к чемпионату 15 октября и решить максимум задач!

Программа

10:00 — 10:20
Открытие чемпионата
10:00 — 10:20
Вступительная речь методистов
10:00 — 10:20
Выступление участников задачи ГК «Роскосмос»
10:00 — 10:20
Подведение итогов по задаче
10:00 — 10:20
Перерыв
10:00 — 10:20
Выступление участников задачи DLS
10:00 — 10:20
Подведение итогов по задаче

Методический блок

Олег Христенко
Олег Христенко

Главный судья Moscow Workshops
Технический координатор Олимпиадных школ, Moscow Workshops Juniors и Moscow Workshops
Сопредседатель жюри Moscow Programming Contest

Алькин Руслан
Алькин Руслан

Главный методист RuCode трека АП, организатор олимпиад по спортивному программировнию в Карелии, руководитель Клуба Творчества Программистов и тренер команд ПетрГУ, победитель программы VK Fellowship для преподавателей, призер NERC

Александр Кленин
Александр Кленин

Преподаватель ДВФУ
Директор четвертьфинала ICPC на Дальнем Востоке
Научный руководитель Тихоокеанских школ по информатике

Владимир Куренков
Владимир Куренков

Заведующий кафедры информатики Лицея НИУ ВШЭ
Преподаватель курса «Разработка приложений под Android» в IT школе Samsung

Владимир Тарасов
Владимир Тарасов

Профессор кафедры программного обеспечения ИжГТУ
Руководитель Центра подготовки программистов олимпийского резерва
Тренер команд ИжГТУ
Руководитель и организатор Discover Izhevsk Winter 2020

Олег Христенко
Алькин Руслан
Александр Кленин
Владимир Куренков
Владимир Тарасов
Еще