От Владимир К. Ответить на сообщение
К Владимир К. Ответить по почте
Дата 03.02.2006 18:49:15 Найти в дереве
Рубрики Россия-СССР; Семинар; Версия для печати

Александр Шень - Информатика: Былое и думы (*+) Статья точно в тему!

http://offline.computerra.ru/print/offline/2001/411/12509/

Информатика: былое и думы
Автор: Александр Шень
Опубликовано в журнале "Компьютерра" №34 от 10 сентября 2001 года

1984

Именно в 1984 году (и Дж. Оруэлл тут ни при чем) академик Андрей Петрович Ершов убедил Политбюро, что надо ввести в школах новый предмет - информатику. (По слухам, главным аргументом была необходимость владения современными технологиями для управления зенитными ракетами или еще чем-то в этом роде. Похоже на правду.) Раз Политбюро решило, надо предмет внедрять - значит, нужны учебники, учебные программы и т. п. В срочном порядке была создана группа авторов под руководством Ершова и Монахова (в основном из сотрудников НИИСИМО - Научно-исследовательского института содержания и методов обучения Академии педагогических наук). Соавторы Ершова писали фрагменты учебника, он их редактировал - и в какой-то момент осознал, что печатать такое нельзя. Тогда он попросил группу математиков (А. Г. Кушниренко, Г. В. Лебедев, А. Л. Семенов) помочь в редактировании - что свелось к полному переписыванию материала. К этому делу был привлечен и я. Разумеется, весь авторский состав был утвержден заранее и потому изменен быть не мог, так что сотрудники НИИСИМО оказались в незавидном положении: под их фамилиями выходил текст, на который они и повлиять-то особо не могли. Пользуясь случаем, приношу им свои извинения как невольный участник той истории.

Поскольку все сроки давно прошли, а напечатать к новому учебному году надо было чуть ли не 4 миллиона экземпляров, работа шла в авральном режиме. Написанные ночью фрагменты текста за день набирались на фотонаборных машинах, и куски пленки с помощью ножниц и клея героическими усилиями редакторов издательства «Просвещение» собирались во что-то связное. (До сих пор, видя знакомые фамилии редакторов в учебниках этого издательства, я вспоминаю их с благодарностью.)

В понимании Ершова (и нашем) предметом курса было изучение алгоритмических конструкций - то самое программирование, которое вторая грамотность. Эти конструкции записывались на «алгоритмическом языке», как называл его Ершов. Язык имел русские ключевые слова («если-то-иначе-все» для выбора, «пока-нц-кц» для цикла и т. д.). Некоторые из этих слов уже использовались в русском переводе описания Алгола-68 (под редакцией Ершова), но конструкцию цикла пришлось заменить: в переводе она читалась как «пока-цк-кц» (while-do-od); не знаю, как цензура пропустила, но уж в школьном учебнике комбинация «пока-цк» была абсолютно немыслима 1.

Ершов, правда, не вполне четко формулировал, как он представляет этот алгоритмический язык: то ли как конкретный язык, на котором можно писать программы (пусть не реализованный, но с четкими правилами), то ли скорее как абстрактный псевдокод, на месте которого знатоки легко вообразят соответствующие конструкции известных им языков. Так что объяснения формальных правил языка сочетались в книге с «примерами из жизни» («если кофе_холодный то подогреть; выпить иначе выпить все»). Мой друг, узнав об этом, сразу же предложил пример: «если нога_поднята то опустить_ногу иначе упадешь все».

Так или иначе, в учебнике разбирались разные алгоритмы, записанные на этом языке (в том числе и весьма непростые; например, мы пытались объяснить, как можно численно решать дифференциальные уравнения из курса физики).

Учебник информатики вышел в двух частях - для 9-го и 10-го класса. Он был переведен на языки народов СССР, и знакомые как-то привезли мне в качестве сувенира книжку, в которой можно было узнать учебник лишь по цвету обложки да по формулам в программах.

Естественно, к моменту начала занятий в школах не было ни машин, ни учителей, которые были бы готовы вести урок по такой странной книге. Ершов, правда, отстаивал осмысленность «безмашинного варианта» преподавания информатики, говоря, что понятие алгоритма является фундаментальным и может изучаться наравне с фундаментальными понятиями математики, а машины нужны только в качестве иллюстраций. (Недоброжелатели в ответ говорили о бассейне в сумасшедшем доме, куда, может быть, нальют воду, когда обитатели научатся плавать.) Думаю, что у Ершова была и задняя мысль: если не «пробить» введение курса информатики в безмашинном варианте, то компьютеры в школах так никогда и не появятся.

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

Вероятно, ближе к жизни был бы учебник, объясняющий основы программирования на бейсике, который все-таки хоть где-то можно было посмотреть живьем. (Но в то время я, как и другие авторы учебника, не понимал, что само по себе знакомство с идеей автоматического выполнения программы, пусть даже и на убогом языке, является ценнейшим интеллектуальным опытом для школьников. Впрочем, все равно стратегическое решение оставалось за Ершовым.) Такие учебники и пособия потом стали появляться - видимо, под давлением жизни.

