Зачем в школе изучать программирование

Василий Петрив

Уже довольно давно я прочитал историю, как один студент решил помочь своей знакомой разобраться с программой, которая "не запускается". На ее рабочем месте он обнаружил инструкцию, содержащую следующие три пункта (в скобках приведены комментарии студента):
  - включить Компьютер и дождаться пока экран   посинеет (загрузится NC);
  - 6 раз нажать кнопку со стрелкой вниз, потом Enter (зайти в нужный каталог);
  - 15 (!) раз стрелка вниз, Enter (запустить программу).
  Кто-то удалил из каталога ненужный ВАК-файл, и прилежно исполняющая инструкцию дама оказалась в трупике.

  Перед нами доведенный до абсурда образец пользовательского подхода к обучению работы на компьютере, когда не надо ничего понимать, а можно просто запомнить последовательность действий, приводящих к желаемому результату. Справедливости ради отметим, что бывают исключительные случаи, когда такой подход оправдан, но они не имеют никакого отношения к процессу обучения. Но если в школе "объясняют", что для построения круговой диаграммы надо написать числа там-то, нажать кнопку такую-то, ввести в окошечке название и т.д., то это только имитация обучения, так как ученики не понимают принципов работы и окажутся беспомощными перед аналогичной программой, но с другим интерфейсом пользователя. Обучать - значит давать фундаментальные знания, понимание изучаемых процессов. Что толку, если мы на химии только покажем, как взять вещество А, долить жидкости В, нагреть и т.д.? Без химических формул, таблицы Менделеева и прочих фундаментальных знаний ни о каком образовании в этой области говорить нельзя. То же самое с физикой, математикой и другими предметами. Информатика - исключение.

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

  Мы никак не можем осознать, что вместе с внедрением компьютера во все новые области жизни интерфейс пользователя становится интуитивно понятным и доступным для самостоятельного освоения грамотным человеком. Посмотрите на ребят, у которых в школе компьютеров нет, а дома или у папы на работе есть. Без всяких проблем они изучают и Интернет, и редакторы, знают такие тонкости проигрывателей компактов, до которых добираются только они и разработчики. Каким-то немыслимым способом они разбираются в системе команд современных игр, в сравнении с которыми изучаемые в школе программы - пустяк. А мы по старинке пишем для них красочные учебники, где рассказываем, как рисовать в Paint. Декларируя, что на современном этапе важнее научить детей искать нужную информацию, чем запоминать ее, мы сами более половины учебника наполняем сведениями, которые намного лучше представлены в справочной системе.

 Школа должна давать базовые знания по всем предметам, в том числе и по информатике. Логика, устройство процессора и компьютера, сбор, кодирование, обработка и передача информации, программирование, обзор областей применения информационных технологий должны стать содержанием информатики. А тысячи прикладных программ имеют к этому предмету такое же отношение, как электрические приборы к физике. Естественно, дети не хотят учить всего этого, а желают "работать на компьютере". Но я что-то не видел, чтобы ученики радостно бежали на урок математики, потому что там будут решать уравнения с логарифмами.

 Изучая программирование, ученики одновременна приобретают навыки работы в операционной системе. Это включает набор и редактирование текста, файловую систему и т.п. А если грамотно подобрать примеры, то можно даже писать программы управления простейшими базами данных или форматирования текстовых файлов. Но проблема в том, что начинать изучение переменных, условий, циклов, массивов и прочих основных понятий на профессиональных системах программирования практически невозможно вследствие их чрезмерной для школьника сложности. Использование с этой целью старых продуктов не только негативно воспринимается учениками, но ведет к неоправданной трате времени на освоение уже никому не нужного интерфейса.

Считаю, что пришла пора специально создавать учебные оболочки для программирования, в которых простой язык записи программ сочетается с мощными сервисными средствами Windows. Результаты моей попытки сделать такую оболочку для языка Паскаль можете посмотреть на http://ww.lviv.ua /algo/index.htm. Несмотря на наличие некоторых недоделок, большинство из которых надеюсь устранить до выхода статьи, программы вполне пригодны для школы и учителя могут свободно использовать их. Подчеркну некоторые детали.
  Паскаль выбран для изучения потому, что он ближе всего к естественному языку. А поскольку человек думает на родном языке, то компилятор разрешает записывать ключевые слова родным (украинским или русским) языком, а оболочка дает возможность перехода между языками с автоматическим переводом программы. В отличие от остальных реализаций в алфавит языка включены буквы кириллицы. Ну и, конечно, имеется мощная контекстная справочная система на родном языке.
  Детям часто бывает трудно отслеживать работу программы на численных примерах. На первых порах можно использовать всем известную модель поведения робота. Вариант такого робота реализован и в моей оболочке. Понятно, что языком программирования и в этом случае является Паскаль. Все остальное, в том числе образцы уроков, можно посмотреть на странице. Планы создания программной поддержки других разделов информатике пока остаются планами, так как работы по их реализации оказалось много больше, чем я ожидал.
  Господа профессионалы! Оторвите на минуту глаза от мониторов и взгляните за границы созданного вами виртуального мира. Реальный мир красочный и многогранный. Там работают умные, интеллигентные люди, которые автоматизируют животноводческие фермы и бытовую аппаратуру, внедряют процессоры в автомобили, чтобы сделать управление ими оптимальным и безопасным, занимаются другими интереснейшими вещами, многие из которых, как ни странно, не связаны с компьютерами. Нельзя обзывать их "чайниками" или "полными идиотами" только за то, что они не могут найти какой-то кнопочки в программе, с которой вы работаете. Сами-то вы в детстве читали книги "Радио — это просто", а не "Радио для дураков" ! Обучая детей работе на компьютере, надо помнить, что они будут работать в реальном мире. Давайте не будем преподавать ученикам то, что они заведомо не могут понять из-за отсутствия соответствующей подготовки, и не делать всех "юзерами", иначе через пару лет уже не немцы будут искать у нас IT-специалистов, а мы у них.

TopList