Блог Академии олимпиадного программирования "НОВАРИУМ"
29.08.2026
3. Почему мы не начинаем со Scratch

Часть 3 цикла «Ребёнок начинает программировать»

После статьи о PascalABC.NET мне наверняка зададут вопрос: зачем вообще знакомить младшего школьника с текстовым кодом, если существует Scratch?
В Scratch ребёнку не нужно следить за точками с запятой, запоминать команды и разбираться с сообщениями компилятора. Он выбирает цветные блоки, соединяет их — и персонаж начинает двигаться. Для первого занятия это выглядит почти идеально.
И всё же в «Новариуме» мы обычно начинаем иначе.
Сразу оговорюсь: Scratch — не плохая среда и не бесполезная игрушка. Он подходит многим детям. С его помощью можно познакомиться с последовательностью команд, условиями, циклами, событиями и переменными. Можно создать мультфильм, небольшую игру или интерактивную историю.
Но у нас другая задача. Мы работаем с детьми, которые уже готовы не просто управлять персонажем на экране, а осваивать текстовое программирование. Для них Scratch может оказаться не необходимой ступенью, а довольно длинным обходным путём.

Что ребёнок действительно изучает в Scratch

Одна из сильных сторон Scratch — он почти полностью убирает синтаксические ошибки.
Блок цикла нельзя случайно написать с опечаткой. Команду не нужно вспоминать: она уже находится в меню. Неподходящие элементы часто просто не соединятся друг с другом. Среда берёт на себя значительную часть технической работы и позволяет ребёнку сосредоточиться на результате.
Для быстрого знакомства с программированием это удобно. Через несколько минут после начала занятия кот уже идёт по экрану, поворачивается, что-то говорит и реагирует на нажатие клавиши.
Ребёнок видит результат и радуется: получилось.
Проблема появляется не в этот момент, а позже — если за яркими блоками так и не возникает понимания текстовой программы.
Да, ребёнок может знать, что такое цикл. Но сможет ли он самостоятельно записать цикл, когда перед ним окажется обычный редактор кода? Поймёт ли сообщение об ошибке? Сможет ли выбрать подходящий тип данных, написать условие и проверить, почему программа выдаёт неверный ответ?
Это уже другой уровень самостоятельности.

Навыки из Scratch переносятся — но не все

Иногда можно услышать две противоположные точки зрения.
Первая: Scratch вообще не имеет отношения к программированию.
Вторая: после Scratch ребёнок без труда перейдёт на любой текстовый язык.
Обе позиции слишком категоричны.
Алгоритмические идеи действительно переносятся. Последовательность действий остаётся последовательностью, цикл — циклом, условие — условием. Если ребёнок научился разбивать большую задачу на несколько небольших, этот навык никуда не исчезнет.
Но практическая сторона работы с кодом переносится лишь частично.
В текстовом языке уже нет готовой полки с командами. Нужно помнить синтаксис, набирать код с клавиатуры, следить за структурой программы и читать сообщения об ошибках. Появляются типы данных, правила записи выражений и множество мелочей, которые Scratch намеренно скрывал.
Ребёнок вроде бы уже «занимался программированием», но перед первой программой на PascalABC.NET, Python или C++ снова чувствует себя начинающим.
Не потому, что Scratch ничему его не научил. Просто раньше значительную часть работы выполняла среда.

«Я знаю циклы» — и первая пустая строка

Такую ситуацию преподаватели видят довольно часто.
Ребёнок говорит, что уже проходил циклы и условия. Мы открываем редактор и предлагаем написать совсем короткую программу: например, вывести числа от 1 до 10.
И тут возникает пауза.
Где взять цикл? Как он записывается? Что должно находиться внутри? Почему программа не запускается? Что означает сообщение, появившееся внизу экрана?
В Scratch ребёнок узнавал нужный блок по цвету и форме. Теперь команду нужно извлечь из памяти и записать самому.
Это похоже на разницу между узнаванием слова в списке и попыткой написать его без подсказки. В первом случае кажется, что всё знакомо. Во втором становится ясно, насколько хорошо материал действительно усвоен.
Текстовое программирование довольно быстро показывает, что ребёнок понимает, а что лишь узнаёт.

Почему мы не боимся настоящего кода в первом классе

