1. Эффективность изучения программирования существенно повышается при сочетании его с математикой. Младшие и средние школьники на наших занятиях по математике тренируются в решении нестандартных логических задач, развивая тем самым абстрактно-логическое мышление, которое так необходимо в программировании. Формируется навык не впадать в ступор от нестандартной задачи, а прикладывать умственные усилия для поиска различных комбинаций известных приемов, их критической оценки и доказательства правильности найденного решения.
Что касается старших школьников, то они уже целенаправленно изучают выходящие за рамки школьной программы разделы дискретной математики, лежащие в основе алгоритмов, используемых, в том числе, в олимпиадном (спортивном) программировании.

2. Для качественного усвоения знаний ребенок должен работать в так называемой зоне ближайшего развития [2]. То есть задания должны быть достаточно трудными, но решаемыми самостоятельно или с небольшой помощью педагога. Гораздо меньше пользы приносит просто объяснение и разбор задач. Поэтому мы убежденные противники не только поиска объяснения решения задачи в интернете, но даже помощи родителей. У наших педагогов большой опыт приемов (наводящих вопросов, аналогий и т.п.) для подведения ребенка к решению каждой задачи с максимальной степенью самостоятельности.

3. Индивидуальный темп изучения материала [3]. Нельзя двигаться дальше, не закрепив материал решением необходимого минимума задач, с одной стороны, и «топтание на месте» способствует охлаждению интереса к учебе, с другой стороны. Это вечная проблема при групповом обучении, и в то же время очень важно ее решить. Что мы делаем для ее решения?
Во-первых, очень стараемся, чтобы численность групп была не более 10 человек.
Во-вторых, группы комплектуются с учетом способностей детей, не придерживаясь строго того, в каком классе они учатся в общеобразовательной школе. При необходимости с родителями обсуждается целесообразность и возможность перехода в другую группу.
В-третьих, для того, чтобы как можно больше времени оставалось для индивидуальной работы с детьми, мы максимально освобождаем педагога от рутинных операций. В этом нам помогают использование различных автоматизированных систем управления обучением. Они не только систематизируют учебный материал, но и берут на себе предварительную проверку правильности решения заданий.