Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

Мотивировки проекта Информатика-21

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

  • Программирование — вторая грамотность. (А.П.Ершов)
  • Программирование — важнейшая новая дисциплина пост-индустриальной эры.(Н.Вирт)

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

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

Важнейшей вехой в этом отношении стал проект Оберон, подытоживший тридцатилетние исследования Н.Вирта по практическому построению языков программирования универсального назначения. (Здесь и ниже не делается различия между вариантами Оберона — Оберон, Оберон-2, Компонентный Паскаль — т.к. все они весьма близки друг другу; в дальнейшем будем называть эту группу языков Оберон/Компонентный Паскаль или просто Оберон.) В Обероне рациональное ядро средств программирования представлено в исключительно тщательно спроектированном, синтаксически простом, но весьма мощном языке программирования — прямом наследнике широко известных Паскаля и Модулы-2. Более того, Оберон/Компонентный Паскаль создан с учетом сложившихся методологий систематического программирования (Э.Дейкстра и др.).

Проект Оберон оказывает мощное влияние на мировую индустрию программирования: оно прослеживается в мега-проектах Java и .NET корпораций Sun и Microsoft Sun изучили коды Оберона еще в 1991 г., задолго до объявления Java, а по сущностным характеристикам языки Java и C# ближе к Оберону, чем к своим синтаксическим предшественникам). Это позволяет говорить о формировании под влиянием Оберона стандартной парадигмы программирования.

По крайней мере в технологическом аспекте, значение Оберона для программирования можно сравнивать со значением евклидовых "Начал" для классической математики.