Иногда родители представляют первый урок текстового программирования так: перед семилетним ребёнком открывают пустой редактор и требуют написать большую программу.
Конечно, так обучение не строится.
Сначала дети работают с логикой, последовательностями, простыми вычислениями и короткими алгоритмами. Затем появляются первые команды. Программа может состоять всего из нескольких строк, а задача — быть понятной даже первокласснику.
Сложность должна находиться в самой мысли, а не в количестве написанного текста.
Например, ребёнку нужно определить, какое число больше, найти закономерность или несколько раз выполнить одно действие. Преподаватель показывает необходимую конструкцию, объясняет её и даёт задачи, в которых она постепенно закрепляется.
Да, ребёнок иногда забывает символ, неверно пишет команду или пропускает знак. Но это не повод убирать текстовый код. Поиск таких ошибок — тоже часть обучения.
Компьютер не ругается и не ставит плохую оценку. Он сообщает: программу в таком виде выполнить невозможно. Нужно внимательно посмотреть на написанное и найти причину.
Постепенно дети перестают воспринимать ошибку как катастрофу. Она превращается в обычный рабочий вопрос: где именно программа делает не то, что было задумано?

Зачем младшему школьнику типы данных

В Scratch ребёнок тоже работает с числами, текстом и логическими значениями. Однако ему редко приходится заранее задумываться, чем именно является значение и как оно будет использоваться.
В PascalABC.NET различия видны непосредственно в коде:
var age: integer;
var name: string;
var temperature: real;
var answer: boolean;
Для взрослого это четыре простых объявления. Для ребёнка — важная привычка: прежде чем использовать переменную, нужно понять, что мы собираемся в ней хранить.
Количество учеников — целое число. Имя — строка. Температура может быть дробной. Результат проверки условия принимает значения «истина» или «ложь».
Так программа перестаёт быть набором команд, которые нужно удачно соединить. У неё появляется устройство, которое ребёнок может объяснить.
Позднее PascalABC.NET позволяет использовать и автоматический вывод типов, сокращая запись. Но сначала полезно увидеть различия своими глазами. Мы предпочитаем сначала разобраться, а уже потом пользоваться сокращениями.

А как же интерес, графика и движение?

Текстовый код часто представляют в виде чёрного окна, заполненного непонятными строчками. Для младшего школьника такая картина действительно не слишком привлекательна.
Но выбор не сводится к двум вариантам: либо весёлый Scratch, либо одни вычисления в консоли.
На PascalABC.NET дети рисуют, создают движение и анимацию, работают с 2D- и 3D-графикой. Можно запрограммировать ракету, построить корабль, нарисовать дом Бабы-яги или собрать собственную сцену из геометрических объектов.
Разница в том, что видимый результат создаётся написанными ребёнком командами.
Чтобы объект переместился, нужно изменить его координаты. Чтобы действие повторилось — написать цикл. Чтобы программа реагировала на условие — сформулировать это условие в коде.
Картинка остаётся яркой, но за ней уже находится текстовая программа, которую можно прочитать, проверить и изменить.

Кому Scratch всё-таки подходит

Было бы нечестно утверждать, что каждому первокласснику необходимо немедленно переходить к текстовому коду.
Одному ребёнку пока трудно набирать текст с клавиатуры. Другой пришёл в кружок прежде всего ради мультфильмов и игровых историй. Третьему нужно сначала просто убедиться, что он способен управлять происходящим на экране.
Для таких детей Scratch может стать удачным инструментом.
Вопрос не в том, какая среда «правильная» для всех. Важно понимать цель конкретного обучения.
Если задача — познакомить ребёнка с общими идеями программирования через игру и визуальное творчество, Scratch вполне уместен.
Если ребёнок уже уверенно читает, умеет работать с клавиатурой, любит логические задачи и готов разбираться, ему можно сразу предложить текстовое программирование. Не обязательно несколько лет собирать блоки только потому, что так принято начинать.
В некоторых школах Scratch изучают и в пятом классе. Мы не спорим с этим выбором. «Новариум» просто предлагает альтернативу детям, которые готовы двигаться по другому маршруту.

Почему мы выбираем текстовый старт

Наш выбор связан не с желанием сделать обучение сложнее.
Мы хотим, чтобы ребёнок с первых занятий привыкал читать код, самостоятельно записывать команды, понимать данные и спокойно относиться к ошибкам. Чтобы переход к следующему языку означал знакомство с новым синтаксисом, а не первое столкновение с текстовой программой.
С первых занятий дети работают с логикой и алгоритмами, затем программируют на Python и PascalABC.NET. Сильных переводим на C++ и олимпиадные задачи.
Scratch подходит многим детям. Но он не является обязательной «подготовительной группой», которую должен пройти каждый будущий программист.
Если младший школьник готов работать с настоящим кодом, мы считаем правильным дать ему такую возможность сразу.
Не лишать занятия графики, движения и интересных проектов. Не требовать от первоклассника взрослой скорости. Просто не прятать программирование за цветными блоками дольше, чем это действительно необходимо.
В следующей статье поговорим о Python: почему этот язык так популярен, что его динамическая типизация скрывает от начинающего и почему после PascalABC.NET он нередко становится особенно удачным вторым языком.