[Фоксфорд] Подготовка к олимпиадам по программированию для начального уровня 5-7 кл. (Елена Горская)

Для того, чтобы успешно выступать на олимпиадах по информатике и программированию, недостаточно знать язык программирования.
Необходимо обладать гибким мышлением, уметь придумывать алгоритмы и конструкции. Также важно уметь использовать язык программирования именно для решения олимпиадных задач, быть знакомым с классическими олимпиадными сюжетами, иметь опыт решения большого количества несложных задач олимпиадного характера. На развитие алгоритмических способностей и умения решать несложные олимпиадные задачи и нацелен наш курс.
На курсе мы познакомимся с основами современного языка программирования Python, и сразу же будем использовать его для решения задач олимпиадного типа. Темы, которые мы обсудим на уроке, будут подкрепляться достаточным количеством домашних задач, для решения которых необходимо будет написать программу, а затем сдать ее на проверку в тестирующую систему (ejudge).

Кому будет полезен курс:
Курс подойдёт тем, кто хочет изучить язык программирования Python с нуля и участвовать в олимпиадах по программированию.
Какие знания дает курс:
На занятиях обсуждаются теоретические вопросы, разбираются решения задач по программированию и основы языка Python.
Чем полезен курс:
Курс дает основы языка Python, знакомит с классическими олимпиадными сюжетами, помогает начать выступать на олимпиадах и дает базу для будущего глубокого изучения олимпиадного программирования.

Модуль 1 - Арифметические задачи, делимость, комбинаторика
  • Знакомство с языком программирования Python. Установка, ввод-вывод
  • Что такое тестирующая система?
  • Операции целочисленного деления и взятия остатка
  • Арифметические задачи
  • Деление с округлением вверх. Разные задачи
  • Дата и время
  • Задачи на делимость
  • Задачи про числа и цифры
  • Комбинаторные задачи
Модуль 2 - Условный оператор и циклы
  • Условный оператор if-else
  • Условия на шахматной доске
  • Цикл for
  • Цикл while
  • Вложенные циклы
  • Перебор
  • Моделирование
Модуль 3 - Строки
  • Строки, срезы строк, задачи на строки
  • Маски, разные задачи на строки
  • Шифры и криптография
Модуль 4 - Списки, двумерные списки
  • Списки, срезы, задачи на списки
  • Двумерные списки
  • Разные задачи
Модуль 5 - Функции и рекурсия
  • Функции в Python
  • Рекурсия в Python
  • Классические рекурсивные сюжеты
  • Волновой алгоритм
Модуль 6 - Поиск и сортировка
  • Сортировка
  • Наибольшее и наименьшее. Жадный алгоритм
  • Линейный поиск
  • Метод двух указателей
Модуль 7 - Динамическое программирование
  • Одномерное динамическое программирование: количество способов
  • Одномерное динамическое программирование: наилучший способ
  • Восстановление ответа в задачах динамического программирования
  • Двумерное динамическое программирование