Летние школы юных программистов: зачем и как.
М. Ю. Колодин
В самолёте Ленинград—Новосибирск школьники переговариваются между собой: то, куда и зачем они летят, для них впервые. Мы закончили Заочную школу и год или два занимались программированием в ЛИАПе, но предстоящая Летняя школа в новосибирском Академгородке — явление для нас совершенно новое. Ко мне оборачивается «знаток»:
—Вот, к примеру, М-6000 знаешь?
— Да.
— СМ-1 помнишь?
— Да.
— Ну вот, совсем не похоже...
Женя Забокрицкий знает, о чём говорит: он уже был в Новосибирске, и эта поездка для него — вполне понятное дело.
Так оно и оказалось. Всё было непривычным. И сам Академгородок, и Летняя школа, и Университет, и ВЦ. Но — в высшей степени замечательным.
Это была VII ЛШ. Последняя из тех, что проводились в самом Академгородке. Жили мы в общежитиях Университета на улице Пирогова. Там же, на стадионе, была и зарядка — в те времена к этому относились достаточно строго. А комплексный обед — в столовой на Морском проспекте.
Занятия проходили в Университете. Все школьники были разделены на три потока. Первый из них составляли новички. Занятия и само программирование были ориентированы, в основном, на Паскаль, а также на Бейсики первых для нас персональных машин Apple и Olivetti. Кстати, даже там, где, казалось бы, было не избежать примитивности Бейсика, Геннадий Анатольевич Звенигородский нашёл способ сделать лекцию полезной и в некотором роде надъязыковой: мы изучали сразу два языка, два разных Бейсика одновременно. Доска (и тетрадь) была разделена на два столбца, и в каждом шло описание языка одной из этих машин, с указанием на сходства и различия реализаций. На этих машинах мы, в основном, рисовали. Паскаль, а также уже давно, по крайней мере, теоретически, известная нам Рапира были на БЭСМ-6. Вместе с Рапирой была Шпага («школьный пакет графических процедур, адаптированный») — вкратце описанная в квантовских уроках графическая библиотека. Некоторые рисунки школьников были вполне удачными, прежде всего, те, в которых активно использовалась математика, полярная система координат; некоторые обычные рисунки также смотрелись весьма мило. Первый поток вела, в основном, Нина Ароновна Юнерман. Второй и третий потоки на той ЛШ вели, соответственно, Геннадий Анатольевич Звенигородский из ВЦ СО АН СССР и Андрей Николаевич Терехов с матмеха ленинградского Университета. Они занимались реализацией языка Рапира, соответственно, на Агатах и на ЕС ЭВМ.
Работа с машинами была только на ВЦ. Самым страшным наказанием для нас было: «Оставим без машинного времени». Тогда Вычислительный центр был для меня невероятно большим зданием. Заблудиться в нём было проще простого. Приходилось консультантам, которые с нами работали, не только заниматься машинными делами, но и элементарно разводить нас по терминальным комнатам («терминалкам»). Консультанты — новосибирские школьники, которые сами относительно недавно закончили обучение, но уже имели немалый опыт практической работы и на ВЦ были полностью как свои.
Был Оргкомитет — А. Ершов, Г. Звенигородский, Ю. Первин, Н. Юнерман. Входили в рабочую группу Оргкомитета и школьники. Прежде всего, это Н. Глаголева, Л. Бараз, В. Цикоза, П. Земцов, Е. Налимов, А. Буднева, Е. Елинер, И. Мавлютов, Е. Краштан, Е. Музыченко, Е. Каленкович, А. Филатова, А. Ивания, Е. Боровиков, Л. Рабинович, А. Петров, С. Гавриленко, С. Терехов, Н. Погосян. В числе преподавателей ряда Школ были, кроме того, Н. Бровин, А. Терехов, А. Филиппов, А. Кривцов, О. Титов, А. Берс. В разработке ПО участвовали таже М. Зайцев, А. Грабарь и другие. На каждую ЛШ специально приглашались ведущие специалисты, прежде всего, по информатике для проведения семинаров, чтения лекций. Не забудем и тех, кто обеспечивал жизнь всех участников школы: например, врача.
Традицией тех и, частично, современных Школ были конференции. Обычно их было две — в начале и в конце Школы. На первой школьники рассказывали о своих работах, выполненных до ЛШ, дома, на второй — о том, что было сделано за время самой ЛШ. Надо сказать, что учёба и работа были весьма непростыми: за 2 недели нужно было вжиться в новую среду, учебную и человеческую, изучить некое новое средство, язык, машину, технологию, и сделать на них нечто полезное, по крайней мере, значимое на уровне школьника. Уже тогда эти конференции моделировали настоящие научные собрания. Часто возникали обсуждения, целые дискуссии. Даже простые задачи могли вызвать вопросы. Например, на той ЛШ несколько человек, в том числе и я, сделали программы определения дня недели по году, месяцу и числу — задача традиционная, но каждым она когда-то решается впервые. Так было и у нас. Я тогда заметил, что из-за смены дат в России с 1 на 14 февраля 1918 года на 13 дней, т.е. на неполное число недель, расчёт дней недели до 14.02.1918 необходимо уточнять с учётом этого факта. Мне кто-то возразил, началось обсуждение, и мне, впервые в жизни, пришлось отстаивать свою правоту в огромном зале — дело происходило в Институте геологии. Это было важное событие и большой опыт. И так оно было для многих. Плюс использование эпидиаскопа и указки — всё по-серьёзному.
Замечательной была и традиция костров и песен под гитару. А.Н. Терехов хорошо знал Битлов и умело это демонстрировал. Там же, на Пирогова, в лесочке, был устроен костёр, и песни и рассказы звучали допоздна. Уже тогда начало собираться «литературное обеспечение ЭВМ» («ЛО ЭВМ»).
Впрочем, значительно большее развитие ЛО ЭВМ получило на VIII и IX ЛШ, которые проходили в лагере «Сибиряк» бюро международного молодёжного туризма «Спутник», между Академгородком и Бердском. Там мы ставили «полнометражные» компьютерные оперетты, например, «Прекрасная Ада» — с ариями под гитару, костюмированным представлением на сцене, где, скажем, в роли барона Фортрана был Л.Ф.Штернберг, преподаватель Школы и мастер «Фразеологии программирования» (сейчас бы мы, скорее, говорили бы о технологии). Жизнь «в лесу» этому романтическому настрою весьма способствовала.
Хочется отметить важный, не только технический, момент. Тогда на ЛШ только появились «Агаты». Их было всего несколько штук. Надёжность техники оставляла желать лучшего, и только самоотверженными усилиями специалистов по вычислительной технике О. Титова, А. Кривцова, А. Филиппова и других энтузиастов её удавалось оживлять и использовать практически круглосуточно. Машинного времени всё равно не хватало. И тем не менее, сотня школьников успевала даже на паре персональных компьютеров сделать очень многое. Сейчас, мне кажется, при значительно лучших технических условиях, такая производительность не достигается.
Важно, что с самого начала школьники привлекались к созданию школьных же программ, к разработке системного программного обеспечения — операционной системы, редакторов, трансляторов. Это дало настолько большой профессиональный опыт, что многие из нас до сих пор вспоминают его с благодарностью и пользуются освоенными тогда приёмами.
Основная форма проведения большинства Летних школ — мастерские (при Г.А. Звенигородском они ещё так не назывались, но фактически смысл был тот же). Они заключались в том, что мастер — специалист, который может и хочет вести некоторую тему, — предлагает её школьникам для изучения и разработки соответствующих программ. В начале Школы обычно проходит целая презентация мастерских. Школьники выбирают наиболее интересующую их тему и приходят к мастеру. В течение Школы они вместе занимаются и на выходе имеют программу, о которой докладывают на заключительной конференции. Большинство мастерских следует признать удачными. Тематика мастерских — самая различная: от простых учебных программ начального уровня до весьма сложных системных разработок (языки, операционные системы, редакторы), много было и игровых программ (сами и писали, и играли). Мои школьники справлялись со многими сложными вещами, например, реализациями языков Форт (на Ассемблере), Бейсик и Оккам (на Форте) и др. За время Школы успевали сделать наиболее существенные части работ, не всегда доводившиеся до полного совершенства. Иногда эти работы завершались участниками дома, после возвращения с Летней школы, или в самом Новосибирске. В последнее время большой интерес проявляется к графическим, сетевым, низкоуровневым и веб-приложениям. Игры были в почёте всегда; но, по-моему, не стоит увлекаться на Школах компьютерными игрушками, можно только их делать.
Иногда мастерские заявляются как студии или превращаются в таковые по ходу занятий, что означает чисто учебный характер мастерской, без обязательной выдачи программного продукта. В принципе, количество студий следует сокращать — они ведут к слишком высокой пассивности участников — и оставлять их для младших участников или новичков, которые ещё не умеют самостоятельно писать программы и только приобщаются к полноценной работе с компьютером. Например, студия «пресс-центр»: в ней могут участвовать самые младшие школьники и в сотрудничестве с другими мастерскими выдавать свой результат для всей Школы. Для них коллективная работа будет полезна и в рамках студии. Неудачной была попытка участия школьников сразу в нескольких мастерских; вопреки ожиданиям и обещаниям, это фактически приводило к неучастию ни в одной. В целом же идея мастерских очень удачна и жизнеспособна; её нужно развивать и далее.
Впоследствии летние школы перебрались в Политехникум (он же — Высший колледж информатики) у Шлюза (на Русской улице). С одной стороны, это было удобно: и жильё, и большая часть техники, и столовая, и конференц-зал находились рядом, и природа была в порядке... но что-то там было уже не то. У Политехникума была своя задача — привлечение новых абитуриентов, и всё обучение, все постановки задач делались с упором на это. Увы, цели и лучшие традиции прежних ЛШ при этом были забыты. После нескольких лет существования школ там их уровень существенно понизился и считать их продолжением наших ЛШ было уже нельзя; хотя как школы колледжа они вполне уместны.
На несколько лет ЛШ ушли в пассивное существование: о них помнили, их продолжения многие хотели, но выполнить это в середине 90-х годов не удалось. И только на грани нового тысячелетия было решено и практически поддержано возобновить Летние школы — на старых традициях, но с новой технической (аппаратной, программной) и методической базами. И это получилось — первая новая школа прошла с большим успехом на Семинском перевале на Алтае летом 2001 года. Это ещё не история, и писать о ней, наверное, рано. Но самых тёплых слов заслуживают те, кто поднял всё это сложное дело, прежде всего, А.Г. Марчук, Л.В. Городняя, Т.И. Тихонова, А.А. Берс и другие. Как главный мастер той Школы должен подтвердить, что они сделали очень большую и важную работу. Не меньшей была и работа студентов, которые обеспечили возможность проведения Школы технически и сами проводили занятия. Появились и новые (и вернулись старые) преподаватели, которые вели мастерские и читали лекции. Вторая школа была в 2002 году в обновлённом, вернее, почти полностью разваленном за годы перестройки «Сибиряке». Сложности в проведении были, но опять же с ними справились; Школы могут преодолеть любые технические трудности, но не идейные и организационные.
Фактически Летние школы прошли несколько этапов; даже места проведения школ в какой-то мере отражают эти этапы: первые, экспериментальные Школы; полномасштабные Школы в Академгородке и в «Сибиряке» при жизни Геннадия Анатольевича Звенигородского; Школы там же после его смерти, «школы учеников»; Школы в Политехникуме; возрождённые Школы. Каждый этап был чем-то значим, в каждой из этих Школ учились и жили люди, множество школьников, студентов, преподавателей, организаторов — для всех нас это важнейшая часть нашей жизни.
Сейчас очень важно, чтобы и об этих Летних школах мы не стали вспоминать уже завтра как о давно прошедшей истории. Их необходимо продолжать. То, что для этого нужно, уже известно и подробно описано. Самое главное — команда единомышленников с большой светлой идеей. Если это будет — будут и новые успешные школы.
Автор благодарит О. Архангельского и С. Гавриленко за помощь в подготовке материала.
Из сборника "Новосибирская школа программирования. Перекличка времен". Новосибирск, 2004 г.
Перепечатываются с разрешения редакции.