Курс программирования состоит из 3 ступеней.

1 ступень: программирование на Scratch (2-3 класс)

Задача педагога на этой ступени состоит в том, чтобы познакомить ребенка с основами программирования, обучить навыкам алгоритмизации задач, научить создавать законченные творческие проекты («под ключ»).

В работе используется проектный подход. Практически на каждом уроке дети создают новый проект: мультфильм, презентацию или игру. Есть базовое задание, включающее новый материал, и творческая часть, позволяющая ребенку внести собственные разработки в программу. В результате в конце занятия у каждого ученика получается свой собственный проект. В качестве домашнего задания предлагаются различные варианты дополнения и модернизации выполненного проекта.

Как проходит занятие?

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

2-3 ступени: основы алгоритмов и программирование на языке Python

Занятия на 2-4 ступенях делятся на три типа:

1. Изучение синтаксических конструкций языка программирования

Примерное количество занятий по синтаксису языка программирования:

2 ступень (Python) 3 ступень (Python)
40% 20%

На этих занятиях мы разбираем, что такое условия, циклы, функции, учимся пользоваться основными типами и структурами данных – массивами, списками, множествами, хеш-таблицами.

Как проходит занятие?

Первые 15-20 минут занятия посвящены повторению пройденного материала. Это может быть разбор заданий с прошлого занятия, тест с вопросами по пройденному материалу или викторина “найди ошибку в программе”.

Затем преподаватель объясняет новый материал и выдает задания для самостоятельной работы. Над заданиями ребята работают индивидуально, а преподаватель помогает, подсказывает, проверяет решения.

В конце занятия преподаватель разбирает задания, которые вызвали затруднения.

2. Решение олимпиадных задач и изучение алгоритмов

Примерное количество занятий по алгоритмам и олимпиадному программированию:

2 ступень  3 ступень 
30% 40%

На этих занятиях мы изучаем алгоритмы, структуры данных, такие как деревья, очереди, графы, а также решаем задачи, в которых надо придумать свой алгоритм или найти нестандартное решение

Задачи решаются с использованием платформы codeforces.com – одной из самых популярных платформ для спортивного программирования. На занятии ребятам выдается набор задач, которые надо “сдать” на этой платформе – т.е. надо написать программу, которая должна корректно пройти все тесты и при этом решить поставленную задачу за отведенное время. Схожий формат используется на школьных олимпиадах по программированию и на соревнованиях по спортивному программированию, например, ICPC, Google Code Jam, Topcoder Open.

Решение задачи по программированию включает нескольких этапов:

  • Решение задачи “на листочке”: сначала надо придумать математическое решение задачи, создать эффективный и корректный алгоритм. Обычно это самый сложный этап, поскольку требует применения навыков, полученных в ходе изучения школьной и олимпиадной математики.
  • Написание кода на языке программирования, то есть формальное описание придуманного решения с разбором всех случаев. Написанный код отправляется на проверку тестирующей системе. Этот этап требует умения четко и очень формально описывать свои мысли.
  • Если задача не проходит какие-то тесты или не работает на каких-то примерах, требуется отладка. Мы ищем ошибки в программе, для чего зачастую требуется придумать пример, на котором программа не будет работать. Иногда для этого приходится писать отдельную программу, перебирающую варианты входных данных. Этот этап требует умения критически взглянуть на собственное решение

Как проходит занятие?

Первые 20 минут преподаватель уделяет повторению материала и разбору задач, заданных на дом. Затем рассказывает теорию и выдает задачи для самостоятельного решения. Иногда на занятии нет теоретического материала, тогда преподаватель вместе с ребятами решает 2-3 задачи, разбирая подход к решению наиболее интересных задач. Часть задач остается на дом для самостоятельного решения.

3. Проектные занятия

Примерное количество занятий по созданию собственных проектов:

2 ступень (Python) 3 ступень (Python)
30% 40%

Это занятия, на которых мы вместе делаем проект и учимся писать, тестировать и отлаживать код, как это происходит в реальной работе программиста. Чтобы научиться программировать, недостаточно решать небольшие алгоритмические задачи; необходимо уметь написать большую программу: продумать ее структуру, написать большое количество кода, который должен работать и при этом быть “читаемым” – т.е. таким, в котором можно находить и исправлять ошибки и в который можно вносить изменения.

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

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