В ходе обучения программированию школьник неизбежно вступает в фазу, когда синтаксис языка освоен, навыки решения стандартных технических задач выработаны, но при столкновении с задачей нестандартной, с неочевидным алгоритмом возникают трудности. Причина — нехватка практики, опыта программирования.
Поскольку даже ученик с высокой мотивацией вряд ли будет охотно решать однотипные задачи для отработки конкретных технических приёмов, задачный контент курса предельно многообразен и в значительной степени вариативен. Это даёт каждому ученику возможность роста, а преподавателю позволяет выстраивать индивидуальную траекторию обучения, подбирая дополнительные задания, соответствующие уровню и интересам учащегося, позволяющие как развить сильные стороны, так и ликвидировать уязвимости.
Основная проблема реализации практических курсов для программистов – обеспечение проверки выполненных заданий. В данном курсе она решается следующим образом: лишь часть заданий поверяется преподавателем вручную, остальные задания либо сводятся к нахождению средствами программирования ответа на математическую, экономическую или социальную задачу при конкретных входных данных (как это делается сейчас на ЕГЭ), либо размещаются на контестере — олимпиадном портале, где проверяются автоматически.
Цель курса: выработка навыков алгоритмизации, планирования структуры данных, тестирования и отладки программы через практику программирования.