Триединая задача одного педагогического эксперимента в области ИТ-образования
Отделить учебное от научного нельзя, но научное без учебного все-таки светит и греет, а учебное без научного – только блестит. Н.И. Пирогов
1. В 1991 г. в России были разработаны основы технологии автоматного программирования [1], которая была названа также «Switch-технология» [2], «программирование с явным выделением состояний» или «автоматное программирование». В настоящее время автоматное программирование рассматривается в работе [3] в качестве одного из стилей программирования, а автоматный подход может рассматриваться как одна из парадигм программирования.
В соответствии с этой парадигмой программы предлагается строить так, как строятся системы управления технологическими процессами, в которых выделяются источники информации, управляющее устройство и объекты управления, что в целом соответствует автоматизированным объектам управления. При этом в качестве управляющего устройства используется детерминированный конечный автомат. Он реагирует на входные воздействия и формирует выходные воздействия, «указывающие» объектам управления, что они должны делать. В управляющем устройстве может быть более одного автомата. Эти автоматы могут взаимодействовать между собой, например, за счет вложенности, образуя иерархические автоматы.
Предлагаемая технология была апробирована при создании ПО для судовых систем управления [2]. Эта технология, первоначально предложенная для систем логического управления, требовала своего развития.
2. Все это происходило в России в середине 90-х годов, когда финансирование научных исследований было практически свернуто. По этой причине привлекать к научным исследованиям молодежь было практически невозможно, особенно учитывая то, что для проведения указанных исследований требовались программисты, которые не имели и не имеют проблем с трудоустройством как у нас в стране, так и за рубежом.
В отсутствии материальных стимулов для развития технологии приходилось использовать единственный моральный стимул – аспирантуру, которая в очной форме «защищает» от армии. При этом, как бы аспирантура не называлась (очная или заочная), суть от этого не изменялась, так как на первом месте у аспирантов была работа за деньги, а диссертационные исследования находились в «сухом остатке». В это время я руководил двумя аспирантами, совместно с которыми, в частности, удалось разработать вариант технологии создания ПО для событийных систем [4].
Однако, несмотря на все мои усилия, непрерывно проводить исследования в указанной области не удавалось, так как «ребята хотели не только работать, но и жить», что нормально только в нормальной обстановке, а не в сложившейся в нашей стране в то время. Известно, что «надо иметь мужество, чтобы требовать от людей работу, не имея денег». Мужество у меня было, но этого оказывалось недостаточно, так как единственный источник финансирования (отечественные гранты), не позволял ни одному из нас оставить основную работу.
В общем, мне не удалось «справиться» даже с двумя аспирантами, но исследования необходимо было продолжать, так как иначе, по крайней мере, для меня жизнь становилась бессмысленной, и надо было в России найти путь для выхода из этой, как многие считали, безнадежной ситуации.
Именно это, но несколько, другими словами, сказал ученый секретарь Совета при Президенте РФ по науке и высоким технологиям М. Ковальчук: «Большого финансирования науки наша экономика не потянет, но выход есть. Нужно искать новые формы и организацию научных исследований и внедрения технологий. Важным является также вопрос об интеграции науки и образования» (Российская газета. 11.02.2004).
3. С 1998 г. я начал преподавать на кафедре «Компьютерные технологии» Университета ИТМО, студентами которой являются одаренные в области информатики и программирования дети, отобранные по всей стране. За последние годы несколько команд наших студентов добилось выдающихся результатов на командном студенческом чемпионате мира по программированию АСМ [5].
В течение первых пяти лет я в традиционной форме преподавал этим студентам автоматное программирование: читал лекции, принимал экзамены и выполненные ими курсовые работы. Несмотря на все их таланты, мои призывы к ним о помощи в развитии автоматного подхода, например, применительно к объектно-ориентированному программированию, ни к чему не приводили – ребята просто отбывали номер и всё.
При традиционном преподавании жизненный цикл курсовых работ был также традиционным: сдача бумажной и электронной версий, хранение в течение некоторого времени в шкафу в надежде что из «этого» удастся что-либо сделать и, наконец, завершающая фаза – выбрасывание работы на помойку, ввиду невозможности доведения ее до «кондиции» кем-либо, кто не является ее автором.
При таком преподавании современной формой является публикация указанных работ в сети Интернет, что и делается отдельными преподавателями, которые, для того чтобы снять с себя ответственность за полученный результат, на сайтах пишут, что «работы как сделаны, так и выложены» (as is) [6].
Следовательно, что-то полезное от ИТ-студентов при традиционном преподавании можно было получить только случайно, тем более что они практически все работали сейчас, в том числе, и полную (!) рабочую неделю.
4. Для «серийного» написания достаточно качественных курсовых работ я пошел на педагогический эксперимент, который провожу уже три года.
При этом основное обучение я осуществлял не на лекциях, а при личном контакте в ходе выполнения курсовых проектов, при создании каждого из которых я должен был перестать жалеть свое время, так как получаемый результат прямо пропорционален затраченным усилиям.
При этом я всегда помнил слова профессора ЛЭТИ Владимира Андреевича Тимофеева, который говорил нам, когда мы были студентами, что учить на лекциях нельзя (максимум, что при этом можно делать, так это излагать материал), а образовывать можно только при личном контакте. Таким образом, он еще в начале 70-х годов прошлого века наносил удар по дистанционному образованию, которого не было в то время, но которое так модно сегодня. При этом Владимир Андреевич рассказывал, что основное образование он получил, когда каждый день провожал до дома одного из создателей плана ГОЭЛРО академика Генриха Осиповича Графтио, и это несмотря на то, что Тимофеев и так с ним общался – под руководством академика написал диплом.
Какого результата можно добиться, если при традиционном подходе преподаватель дает минутные консультации и за десяток минут принимает работу, сделанную студентом всего лишь за несколько часов?
В результате я стал работать по следующей схеме: 1. Студенты разбиваются на бригады, не превышающие двух человек, так как при большем числе кто-то из них не работает. 2. Бригада предлагает тему работы, которую она должна выполнять на основе автоматного подхода. 3. Бригада записывается в очередь для обсуждения хода выполнения работы. 4. Каждая встреча с бригадой продолжается три с половиной часа, в ходе которой рассматривается не только разрабатываемая программа, но и проектная документация, создаваемая в ходе выполнения работы, а также много чего ещё. 5. После завершения встречи бригада вновь записывается в очередь, а на следующий день приходит другая бригада. 6. Встречи проходят ежедневно, за исключением воскресений и чрезвычайных обстоятельств. 7. Критерий выполнения проекта прост и не традиционен – он должен быть сделан так, чтобы за него не было стыдно после его публикации в Интернете. 8. Сделать работу так, чтобы за нее, по крайней мере, не было стыдно, обычно меньше, чем за три-четыре встречи не удается. 9. Разработанная программа и проектная документация к ней публикуются на сайте http://is.ifmo.ru в разделах «Проекты» и «Визуализаторы».
Таким образом, на каждую работу в среднем я стал тратить 12-15 часов, а студенты – не менее ста. Естественно, что за столь продолжительное время мы обсуждали не только курсовик, но и «жизнь». В результате студенты, прошедшие мой «конвейер», не только научились создавать проектную документацию, но писать по-русски, а самое главное, многие из них стали моими друзьями.
Многие из выполненных работ, ввиду их «товарного вида», опубликованы на дисках, являющихся приложениями к журналу «Мир ПК», тираж которого (около 50 000 экземпляров) не типичен для публикации курсовых работ.
Некоторые работы, в которых предлагается то или иное развитие автоматного подхода, небольшими усилиями удается преобразовать в статьи для публикации сначала в журналах или трудах конференций, а затем на сайте http://is.ifmo.ru в разделе «Статьи».
Если раньше мне не удавалось «справиться» с двумя «учениками», то при такой организации труда я «справляюсь» с несколькими десятками студентов и аспирантов. Это достигается, во-первых, за счет административного ресурса, во-вторых, из-за нежелания идти в армию после окончания аспирантуры без защиты диссертации, а, в-третьих, – медленно пробуждающегося интереса к науке.
В результате работы «конвейера» я оказываюсь загружен на «полную катушку», а «ученики могут жить», встречаясь со мной не чаще, чем раз в полтора месяца. При этом, правда, стали появляться «ученые», которые хотят встречаться со мной значительно чаще.
5. Для обобщения указанной деятельности мной была предложена «Новая инициатива в программировании. Движение за открытую проектную документацию» [7], которое дополняет такие широко известные в мире направления создания ПО как Free Software Foundation и Open Source Initiative. В рамках предлагаемой инициативы на указанном выше сайте опубликовано около ста студенческих курсовых проектов, на которых отрабатывается технология автоматного программирования.
6. Изложенный подход во многом совпадает с «cистемой ИТ-образования, принятой в Массачусетском технологическом институте, которую называют «академической базой тренировки морских пехотинцев». В учебном процессе этого института есть лекции, но они служат лишь в качестве пояснения к постановке задачи и концепции возможных ее решений. После этого студенты собираются в неформальные группы, и работа в них и есть основной элемент обучения. Главным инструментом служат так называемые «библии», которые являются своего рода базами знаний, коллекциями решений аналогичных задач, накопленных за многие годы. Изучая их, студенты одновременно пополняют их своими результатами» [8]. Принципиальное отличие этого и предлагаемого мной подхода состоит в доступности проектов в сети Интернет, что позволяет за счет знакомства с этими «проектами» проводить обучение неограниченного круга лиц.
7. Таким образом, проводимый нами педагогический эксперимент решает триединую задачу: повышается качество обучения; проводится научная работа; совершенствуется технология автоматного программирования.
8. Изложенное позволило «продержаться» нам до тех пор, пока в компании eVelopers Corp. мои ученики не разработали на языке Java инструментальное средство UniMod для поддержки автоматного программирования в нотации UML в виде плагина к среде разработке Eclipse [9], а корпорация Borland не предложила открыть совместно с нашим университетом научную лабораторию для исследований в области создания технологий программирования, в том числе, и автоматного [10].
9. Это является возвращением вуза к нормальной жизни, так как проведение научных исследований в нем – это во многом именно то, что отличает вуз от техникума и курсов повышения квалификации (пусть даже называемых академиями). Центры подготовки специалистов в области высоких технологий должны быть одновременно и исследовательскими центрами [11]. Это соответствует проверенному временем «принципу Гумбольдта», в соответствии с которым настоящего специалиста университет может вырастить лишь, если в нем «учебное и научное» неразделимы [12].
10. Недостаточность научных исследований может стать преградой для развития программирования. Поэтому, например, исследовательское подразделение корпорации Microsoft открыло совместно с шестью японскими вузами институт, который будет проводить исследования, направленные, в частности, на применение искусственного интеллекта в программировании [13]. Кроме того, Билл Гейтс озабочен еще и тем, что «число студентов на факультетах, ведущих обучение инженерным специальностям и информационным технологиям, постоянно сокращается», но это уже другая история.
Литература
1. Шалыто А.А. Технология автоматного программирования //Мир ПК. 2003. № 10, с. 74-78. http://is.ifmo.ru/works/tech_aut_prog.
2. Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998. 628 с. https://is.ifmo.ru/books/switch/1.
3. Непейвода Н.Н. Стили и методы программирования. М.: Интернет-университет информационных технологий. 2005. 316 с.
4. Туккель Н.И., Шалыто А.А. SWITCH-технология – автоматный подход к созданию программного обеспечения «реактивных» систем // Программирование. 2001. № 5. http://is.ifmo.ru/works/switch/1/.
5. Богатырев Р. Нас не догонят? Триумф России и провал США. К итогам чемпионата мира 2005 г. по программированию // Мир ПК. 2005. № 5. http://is.ifmo.ru/belletristic/_acm2005.pdf.
6. Романовский И.В. Дискретный анализ. СПб.: Невский диалект, 2003. 320 с.
7. Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию // PC Week/RE. 2003. № 40. http://is.ifmo.ru/works/open_doc/.
8. Робертс П. Дом, который построил Гери // Computerworld/Россия. 2004. № 22.
9. Гуров В.С., Нарвский А.С., Шалыто А.А. Исполняемый UML из России //PC Week/RE. 2005. № 26. http://is.ifmo.ru/works/_umlrus.pdf.
10. Шалыто А.А. Корпорация Borland в Санкт-Петербурге: образование, наука, бизнес //IT-manager. 2005. № 3. http://is.ifmo.ru/belletristic/borl/.
11. Велькович С. На вершине пирамиды //Computerworld/Россия. 2005. № 26.
12. Соснов А. Прав был Гумбольдт // Газета «Поиск». 2005. № 25.
13. Калландер П. Курс на восток //Computerworld/Россия. 2005. № 26.
2007. http://is.ifmo.ru/belletristic/triedin/.
Статья опубликована в журнале «Инженерное образование». 2007. № 4, с. 208-213, https://old.aeer.ru/files/io/m4/art_27.pdf.
P.S. А вот мой текст о Владимире Андреевиче Тимофееве, упомянутом выше: https://news.itmo.ru/ru/blog/161/