Преподавание началось (что было неизбежно - раз партия сказала «надо»); одновременно пришлось готовить учителей. В частности, обязанность читать курсы для них была возложена на МГУ, и возник вопрос, что же на них преподавать. В экстренном порядке два сотрудника университета (Д. В. Варсанофьев и А. Г. Дымченко) написали интерпретатор алгоритмического языка, который работал на машине PDP-11/40 (ее цельнотянутая копия называлась СМ-4) в многотерминальном режиме. Точнее, даже не интерпретатор, а «редактор-компилятор»: на экране можно было редактировать программу, а справа сразу же появлялись сообщения о синтаксических ошибках; программу можно было запустить, и по ходу ее выполнения рядом с текстом показывались значения переменных и т. д. До сих пор не могу поверить, что такая вещь обслуживала восемь (или шестнадцать, не помню точно) терминалов на машине с 256K памяти без видимых задержек при редактировании, и написана она была за неделю или около того. Эта система получила название «E-практикум». (Конечно, в ней было полно ошибок и недоделок, но в основном все работало.)

Наряду с учебниками в программу информатизации школы входили разработка и изготовление компьютеров. Дело поручили двум министерствам - радиопромышленности и электронной промышленности, которые тем самым выступали как конкуренты. Было составлено техническое задание на школьные компьютеры (насколько я помню, 64Kбайт фигурировали как желательный, хотя и необязательный объем оперативной памяти). Параллельно в Японии закупили (у фирмы Yamaha) довольно большую партию машин стандарта MSX: процессор Z80, килобайт 20 доступной оперативной памяти, еще несколько килобайт можно было выкроить из видеопамяти; операционная система называлась MSXDOS и представляла собой версию CP/M. К этим машинам потом нашли (чтобы не сказать - украли) компилятор урезанного языка C и одну из первых версий Turbo Pascal. В школу обычно поставлялась одна машина с дисководом (на 720K) и еще десяток машин без дисковода.

Через некоторое время министерства-конкуренты представили свои разработки. Радиопромышленность подготовила к производству спроектированную на физфаке МГУ машину «Корвет» на основе процессора 8080 (советская копия которого к тому времени выходила под названием К580). На ней можно было запускать CP/M и работавшие под CP/M программы. Но мне больше знакома разработка Министерства электронной промышленности, поскольку по странному стечению обстоятельств я был включен в состав госкомиссии по приемке которая должна была эту машину одобрить.

Предлагавшийся к сдаче компьютер был недопеределанным вариантом БК-0010, и те несколько экземпляров, которые успели сделать для демонстрации «компьютерного класса», были собраны «на живую нитку». По замыслу разработчиков буквы на экране изображались в матрице 5x7, но если присмотреться, было видно, что на некоторых экземплярах была матрица 3x7, и тем самым буква «Ш» изображалась сплошным прямоугольником. Комиссии стало ясно, что компьютер годен только на выброс. Но надо было формально обосновать свое решение, сославшись на невыполнение пунктов технического задания. Это было не так просто, тем более что агрессивно настроенные работники завода (ведь для них речь шла о срыве важнейшего задания партии) все отрицали, да и сами требования были сформулированы плохо. Вот еще эпизод: в задании было указано, что должна быть возможность изготовления «твердой копии» (hard copy), а принтера в составе класса не было. Но работники завода утверждали, что под твердой копией понимается запись на дискету, а если дискета недостаточно твердая, можно записать и на магнитофонную кассету… Еще помню, как-то заводское начальство отвело меня в сторонку и несколько угрожающе сказало: вам, дескать, компьютер не нравится, а академик такой-то его поддерживает. Я отвечал уклончиво, что бывают разные мнения и т.п. Тогда меня спросили, не хочу ли я поговорить с академиком. Видимо, мой ответ «почему бы и нет?» был неожиданным, так как на этом разговор прервался и академика я так и не увидел.

В итоге, найдя какие-то формальные несоответствия, несколько членов комиссии, в том числе и я, написали особое мнение о том, что принимать компьютер нельзя. Вскоре меня вызвали в комитет партийного, а потом и в комитет народного контроля, - видимо, начался внутриведомственный скандал. Так или иначе, через некоторое время другая комиссия (куда меня, естественно, уже не включили) приняла исправленный вариант устройства, известный под названием УКНЦ.

Когда «Ямахи», «Корветы» и УКНЦ появились в школах, ситуация стала еще более странной: раньше был просто безмашинный курс информатики, а теперь тот же безмашинный курс предлагалось преподавать в присутствии машин, на которых все иначе (никакого алгоритмического языка нет, а есть в основном бейсик). Пытаясь заполнить этот пробел, группа Кушниренко выпустила новый учебник (в 1988 году как пробный, а в 1990-м улучшенный вариант массовым тиражом, его авторы А. Г. Кушниренко, Г. В. Лебедев и Р. А. Сворень) и версии «Е-практикума» для школьных машин. К сожалению, этим занималось всего несколько человек (прежде всего М. Эпиктетов), а работа была хлопотная (особенно учитывая крайнюю ограниченность ресурсов вышеупомянутых компьютеров), и по большому счету не была доведена до конца. Не было также и подробного описания языка. В общем, «ершол» не стал «русским бейсиком», хотя и продолжал использоваться в некоторых школах (потом появилась версия и для IBM PC). А жаль. Мне до сих пор кажется, что

