Комментарий «УГ»

*См. также статью Елены ЛАДЫГИНОЙ «ПервоЛого для первоклашек», №15, 2008 год, «ИКТ в образовании».

Над совершенствованием языка работали многие программисты и целые коллективы. Результатом этой эволюции стала среда программирования QBasic, вошедшая в состав русифицированной версии MS DOS 5.0. В языке этой среды были устранены основные недостатки ранних версий Бейсика. Отпала необходимость в нумерации строк, появились блоки процедур (SUB и FUNCTION). Некоторые операторы стали удобнее. Появились новые операторы: блочная форма условного оператора (IF...END IF); оператор выбора (SELECT CASE); универсальный блочный оператор цикла (DO...LOOP). Появилось много новых средств, облегчающих работу программиста. Отпала необходимость использования оператора безусловного перехода. Программы стали структурированными и удобочитаемыми, почти как на Паскале. Гадкий утенок давно превратился в прекрасного лебедя.

Однако многие преподаватели, методисты и авторы пособий не хотят видеть этого превращения, продолжая и сегодня нумеровать строки программы и ругать Бейсик за отсутствие в нем процедур. В качестве недостатка часто отмечают большое количество умолчаний. Но ведь на начальной стадии обучения некоторые из умолчаний оказываются полезными. Ученик, например, до определенного времени может не знать о существовании типов числовых данных, пользуясь по умолчанию типом SINGLE. Это не мешает ему в дальнейшем объявлять типы переменных в начале программы.

Сегодня время на изучение программирования в базовой общеобразовательной школе сокращено до минимума. В тематическом планировании базового курса «Информатика и ИКТ» в основной школе на алгоритмизацию и основы программирования отводится всего 14 часов. В качестве инструментальной системы берется Visual Basic. Девятиклассники еще недостаточно подготовлены к восприятию абстрактных понятий. Здесь же они должны освоить понятия проекта, формы, объекта, класса объектов, свойств объекта, события, метода, типа данных, процедуры, оператора, функции, инкапсуляции... Было бы наивным полагать, что после такого изучения этой темы школьник поймет сущность программирования, увидит его красоту. Представляется маловероятным, что он сможет самостоятельно создать проект для решения, например, квадратного уравнения.

На мой взгляд, обучение этому виду деятельности нужно начинать на базе Бейсика. Причем на начальном этапе разделять алгоритмизацию и программирование во времени нежелательно, так как спешка здесь недопустима. Любой ученик должен четко понимать назначение каждого шага алгоритма для решения поставленной задачи и соответственно реализации этих шагов на языке программирования изучить на практике назначение и возможности каждой языковой конструкции, ее синтаксис и семантику. Все это требует от учителя терпения и выдержки, рационального сочетания фронтальных и индивидуальных форм работы на уроке и вне урока, тщательного подбора задач, сложность которых постепенно нарастает. Необходимо практически освоить базовые структуры программирования, процедуры, обработку массивов. После этого можно изучать и объектно-ориентированные среды.

Вот что пишет во вступлении к своей книге «Алгоритмы и программы на QBasic» Юрий Федоренко: «Все вычисления, которые проводит подавляющее большинство инженеров и научных сотрудников, одинаково хорошо можно выполнить как на Turbo Pascal, так и на QBasic! Более того, многие операторы QBasic допускают значительно более гибкое применение, чем операторы Turbo Pascal». Можно также добавить мнения других специалистов, что освоить Бейсик должен, пожалуй, каждый программист, поскольку это самый распространенный язык программирования в мире. Реалии таковы - Бейсик завоевал мир, сделал он это всерьез и надолго. Необходимо особо отметить, что изучение второго языка всегда очень благотворно сказывается на более глубоком понимании всех тонкостей первого. Графические возможности Бейсика позволяют начинать изучение основ программирования даже в начальной школе.

Многие преподаватели, практически занимающиеся обучением началам программирования, считают Бейсик лучшим языком на этом этапе. Они утверждают, что для начального обучения его можно использовать наряду с языком Лого*. Каждый из них имеет свои преимущества, но Бейсик закладывает лучшую базу для изучения в дальнейшем других языков программирования». Конечно, за 14 часов, отведенных программой, изучить даже только базовые структуры программирования и выработать устойчивые навыки их применения к решению практических задач и на Бейсике не представляется возможным. Ситуацию можно лишь частично исправить, организовав внеклассные кружковые занятия по решению задач. После изучения Бейсика ученики могут освоить (даже самостоятельно) объектно-ориентированные системы с графическим интерфейсом.

Мощный стимул для изучения программирования - олимпиады разных рангов. Непонятно только, почему на некоторых из них резко ограничивается количество языков, допустимых к применению. Например, на дистанционной олимпиаде для студентов ссузов по Центральному федеральному округу в Курске, которая проходила два года назад, в номинации программирующих непрофессионалов допускались только Pascal, Delphi и C++ Builder. На мой взгляд, дискриминация по языковому признаку просто недопустима, поскольку она отсекает больше половины участников и лишает их возможности самовыражения. Тем более что Basic - самый распространенный язык программирования в мире. Если задачу можно решить на Basic, то решать ее на C++ Builder - все равно что стрелять из пушки по воробьям.

Особое беспокойство вызывают пособия по Бейсику, изданные в последнее время. В издательствах они не рецензируются и даже не читаются, а сразу идут в тираж и широко рекламируются. В частности, в пособии Людмилы Анеликовой «Алгоритмика в теории и практике (примеры решения задач на базе классического языка программирования QBasic)» около половины программ содержат фактические ошибки. В программе из шести строк - три перехода GOTO. Алгоритмы для решения задач не анализируются (практически отсутствует этап постановки задачи), а блок-схемы приводятся после написания программы. Но ведь блок-схема если и нужна, то только для того, чтобы облегчить написание программного кода. Зачем вам ложка после того, как закончился обед? В программах не используются ни новые операторы современного Бейсика, ни процедуры. При этом применяется Бейсик тридцатилетней давности.

В приложении на компакт-диске полная неразбериха. Здесь и презентация по программированию на Паскале, и программа torus из пакета QB 4.5. В качестве примеров даны программы, выводящие на экран различные загогулины без каких-либо комментариев. Представлены три игровые программы, написанные семиклассниками. Сам бог велел использовать здесь процедуру SUB или хотя бы оператор GOSUB. Но все сделано в одном модуле, который содержит более полусотни операторов GOTO. Читать такую программу, разбираться в ней очень и очень трудно. Просто жаль способных учеников.

При этом издательство рекомендует данное пособие как для студентов, так и для школьников.

Какие выводы можно сделать из всего вышесказанного?

1. Необходимо увеличить учебное время, выделяемое на изучение программирования в школе.

2. В качестве языка программирования предпочтительнее использовать Бейсик (версии не ниже MS DOS QBasic).

3. Обучение программированию в школе можно начинать не с 9-го класса, а с 7-го или даже еще раньше.

4. На олимпиадах по программированию для школьников и студентов ссузов недопустима дискриминация по языковому признаку.

5. Издательствам нужно серьезнее относиться к пособиям, адресованным для учащихся.

Вячеслав ЯСЕНКОВ, заслуженный учитель РФ, пенсионер, Лебедянь, Липецкая область