жизнь ученого в фотографиях, документах и воспоминаниях


Об ученом

Легендарная личность С.С. Лаврова и её влияние на преподавание программирования в отечественном программировании

Косовский Н.К. (Санкт-Петербург)

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

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

Невозможно кратко отобразить все этапы его многогранной деятельности. Однако нельзя и не упомянуть, хотя бы кратко, важные этапы его биографии, приведенные в [1], где он пишет: "чистая математика не для меня".

Родился Святослав Сергеевич в 1923 году в Петрограде в семье инженера. Его мать закончила Бестужевские курсы (располагавшиеся в здании на 10-й линии Васильевского остова, где потом он преподавал, будучи профессором, заведующим кафедрой Ленинградского государственного университета).

До войны он в 16 лет закончил среднюю школу, был среди победителей ленинградской математической олимпиады и успел закончить второй курс математико-механического факультета Ленинградского университета. Важно, что уже тогда он участвовал в семинаре по математической логике (в то время суперновой у нас в стране математической дисциплине), руководимом А.А. Марковым.

Затем во время войны было ополчение, обучение в Ленинградской военно-воздушной академии (получил специальность военный "инженер-механик" в 1944 г.). Он воевал в эскадрилье авиационно-истребительного полка, входившего в состав 1-го Белорусского фронта, был награжден орденом Красной Звезды, медалями "За освобождение Варшавы", "За взятие Берлина" и "За победу над Германией".

После окончания Великой Отечественной Войны в 1945 году С.С. Лавров обратился с рапортом по команде с просьбой использовать его знания лучше, чем он мог это делать, служа в эскадрилье. Почти через год состоялась его встреча с Сергеем Павловичем Королёвым. В начале 1947 года С.С. Лавров начал работать в Подлипках в ОКБ-1 у С.П. Королёва, где занимался баллистикой. Он готовил все первые полётные задания при пусках трофейных Фау-2, а затем и наших советских ракет [2].

В 1954 году он с отличием заочно окончил механико-математический факультет МГУ. За удачные запуски баллистических ракет он был награжден орденом Ленина. В 1957 году присутствовал при запуске первого искусственного спутника (за проведенные расчеты получил Ленинскую премию – диплом лауреата № 121). В 1958 году стал доктором технических наук без защиты диссертации по совокупности работ.

С.С. Лавров входил в группу поддержки первого космического полёта человека, осуществленного Ю.А. Гагариным (награждён вторым орденом Ленина). Святослав Сергеевич возглавлял вычислительный центр ОКБ-1 у С.Н. Королёва до 1966 года, затем заведовал отделом математического обеспечения ЭВМ Вычислительного центра АН СССР до 1971 года, по совместительству преподавал и заведовал кафедрой мех-мата и факультета ВМиК МГУ (1959-1971 гг.).

Первая версия транслятора с Алгола 60, написанная группой под руководством Святослава Сергеевича, заработала весной 1962 года – даже раньше, чем трансляторы, создававшиеся другими группами в академических институтах, возглавлявшимися А.П. Ершовым, М.Р. Шура-Бурой и Э.З. Любимским.

В 1966 году С.С. Лавров был избран членом-корреспондентом АН СССР по специальности "Автоматическое управление".

Появление С.С. Лаврова в 1971 году на математико-механическом факультете Ленинградского государственного университета связано с именем члена-корреспондента АН СССР Сергея Васильевича Валландера, который вместе с Георгием Петровичем Самосюком, бывшим в то время директором ВЦ ЛГУ, уговорили его переехать в Ленинград. (90-летие со дня рождения С.В. Валландера отмечалось проведением международного семинара на нашем факультете в феврале 2008 года.) Все трое были фронтовиками, что, по-видимому, позволило достаточно легко найти общий язык. Городские власти предоставили семье Святослава Сергеевича квартиру.

Святослав Сергеевич возглавил кафедру математического обеспечения ЭВМ. Его заместителем в то время был Игорь Леонидович Братчиков.

У Святослава Сергеевича было множество аспирантов, в том числе и иностранных. Каждый семестр он неоднократно участвовал в научных и научно-практических конференциях. Ему удалось организовать в вычислительном центре ленгосуниверситета договор на 1 миллион рублей по созданию программного обеспечения для МВК "Эльбрус", в частности, реализации языка Паскаль.