опыт составления программ - самое ценное, что может получить школьник на уроках информатики (не с точки зрения будущей профессии, ведь мало кто будет программистом, а с точки зрения интеллектуального развития);

учебник, написанный группой Кушниренко, и программное обеспечение к нему остаются самой серьезной попыткой в этом направлении (по крайней мере, в России). Но это направление оказалось непопулярным и было вытеснено (как видно из более поздних вариантов программ и учебников) малосодержательными разговорами общего характера о «роли информации в обществе», а также курсами «пользователей Microsoft Windows»…

Чему можно учить в школе?

На «уроках информатики» могут происходить самые разные вещи. Ниже приводится не претендующий на полноту перечень с короткими комментариями.

Использование обучающих программ для преподавания других предметов (не связанных с программированием).

Говорили, что компьютер (или Интернет) приведет чуть ли не к революции в образовании, появятся обучающие программы и т. п. Действительность оказалась более чем скромной. Есть, конечно, и организационные трудности (согласование расписания, недостаток компьютеров), но главная причина в том, что это вообще не очень получается.

Даже тренажеры (скажем, клавиатурный), тестовые задания и другие средства «малой механизации» прижились плохо, не говоря о более интеллектуальных вещах. Я не видел ни одного школьника, который бы научился чему-то «некомпьютерному» благодаря компьютерной программе. Умеренно полезные программы бывают (скажем, для иностранных языков), но не более.

Использование ПО как рабочего инструмента при изучении других предметов и творческой деятельности школьников.

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

Это очень ценно, но только в тех случаях, когда и без компьютера было бы хорошо (учителя талантливые, школьникам интересно), а такое бывает редко. В противном случае использование компьютера вырождается в списывание рефератов из Сети, чаты, игры, просмотр фривольных картинок и т. п.

В следующих пунктах компьютер и программы являются самостоятельным предметом изучения, а не вспомогательным средством.

Начальный замысел Ершова - овладение «алгоритмической культурой», программирование как «вторая грамотность».

Дело непростое, но очень ценное. С моей точки зрения, это в наибольшей степени обогащает интеллектуальный опыт школьника. И не так важно, какой язык используется (все равно программистами будут немногие).

Основная проблема: нужен учитель, который умеет программировать (и администрация школы не должна этому препятствовать, ссылаясь на какие-то программные требования к умениям и навыкам по информатике).

Общее знакомство с окружающим компьютерным миром - как экономическая география или история. Раз вокруг много компьютеров и электроники, желательно, чтобы люди хотя бы в общих чертах представляли, как эта техника работает.

Проблема в том, что без умения программировать (и без знания основ физики) такие сведения неизбежно превратятся в описательную болтовню.

Прививка от компьютерофобии.

Как говорят злые языки, поскольку нет надежных программ, остается растить устойчивых к отказам пользователей. В этом есть резон, хотя не вполне очевидно, насколько иммунитет к одной программе предотвращает страх перед другими.

Наконец, простое соображение: раз на рынке труда есть спрос на «менеджеров (вариант: секретарш) со знанием Office», почему бы школьников не обучать этому пакету?

Конечно, при этом занятия вырождаются в изучение конкретных команд конкретных продуктов фирмы Microsoft. Вдобавок продукты этой фирмы так неустойчивы (в смысле - часто меняются и мутируют), что к тому времени, как выпускник школы начнет трудиться, версии (и проблемы) скорее всего будут другими.

Если бы директором был я…

то - подходя реалистически - при закупке компьютеров для школ ничего бы не придумывал, а исходил из цифры $350 на компьютер, $250 на монитор и попытался получить задешево ($30-70) лицензии на комплект (Windows+Office) старых продуктов фирмы Microsoft (что, видимо, не просто). К такому классу нужен сервер за $1000-1500. При этом экономить надо скорее на производительности, а не надежности или эргономике;

или - как идеалист-романтик - попытался найти подрядчиков, поставляющих классы с сопровождением (можно использовать и Linux, и Windows, но легальные копии). Компьютеры могут быть и second-hand, если заботу об их оперативной замене берет на себя подрядчик;

или - совсем отрываясь от действительности - попытался бы заказать учебно-методический комплект для курса программирования (программное обеспечение, учебники, пособия по языкам программирования, сборники заданий, системы тестирования и т. п. - все должно быть согласовано и предустановлено, так что в школе останется лишь включить компьютер). Базовой операционной средой можно взять DOS на машинах школьников плюс UNIX на файл-сервере (или UNIX везде). Что касается языка программирования, я бы заказал три конкурирующих проекта: на основе специальных сред типа «Лого-Роботландии» и т. п., на основе «E-практикума» (группы Кушниренко) и на основе Turbo Pascal.