Успехи юных программистов
Ярко-красные корпуса цветных «Шилялисов» до неузнаваемости меняют привычную обстановку школьного класса. Вот красота, включай телевизор и смотри! Действительно, ученики целый урок смотрят на экраны, причем гораздо с большим интересом, чем дома. Удивляются именитые гости со всех концов Союза: в классе два десятка машин, каждой из которых в недавнем прошлом хватило бы для целого НИИ. Не удивляются лишь те, кому довелось здесь учиться. Для них кабинет вычислительной техники с «АГАТАМИ» на каждом столе — такая же реальность, как спортзал, библиотека или столовая. Достаточно увидеть, как бегают по клавиатуре их пальцы, меняя изображение экрана, чтобы убедиться: это хозяева современной вычислительной техники.
У десятиклассников новосибирской средней школы № 166 сегодня день трудового обучения. Пока не включены машины, на столах разворачиваются распечатки программ, и бригады из двух-трех человек, склонившись над ними, вполголоса обсуждают планы предстоящей работы. Из шкафа извлечен ящик с магнитными дисками: каждая бригада должна найти диски с требующимися ей программами. Шуршат конспекты, листы отчетов. Но вот включен рубильник, и один за другим зажигаются цветные экраны. Тихо щелкают дисковые накопители, на экранах появляются тексты программ...
Со стороны очень сложно следить за работой программиста, проникнуть в существо его действий за пультом машины. Женя Зыбарев, мой сосед по столу, полностью поглощен экраном и клавишами, и я, не решаясь оторвать его от дела, пытаюсь самостоятельно разобраться в происходящем. Курсор, светлый мерцающий прямоугольник, подчиняясь нажатию клавиш, бегает по экрану, оставляя за собой изменения в тексте. Вот строки раздвигаются, освобождая место для какого-то дополнения, вот они уже бегут по экрану и скрываются за его верхней кромкой. Снова щелкает дисковод — это Женя записывает на диск отредактированный программный модуль и вызывает следующий для редактирования. Затем еще и еще... Я даже не замечаю, в какой момент он дал команду исполнения своей программы. Экран вдруг преобразился; в ярких, сочных цветах на нем возникает знакомая картинка из учебника физики: два груза на наклонной плоскости, нить, блок. Нажатие клавиши — и картинка превращается в мультфильм: подчиняясь закону Ньютона, грузы приходят в движение.
Женя откидывается на спинку стула; кажется, он вполне доволен результатами. Я решаю, что пришло время обратиться к нему за разъяснениями.
— Эта учебная программа «Наклонная плоскость», — начинает он, — предназначена для уроков физики в восьмом классе. Показывает, как движутся тела по наклонной плоскости. Вы выбираете углы наклона, массы тел, коэффициенты трения, и на экране видите результат.
— Значит, демонстрация физического эксперимента?
— Да, но не только. Программа может еще и выполнить расчет, подсказать формулы и проверить, как усвоен материал.
— Как же твоя программа узнает, что ей делать?
— Вы сами ей это подскажете. Вот, смотрите, — и Женя пододвигает мне клавиатуру своего «АГАТА», — вам нужно только отвечать на ее вопросы.
На экране появляется заголовок: «Учебная система ШКОЛЬНИЦА. Программа НАКЛОННАЯ ПЛОСКОСТЬ» и первый вопрос: «Хотите ли вы изучить теоретический материал (1), провести опыт (2), проверить свои знания (3)?» Нажимаю клавишу «2», и передо мной новый Запрос: «Укажите углы наклона». Так, беседуя с машиной при помощи экрана и клавиш, я вновь добираюсь до движущихся грузов.
— Сложно, наверное, запрограммировать такую подвижную картинку?
— Не слишком. В языке «Рапира» есть очень удобные графические процедуры, так что графика обычно хлопот не причиняет. Самое сложное, по-моему, это диалог; его надо организовать так, чтобы человеку было легко и удобно. Да еще предусмотреть проверку всех ответов и выдачу сообщений об ошибках: программа должна быть готова к любому, даже бессмысленному ответу. С ней ведь будут работать совсем неопытные пользователи. Да и вообще от ошибки никто не застрахован. Вот, например, хотели вы ввести угол в 15 градусов, а вместо «1» случайно нажали клавишу « — ». Что получится? « — 5». При таком значении угла наклона программа, конечно, работать не может. Если она просто будет прервана, вы даже не успеете сообразить, что случилось. Значит, надо выдать сообщение: «Ошибочное значение угла. Повторите ввод». Поэтому с диалогом приходится основательно повозиться, прежде чем сдать программу. То есть окончательно проверить, испытать, оформить к ней всю документацию. После этого программа считается принятой в систему «Школьница». Мы обязательно должны сдать эту программу, чтобы получить зачет.
— С кем над ней работаешь?
— С Виктором Емельяновым, — Женя указал на склонившегося за соседней машиной одноклассника, — у нас с ним бригада!
На экране перед Виктором разворачивается совсем другая картина: электроны и «дырки» весело бегут навстречу друг другу, гонимые электрическим полем.
— Это еще одна наша программа: «Полупроводниковые приборы», — поясняет Виктор. — Первая часть — «Диод» — уже почти готова, но надо еще сделать вторую — «Транзистор». Это будет посложнее.
— Вы сами себе выбрали такие задания?
— Вообще-то сами. Преподаватель, конечно, помог составить техническое задание, посоветовал.
Позвольте, а где же преподаватель? Добрых полчаса прошло, а его и не видно. Оказывается, он здесь, в классе, с самого начала занятий. Только место его не у доски, а рядом с учениками, за пультами их машин. Потому-то его и не сразу заметишь.
Знакомимся: Юрий Первин, старший научный сотрудник Вычислительного Центра СО АН СССР, он же — мастер производственного обучения. Школьной информатикой занимается уже давно: многие сегодняшние программисты знакомились со своей будущей профессией по его книге «Основы Фортрана».
В 11-м номере читайте о видном государственном деятеле XIXвека графе Александре Христофоровиче Бенкендорфе, о жизни и творчестве замечательного режиссера Киры Муратовой, о друге Льва Толстого, хранительнице его наследия Софье Александровне Стахович, новый остросюжетный роман Екатерины Марковой «Плакальщица» и многое другое.
Рассказ
Литературные уроки
Андрей Ершов, академик АН СССР, заведующий отделом информатики Вычислительного Центра Сибирского отделения АН СССР