Как это начиналось (заметки очевидца)
Андрей Петрович Ершов — ученый и человек

Как это начиналось (заметки очевидца)

[1]

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

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

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

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

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

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

Учебник информатики вышел в двух частях, соответствующих двум последним годам обучения; тогда они назывались 9 и 10 классами. Вторая часть готовилась на следующий год, тоже в спешке, но уже чуть меньшей. Как и все учебники в то время, он был переведен на языки народов СССР, и мои знакомые привезли мне из горного похода (в качестве сувенира) книжку, в которой можно было узнать перевод этого учебника по цвету обложки и по формулам в программах (хотя ключевые слова были переведены до неузнаваемости).

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

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

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

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

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

Наряду с учебниками в программу информатизации школы входили разработка и изготовление школьных компьютеров. Это было поручено двум министерствам — радиопромышленности и электронной промышленности, которые тем самым выступали как конкуренты. Было составлено техническое задание на школьные компьютеры (насколько я помню, 64Kбайт фигурировало как желательный, хотя и необязательный объем оперативной памяти). Параллельно была куплена (в Японии, у фирмы Yamaha) довольно большая партия машин серии MSX (процессор Z80, доступной оперативной памяти там было килобайт 20 или около того, еще несколько килобайт можно было выкроить из видеопамяти; операционная система называлась MSX DOS и представляла собой некоторую версию системы CP/M). К этим машинам потом нашли (чтобы не сказать — украли) компилятор урезанного языка C (не помню точно, какой фирмы) и одну из первых версий Турбопаскаля (фирмы Borland). В школу поставлялась (обычно) одна машина с дисководом на 720K и еще десяток машин без дисковода; предполагалось, что как-то можно их связать в «сеть» (по интерфейсу типа RS-232), но программное обеспечение для этого работало плохо.

Надо сказать, что «Ямахи» довольно широко распространились по стране (если сравнивать с тогдашними советскими «персональными компьютерами»). Тогда в ходу были машины «ДВК» (Диалоговый Вычислительный Комплекс), по системе команд совместимые с PDP, но на микропроцессоре российской разработки), а также машины «Искра» (которые запомнились прежде всего большими восьмидюймовыми дискетами) и «Агат» (аналог Apple). Все эти машины прежде всего отличались крайне низкой надежностью работы (в основном клавиатуры и дисковода). Помню, что когда я в составе какой-то комиссии пришел на завод, где делались «Агаты» (на Дмитровском шоссе), и нам их расхваливали, я заметил, что демонстратор, заводской начальник, как бы невзначай кладет руку на дисковод каждый раз, когда что-то читается с дискеты. Я его спросил, и он был вынужден признаться, что без этого читаться дискета не будет. (Раздосадованные школьники переправляли название на «А, гад!».) Так что «Ямахи» в каком-то смысле были стандартом надежности — на клавиатуре не западали клавиши, на экране изображение не дрожало и т. п. (Дисковод, впрочем, был в отдельной внушительной — килограмма на два — коробке, которая присоединялась толстенным шнуром, вставлявшимся в разъем для игрового ПЗУ. Шнур этот загораживал часть экрана и часто ломался от сгибов.)

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

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

Еще помню, что как-то заводское начальство отвело меня в сторону и сказало несколько угрожающе, что вот вам, дескать, компьютер не нравится, а академик такой-то (увы, я забыл фамилию) его поддерживает. Я отвечал уклончиво, что бывают разные мнения и т. п. Тогда меня спросили, не хочу ли я поговорить с академиком. Видимо, мой ответ «Почему бы и нет?» был неожиданным, так как на этом разговор прервался и академика я так и не увидел.

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

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

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

Примечание

[1]  Текст впервые был опубликован в журнале «Компьютерра» (№ 34 от 10 сентября 2001 года),  впоследствии доработан специально для настоящего сборника.

Из сборника «Андрей Петрович Ершов — ученый и человек». Новосибирск, 2006 г.
Перепечатываются с разрешения редакции.