Сравнение PascalABC и Scratch и их перспективы в обучении детей.

4 марта 2016 г.|Максим Хорсун

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

Главным преимуществом, конечно же, является доступность. Ребенок открывая Scratch чувствует себя уверенно, хочет исследовать каждый блок с командами, посмотреть чего можно добиться с помощью их различных комбинаций. Открывая PascalABC - ребенок видит блокнот, пустой грустный блокнот. Для начального обучения это совсем не подходит. А для среднего уровня и выше - тем более. В этом случае стоит обратить внимание на Python. Это принципиально разные подходы к обучению. PascalABC может использоваться сегодня ТОЛЬКО для обучения и никаких перспектив в себе не несёт. Да, это прекрасный язык для обучения структурному программированию, но не стоит ему отдавать столько времени. И если есть возможность его чем-то заменить, то стоит поторопиться.

Сравнительная таблица ключевых тем

ТемыPascalABCScratch
Графические возможности чертежник, робот, GraphABC блоки "Рисование"
Ввод и вывод данных write(...), read(...) блоки "Сказать..." и "Спросить..."
Переменные и константы да блоки "Данные"
Строки и символы да блоки "Операторы"
Типы данных integer, real, char, string, array number, text, boolean
Массивы да блоки "Данные" (одномерные списки)
Арифметические операции да блоки "Операторы", но отсутствует div
Арифметические функции да блоки "Операторы"
Ветвление да блоки "Управление"
Циклы for, while, repeat всегда, повторить..., повторять пока не...

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