Таким образом, в классическом университете ему удалось создать атмосферу обширной научной деятельности в области программирования.

Моё тесное сотрудничество со Святославом Сергеевичем началось в 1972 году, когда он предложил мне стать ученым секретарем кафедры математического обеспечения ЭВМ. В то время прошло 2 года с момента защиты моей кандидатской диссертации. Поэтому, по сути дела он был моим учителем в области делопроизводства и организационной деятельности. Помню его первоначальное требование: на каждой бумаге должен стоять год, что по молодости лет мне казалось удивительным. Теперь, конечно, я обязательно проверяю наличие года на любой важной бумаге, поскольку сейчас у меня годы быстро сменяют друг друга.

С 1977 по 1986 год С.С. Лавров продолжил руководство кафедрой на общественных началах. Долгое время работал на ней профессором по совместительству. Последующая его основная деятельность проходила в Институте теоретической астрономии РАН и в Институте прикладной астрономии РАН.

Запомнилось празднование его 60-летия в 1983 году. Оно происходило в ресторане "Метрополь", что характеризовало его широкую и хлебосольную натуру.
Всем преподавателям кафедры он дарил свои книги сразу после их выхода из печати. В своих книгах С.С. Лавров собирал практически полезные элементы программистской теории (см., например, книгу 1971 г. издания [3]).

Под "хорошими" алгоритмами трансляции С.С. Лавров вместе с А.П. Ершовым понимали линейные по времени алгоритмы, под "неплохими" – алгоритмы с логарифмическим замедлением, под "предельно допустимыми" – квадратичные, а в начале нового столетия даже кубические.
В [1] С.С. Лавров фиксирует свое убеждение в "бесперспективности Алгола 68, если не полной, то в сравнении с ролью, сыгранной Алголом 60". В качестве альтернативы Алголу 68 Лавровым с сотрудниками был предложен язык АБВ (Анализатор, База, Вычислитель).
Святослав Сергеевич оспаривал точку зрения, что "естественный язык, пусть даже соответствующим образом ограниченный, может служить научным средством общения человека с ЭВМ" [1].

Он, в частности, критиковал законотворчество, так как "... в жизни закон, направленный на пресечение преступлений той или иной категории, обычно меняет методы, применяемые преступниками, на новые — "легальные" с позиций этого закона" [1].

Ясное дело, что некоторые критические выступления С.С. Лаврова расширили когорты не только его сторонников, но и недоброжелателей.

В то же время его программистские способности и опыт никем среди знакомых с его деятельностью не подвергался сомнению.

Большое количество книг, изданных и написанных при участии С.С. Лаврова, способствовало не только популяризации различных аспектов программирования, но и демонстрировало стиль, практически ориентированный и лишенный наукообразной "воды", иногда встречающийся у отдельных авторов.

В новом столетии он почти каждый год публиковал статьи в журнале "Компьютерные инструменты в образовании".

Влияние С.С. Лаврова на преподавание программирования

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

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

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

Не следует думать, что С.С. Лавров пришел на факультет, не имеющий какой-либо компьютерной или программистской базы, используемой в обучении студентов. Пригласил С.С. Лаврова на факультет в то время декан Сергей Васильевич Валландер (1917-1975) в 1971 году, хорошо понимавший важность эффективного использования компьютеров. А такое использование невозможно без соответствующего программного обеспечения.

Основной принцип обучения программированию – качественный состав преподавателей программистских дисциплин, обладающих алгоритмическим и программистским мышлением. Во всем мире наблюдается нехватка преподавателей этого профиля.

Среди программистских дисциплин не должно уделяться чрезмерного внимания как изучению "железа" и физических дисциплин, на которых основано функционирование компьютеров, так и математических дисциплин, не связанных непосредственно с алгоритмизацией и программированием. Например, по всем таким дисциплинам учебного плана зачет предпочтительней экзамена. С.С. Лавров критически относился и к некоторым математическим направлениям, тесно связанным с программированием, например, к интервальным вычислениям, хорошо математически обоснованным, но на практике плохо пригодным в случае больших объемов итеративных вычислений. Поскольку ошибки вычислений не только складываются, но иногда и вычитаются, то компьютерный счет (без интервальных вычислений) может рассматриваться как эвристическая оценка теоретических концепций.

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

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

У Ленинградского государственного университета была в то время возможность формирования учебного плана, как по форме, так и по содержанию. Поэтому твердая позиция и авторитет С.С. Лаврова позволили отстоять учебный план от попыток других кафедр факультета внести удобные только для них изменения.

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

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

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

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

В дальнейшем влияние С.С. Лаврова способствовало успешной подготовке команд студентов факультета к победам на командных чемпионатах мира по программированию Ассоциации по компьютерным машинам (АСМ). Чемпионат 2006/2007 гг., проходил в Токио. В состав 43 команд, решивших 4 и более задач, вошли 10 команд полуфинальной группы из стран Восточной Европы. (В настоящее время таких отборочных полуфинальных групп более 30.) Более четырех задач решили команды МГУ, Новосибирского ГУ, Петрозаводского ГУ, СПбГУ, СПбГУ ИТМО, Университета Варшавы.

Следует отметить, что выбор победителей основывался не только на количестве решенных задач, но и на сумме штрафных очков, получаемых за ошибки при тестировании программ. Задача считалась решенной, если тестирование не выявляло ошибок. Однако если оценивать уровень способности создавать качественный программный продукт, то количество решенных задач является более точной характеристикой, чем место, занятое командой на первенстве. Общий итог последних чемпионатов можно высказать следующими словами: россияне наступают.

А начиналось все в октябре 1994 года, когда от России в Бухарест на Восточно-Европейское (полуфинальное) командное первенство АСМ поехали только одна команда СПбГУ, составленная из студентов мат-меха. Эту команду мне удалось организовать, несмотря на финансовые трудности перестроечного времени. Сохранился мой личный сертификат участия как организатора (advisor).

Отмечу высшие достижения команды мат-меха СПбГУ на командных чемпионатах АСМ. Под руководством Н.Н. Вояковской, начиная с 1996 по 2000 годы, команда СПбГУ получала награды, в частности, в виде памятных досок от АСМ, выставленных перед входом в кабинет декана мат-мех факультета (места 2, 8, 9, места и, наконец, чемпионы).

Под руководством Лопатина в 2006 году команда СПбГУ заняла 6-е место (во всем мире!). В настоящее время студенты математико-механического факультета прочно закрепились в десятке представителей лучших вузов международного рейтинга TopCoder.

Эти спортивные достижения, конечно, отражали накопленный опыт преподавания программирования, осуществляемого на нашем факультете. Это позволило в 2000 году открыть в Российской Федерации новую специальность под названием "Математическое обеспечение и администрирование информационных систем".

Следует отметить, что эта специальность была открыта благодаря усилиям СПбГУ и Московского института экономики, статистики и информатики, когда министерство образования существенно сокращало количество специальностей.

Многие вузы Российской Федерации от Калининграда до Владивостока, числом более сорока, обучают в настоящее время по этой специальности. Удачно подобранные общие математические и естественнонаучные дисциплины, общие профессиональные и специальные дисциплины соответствовали современным требованиям качественной подготовки программистов широкого профиля.

В МГУ по этой специальности дается только дополнительное платное образование, что, в частности, свидетельствует о конкурентной способности разработанной специальности.

Учитывая потребности различных вузов, возникшие при обучении по специальности "математическое обеспечение и администрирование систем", был аккумулирован опыт различных вузов, например, в виде проекта фонда тестов по проверке остаточных знаний студентов, опубликованный в [4].

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

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

Схематическое, но весьма ярко написанное популярное изложение вклада в научные направления, в которых было проявлено научное творчество чл.-корр. РАН, доктора технических наук, профессора Святослава Сергеевича Лаврова изложено в его научной автобиографии [1], датированной им мартом 1998 г.

Литература

  1. Лавров С.С. Научная автобиография. // Компьютерные инструменты в образовании, 2003, № 2. С. 4-12.
  2. Куприянов В.Н. Святослав Сергеевич Лавров, соратник С.П.Королёва. // Санкт-Петербургский Университет, № 4 (3771), 2008. С. 34-37.
  3. Лавров С.С, Гончарова Л.И. Хранение информации в памяти ЭВМ. М.: Наука, 1971.
  4. Фонд оценочных средств для проверки остаточных знаний студентов по специальности 010503 «Математическое обеспечение и администрирование информационных систем» (проект). Учебно-методическое объединение вузов в области инновационных междисциплинарных образовательных программ. Информационный бюллетень №4. СПб, СПбГУ, 2005 с. 45-136