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

195

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

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

Модуль 1 — Арифметические задачи, делимость, комбинаторика

  • Знакомство с языком программирования Python. Установка, ввод-вывод
  • Что такое тестирующая система?
  • Операции целочисленного деления и взятия остатка
  • Арифметические задачи
  • Деление с округлением вверх. Разные задачи
  • Дата и время
  • Задачи на делимость
  • Задачи про числа и цифры
  • Комбинаторные задачи

Модуль 2 — Условный оператор и циклы

  • Условный оператор if-else
  • Условия на шахматной доске
  • Цикл for
  • Цикл while
  • Вложенные циклы
  • Перебор
  • Моделирование

Модуль 3 — Строки

  • Строки, срезы строк, задачи на строки
  • Маски, разные задачи на строки
  • Шифры и криптография

Модуль 4 — Списки, двумерные списки

  • Списки, срезы, задачи на списки
  • Двумерные списки
  • Разные задачи

Модуль 5 — Функции и рекурсия

  • Функции в Python
  • Рекурсия в Python
  • Классические рекурсивные сюжеты
  • Волновой алгоритм

Модуль 6 — Поиск и сортировка

  • Сортировка
  • Наибольшее и наименьшее. Жадный алгоритм
  • Линейный поиск
  • Метод двух указателей

Модуль 7 — Динамическое программирование

  • Одномерное динамическое программирование: количество способов
  • Одномерное динамическое программирование: наилучший способ
  • Восстановление ответа в задачах динамического программирования
  • Двумерное динамическое программирование