В России и на пост-советском пространстве наблюдается уникальное сочетание двух взаимосвязанных факторов:
  1. наличие системы математического образования, не имеющей аналогов в мире;
  2. высокая популярность виртовских языков: Дельфи Паскаль остается популярен в коммерческом программировании, ТурбоПаскаль доминирует в школе, а Модула-2 — в космосе (например, бортовое ПО всех российских спутников связи пишется на Модуле-2, а ПО для российских беспилотных летальных аппаратов — на Паскале).

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

  • В интеллектуальном плане такая система могла бы опереться на существующую "армию" преподавателей математики, которые в силу своей подготовки оценят систематический подход к программированию (примером может служить созданное математиком пособие по программированию: А.Шень, Программирование: теоремы и задачи -М.: МЦНМО, 1995).
  • В технологическом плане сейчас просто нет более подходящей основы для такой системы, нежели Оберон/Компонентный Паскаль — современный правопреемник Паскаля. При этом учащиеся естественно подводились бы как к современному коммерческому программированию (благодаря значительной близости Оберону/Компонентному Паскалю важнейших современных коммерческих языков Java и C#), так и к научно-инновационной деятельности, требующей высокоэффективного решения сложных алгоритмических задач.  
Практичность такой схемы обеспечивается следующими качествами Оберона/Компонентного Паскаля:
  • его нетребовательностью к "железу" (можно эффективно работать даже на компьютерах класса i386);
  • его близким родством доминирующему в российском преподавании информатики Паскалю, так что переобучение преподавателей требует минимальных усилий;
  • исключительной чистотой дизайна: несмотря на резко возросшую мощь (в языке есть полноценный набор средств объектно- и компонентно-ориентированного программирования), его синтаксис проще, чем у старого Паскаля, а описание языка заметно короче. Это само по себе поможет повысить качество обучения современному программированию начиная со школьного уровня.

Имеется русифицированная версия одного из вариантов Оберона (Компонентного Паскаля), созданная специально для данного проекта учениками Н.Вирта (перевод сообщений компилятора, документации и т.п. осуществляется российскими участниками проекта). Соответствующая среда разработки называется Блэкбокс (BlackBox Component Builder; среда работает под MS Windows и MacOS с версией для Linux в перспективе). Использование среды разработки с сообщениями компилятора и т.п. на русском языке существенно облегчает преподавание программирования в школах.

Возникновение подобной системы обучения программированию помогло бы углубить и закрепить наметившуюся специализацию российских программистов на сложных, математически-насыщенных задачах. Со временем такого рода проекты будут приобретать все большее значение (как это видно уже сейчас, например, в связи с развитием технологий беспроводного Интернета; см. также Российский центр разработки ПО корпорации Intel в Нижнем Новгороде). Показательно также постоянное присутствие российских команд среди медалистов студенческих Чемпионатов мира по программированию (предлагаемые там задачи имеют характер математико-алгоритмических головоломок); например, в 2003 г. среди четырех золотых медалистов было сразу две российские команды (МГУ и С.-Пб. Институт точной механики и оптики).

Такая специализация в мировом разделении труда имела бы стратегическое значение.

По указанным причинам естественно возник интерес к Оберону как правопреемнику Паскаля в научном, образовательном и профессиональном программистском сообществах на пост-советском пространстве:
  • С начала 90-х гг. пишут об Обероне в Рунете москвич Р.Богатырев, харьковчанин В.Лось и др.
  • В 1998 г. в Вологде был запущен сайт, посвященный Оберону; на сайте в значительном объеме даны переводы на русский язык и оригинальные материалы по Оберону. К тому моменту автор сайта и наш консультант С.З.Свердлов уже серьезно использовал Оберон в преподавании и промышленных проектах.
  • Первый в мире оптимизирующий компилятор для Оберона-2 (XDS Oberon) создан в Новосибирске фирмой Excelsior, тесно связанной с российским аэрокосмическим комплексом. По свидетельству руководителя фирмы А.Д.Хапугина, 90% программного обеспечения, создаваемого фирмой, пишется на XDS Oberon.
  • Как сообщает наш консультант А.А.Колташев, с Обероном идет конкретная работа в контексте создания бортового ПО российских спутников, что и не удивительно: ведь компактность и "легкость" Оберона делает его исключительно удобным для разработки встроенных систем (см. о школе Вирта).
  • C середины 90х в Институте ядерных исследований РАН на Компонентном Паскале (по-видимому, самом совершенном на данный момент варианте Оберона) успешно решаются важные физические задачи, которые гораздо труднее или невозможно было бы решить другими средствами. На этой основе возник российско-канадский научный проект PolarBear.
  • В Литве с 1999 г. Компонентный Паскаль пропагандируется как "практически идеальный язык для обучения программированию" Отделом методологии информатики вильнюсского Института математики и информатики (Г.Григас, Т.Евсикова).
  • В Киргизии практически одновременно с появлением данного сайта возник проект реорганизации систематического обучения программированию на основе использования Оберона (автор проекта — наш координатор Кубанычбек Тажмамат уулу). Очевидно, проблемы и ситуация в Киргизии во многом аналогичны российским, но по крайней мере есть одно преимущество: многократно меньшая эшелонированность бюрократической пирамиды, что существенно облегчает новаторские эксперименты.
  • Появившийся осенью 2001 г. в Рунете форум "Мысли об Обероне" — при всей разношерстности участников и пестроте высказываемых суждений — показывает как большой интерес к Оберону, так и наличие весьма квалифицированных профессиональных программистов, уже использующих его в работе.
  • В Красноярском гос. тех. университете команда, тесно связанная со спутникостроительными предприятиями Сибири, использует Оберон как весьма удобную основу для экспериментирования с нетрадиционными расширениями языков программирования (А.Легалов и др.).
  • Наконец, уже упоминавшийся математик А.Шень в предисловии к своей книге также указывает на Оберон как на потенциально "более изящный выбор" в качестве языка примеров систематической разработки алгоритмов, чем старый Паскаль.

Таким образом, в России и на пост-советском пространстве существует значительное число серьезных специалистов, по-достоинству оценивших возможности Оберона/Компонентного Паскаля для практического программирования, научных исследований и, что в конечном счете важнее всего, для преподавания. Помочь реализоваться этому интересу в практическом плане — одна из целей нашего проекта.

 

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе