Каждый проводит свободное время по-разному. Так уж вышло, что у меня последнее время его достаточно и часть своего свободного времени я провожу на одном из ресурсов, ориентированных на решение школьных и студенческих задач, конкретнее - в предмете “Информатика”. Стараюсь решать задачи на PascalABC.NET 3.2, но чаще всего потом получаю в ответ реплики вроде “Это неправильный какой-то паскаль, мы учим по-другому”.
Почему? Почему в школьном обучении до сих пор ориентировка в основном на Turbo Pascal 7.0, поддерживать который Borland прекратила в 1993 году? Двадцать четыре (!) года назад! Это почти вечность с точки зрения развития IT-отрасли. Я считаю, что основных причин три.
- Старая материальная база в компьютерных классах. До сих пор у многих стоят i386/486 или первые “пентиумы”, работающие исключительно в MS DOS.
- Школьные учебники в основной своей массе ориентированы на идеологию именно паскаля 7.0.
- Школьные учителя не знают иных версий паскаля и не горят желанием переучиваться.
В последние годы ряды школьных преподавателей информатики пополнили молодые кадры, у которых паскаль 7.0 вызывает стойкую идиосинкразию. Они ищут альтернативу и находят её в С/С++/С#, Python, Free Pascal, Delphi, Lazarus, Java, Ruby, PHP, … - все зависит от их “любимого” языка. После этого остается только уговорить руководство школы, развешав “морковки” в виде потенциальных первенств на межшкольных олимпиадах и прочих преференций за желание быть “на переднем крае”.
И детей из таких классов я тоже встречаю на упомянутом школьном ресурсе. Это типичные страдальцы, заложники амбиций “продвинутых” учителей. Они отличаются от остальных “паскалят” тем, что любят писать отдельные “умные слова” (не понимая, впрочем, их смысла) и еще - практически полным отсутствием навыков алгоритмизации задач. Это и понятно: в школе на информатику отводится 45 минут в неделю, а учебных недель в году всего 35 - это 35 академических часов в год. И если выбирается язык уровня С/С++ - то либо учат его, либо алгоритмы. Одновременно не получается. “Питоны” тоже не знают алгоритмов, потому что на Питоне сложновато “опуститься” на низкий уровень “вот так это устроено”. Можно пройтись и по другим языкам.
Межшкольные олимпиады тоже делают свой “оригинальный вклад”… Вот информация, которая была опубликована на ресурсе Всесоюзной олимпиады школьников (московский региональный этап):
Free Pascal, GNU C/C++, Java — гарантируется, что все задачи регионального этапа могут быть выполнены на полный балл с использованием данных компиляторов. Pascal ABC.NET — данный компилятор будет доступен в тестирующей системе, но не гарантируется, что все задачи можно решить на полный балл с использованием этого компилятора. Python, PHP, Perl, Ruby, C# — данные языки будут доступны в тестирующей системе, но скорее всего не все задания олимпиады могут быть выполнены на полный балл. Жюри предполагает, что при помощи данных языков возможно набрать балл, достаточный для призера олимпиады, но не дает никаких гарантий.
Нормально, да? С одной стороны, школы стараются себя показать на олимпиадах, с другой - устроители олимпиад по ходу игры меняют правила. И цели у школ и олимпиад диаметрально противоположные. Цель школы - массовое обучение среднестатистического школьника. Цель олимпиады - отобрать горстку “самородков”, которых школа сама подготовить не в состоянии. Что должны делать дети, которым преподают Питон? Основная масса школьников с Турбо Паскаль? Зачем им на олимпиаду вообще идти? А школе что делать? Преподавать С/С++ для трех учеников в классе, готовя их к олимпиаде, а остальным постоянное ставить двойки?
И вот думаю я, есть ли смысл пытаться пробиться с PascalABC.NET 3.2 на уровень олимпиад? И сам себе отвечаю, что нет, скорее всего. Подсказка: для чего убрали Питон?. Считаю, что это сделано специально: надо повысить шанс достижения призовых мест теми, кто пишет на С/С++. Поскольку конкурировать с тем же Питоном по скорости разработки и отладки С/С++ реально не может. То же бужет ждать и PascalABC.NET 3,2 - его просто не выпустят.
А почему же такое желание выбирать лучших из тех, кто работает с С/С++ ? У меня есть некоторые мысли по этому поводу, но, быть может, кто-то еще пожелает высказаться на эту тему.
P.S. А причем тут школа? Напомню только, что согласно словарям русского языка, “абитуриент” - это лицо, окончившее среднее учебное заведение.