Инновационная система поиска и подготовки высококвалифицированных разработчиков программного обеспечения на основе проектного и соревновательного подходов
Отделить учебное от научного нельзя, но научное без учебного все-таки светит и греет, а учебное без научного только блестит. Н.И. Пирогов
1. Подготовка высококвалифицированных программистов в России является важной проблемой, начиная с 90-х годов прошлого века, и остается такой же и в настоящее время. Более того, в последнее время эта проблема стала особенно острой, так как успехи российской школы программирования [1] привели к тому, что кроме большого числа отечественных компаний, занимающихся разработкой программного обеспечения (ПО), в стране открываются все новые и новые центры разработки ПО ведущих фирм мира. Это потребовало создания новых подходов к поиску и подготовке таких специалистов. Описанию системы, позволяющей решать указанную проблему в рамках одного университета, и посвящена настоящая работа.
2. В начале 90-х годов стало очевидным, что в стране, а, возможно, и в мире отсутствует система, позволяющая ежегодно готовить в одном высшем учебном заведении около пятидесяти (две группы) высококвалифицированных разработчиков ПО. При этом под высококвалифицированными специалистами подразумеваются выпускники, способные через относительно небольшое время после окончания университета (два-три года) занять ведущие позиции в компаниях, профессионально разрабатывающих ПО. Решение этой задачи было и является актуальным в настоящее время, так как по своей сложности создание надежного ПО приравнивается к «грандиозным вызовам», стоящим перед человечеством [2].
3. В 1991 г. в Институте точной механики и оптики (ИТМО) в Санкт-Петербурге была создана кафедра «Компьютерные технологии», которая и должна была решить эту задачу [3]. При этом было принято решение, что ее выпускники должны быть не просто программистами, и даже не только специалистами в области прикладной математики (математика, физика, информатика), но и широко образованными людьми, которые хорошо знают также иностранный язык, философию и основы культуры. Это связано с тем, что приспособленность к переменам тем лучше, чем выше уровень академической подготовки.
4. Было ясно, что при таких требованиях к выпускникам, на первый курс должны поступать молодые люди, одаренные в точных науках, и, в особенности, в информатике и/или программировании. Кроме того, было ясно, что состав групп должен быть не только сильным, но и однородным.
5. Это потребовало создать систему поиска большого числа одаренных школьников в области точных наук, а также решить трудную задачу по привлечению их на обучение не в классический университет, а в технический вуз, известный подготовкой квалифицированных специалистов для оборонного комплекса страны. Стало ясно, что эту задачу не решить, пока вуз не приобретет большой авторитет в области информационных технологий, и что искать таланты только в Санкт-Петербурге недостаточно, а поиск следует проводить по всей стране [4].
6. Это, в свою очередь, потребовало от преподавателей кафедры, ее аспирантов и студентов значительных усилий по организации и проведению большого числа различных мероприятий со школьниками, в частности: чемпионата школьников Санкт-Петербурга по программированию; командной олимпиады школьников Санкт-Петербурга по информатике; Всероссийской олимпиады школьников по информатике; Всероссийской командной олимпиады школьников по информатике [5]; учебно-тренировочных сборов школьников, одаренных в области информатики и программирования, для участия в соревнованиях различных уровней, включая международные; Летней компьютерной школы детей, одаренных в области информатики и программирования; интернет-олимпиад школьников по информатике. Кроме того, была создана Российская Интернет-школа информатики и программирования [6, 7].
7. Для поиска талантов в Санкт-Петербурге был установлен контакт с практически всеми преподавателями точных наук сильных в этой области школ (особенно физико-математических), которые рекомендовали одаренных детей. Для желающих поступать для обучения на кафедру были созданы подготовительные курсы, на которых в течение десяти месяцев читались лекции по теории алгоритмов, программированию, математике и физике. Принципиальная новизна подготовки этих абитуриентов состояла в том, что каждый из них должен был подготовить программный проект и документацию к нему. Проект при поступлении оценивался наряду с экзаменами по указанным выше предметам.
8. Такая система и повышающийся из года в год авторитет кафедры в области информатики и программирования позволяют уже в течение более 15 лет ежегодно формировать однородный и сильный контингент студентов первого курса. При этом, в частности, для обучения на кафедре удалось привлечь двух выпускников школ, которым была присуждена премия Президента РФ за выдающиеся способности, проявленные в ходе Международной олимпиады школьников по информатике [8]. Изложенное выше привело к тому, что практически ежегодно среди 200 студентов, одновременно обучающихся на кафедре, большинство отмечено дипломами региональных и городских олимпиад по точным наукам, а около четверти Всероссийских и международных. По этим показателям кафедру можно сравнить с математическими факультетами таких всемирно известных классических университетов как МГУ и СПбГУ [9].
9. В течение многих лет авторитет кафедры повышался в результате использования в ходе обучения соревновательного подхода. При этом было решено проводить и участвовать в соревнованиях по программированию, основанных на знании алгоритмов дискретной математики. Этот вид обучения является факультативным, но многие студенты, особенно младших курсов, успешно учатся на основе такого подхода. В ходе обучения проводятся занятия двух типов: практические (не менее двух занятий в неделю по пять часов) и лекции, на которых излагаются особенности решения олимпиадных задач и избранные главы дискретной математики. Участие в организации соревнований и в самих соревнованиях, а тем более победы в них, формируют в студентах качества, которые не могут быть развиты за счет других видов занятий (например, умение быстро решать задачи на сообразительность). Это приводит к тому, что фирмы, добившиеся выдающихся результатов в области программирования, например, Google, готовы принимать на работу таких молодых людей в первую очередь [10].
10. Более десяти лет студенческая соревновательная деятельность проводилась только в рамках командного студенческого чемпионата мира по программированию ACM ICPC (Association for Computing Machinery International Collegiate Programming Contest), в ходе которого проводятся четвертьфинальные, полуфинальные и финальные соревнования. В них в настоящее время ежегодно участвуют около 6000 команд более 1500 университетов, представляющих более 80 стран мира. С 1995 г., когда команда ИТМО первой из российских команд участвовала в полуфинальных соревнованиях чемпионата мира, началось триумфальное движение команд нашей страны к победам на этих соревнованиях [11].
При этом, благодаря успехам российских команд, начиная с 1997 г., в мире был выделен Северо-Восточный Европейский регион, охватывающий почти все страны СНГ. В рамках региона ежегодно проводятся четвертьфиналы и полуфинал чемпионата мира, организация и проведение которого и одного из четвертьфиналов во многом осуществляется преподавателями, аспирантами и студентами кафедры. Эти соревнования проводятся c использованием Федеральной университетской компьютерной сети RunNET [12] в режиме реального времени. Это позволяет командам, находясь в таких городах как Санкт-Петербург, Барнаул, Ташкент и Батуми, соревноваться между собой, экономя большие средства. При этом в 2007 г. в четвертьфинальных соревнованиях региона участвовало более 600 команд, а в полуфинале более 100. Ежегодный рост числа команд и выдающиеся успехи российских команд (в том числе и СПбГУ ИТМО) способствовали тому, что каждый год увеличивается квота на участие команд-победителей этого полуфинала [13] в финале чемпионата мира, достигнув в 2007 г., тринадцати из общего числа участников финала, равного 82.
Выдающиеся результаты команд ИТМО на командных студенческих чемпионатах мира по программированию за последние десять лет: первое место (2004 г.), пять третьих (1999, 2001, 2003, 2005 и 2007 гг.) и одно четвертое (2000 г.) позволяют утверждать, что такой стабильности в достижении высоких результатов нет практически ни в одном университете мира [11]. При этом отметим, что проведение соревнований – это не только организационная деятельность, но и огромная творческая работа по подготовке задач, тестов для них и созданию системы для автоматической проверки решений задач большого числа участников полуфинала, одновременно проходящего в нескольких странах СНГ [14, 15]. В настоящее время общепризнанным является тот факт, что именно успехи в области методики подготовки к указанным соревнованиям, достигнутые в ИТМО, позволили всей российской школе программирования добиться выдающихся успехов на указанных соревнованиях [11]. При этом, в частности, за последние годы российские команды четыре раза занимали первые места, не говоря уже о занимаемых ими призовых местах [16].
11. В последние годы в СНГ и в мире стали также проводиться и индивидуальные соревнования по программированию, которые названы спортивным программированием. Методика подготовки к командным соревнованиям по программированию, разработанная в ИТМО [17], позволила и в этих соревнованиях добиваться выдающихся результатов на международном (в том числе, и всемирном) уровне студентам, аспирантам и выпускникам кафедры [1]. Например, в 2006 г. на соревнованиях: Google Code Jam Europe (Дублин, Ирландия) представители ИТМО заняли третье, шестое и десятое места; Google Code Jam (Нью-Йорк, США) в финале участвовали пять молодых людей из ИТМО, двое из которых заняли третье и седьмое места; TopCoder Open (Лас-Вегас, США) в финале участвовали два представителя нашего университета, один из которых занял шестое место; TopCoder Collegiate Challenge (Сан-Диего, США) в финале три молодых человека из ИТМО, один из которых занял четвертое место. Успехов, близких к указанным, представители ИТМО добились и в 2007 г. Так в финал соревнования TopCoder Collegiate Challenge, который проходил в ноябре в Орландо (США), вышли два наших студента. Изложенное привело к тому, что целый ряд молодых программистов из ИТМО имеют в настоящее время высокий рейтинг в мировой классификации по спортивному программированию, что повышает авторитет ИТМО в области подготовки программистов высокой квалификации.
12. По мнению ректора Южного Федерального университета В.Г. Захаревича «хорошего специалиста определяют не только знания, но и способность быстро принимать правильные решения» [18]. При этом он считает, что такие специалисты могут появиться в результате большой самостоятельной работы студентов. Авторы настоящей работы, придавая большое значение самостоятельной работе студентов в традиционной ее форме (работа в библиотеке), считают, что в условиях нашей страны это весьма трудно реализовать, так как практически все наши студенты работают. Причем не так, как, например, студенты из Гарварда, которым разрешают работать не более десяти часов в неделю (с оплатой до 10$ в час), и, в основном, в таких местах на территории университета как библиотеки [19], работающие круглосуточно (!). Более того, авторы считают, что не традиционные самостоятельные занятия, а соревновательный подход позволяет формировать в студентах навыки быстрого принятия правильных решений.
13. Активное участие в соревнованиях по программированию, подготовка к ним и их проведение приводят к тому, что, несмотря на снижение качества обучения школьников в стране в целом и демографические проблемы, кафедре «Компьютерные технологии» СПбГУ ИТМО удается сохранять высокий авторитет у школьников, студентов и преподавателей школ и вузов, интересующихся программированием, и не снижать уровень абитуриентов, поступающих обучаться на кафедру.
14. При работе с одаренными детьми в вузе было принято решение на первых трех курсах основное внимание уделять приобретению ими фундаментальных знаний, и поэтому они изучают математику и физику в объемах классического университета, которые в основном и преподаются преподавателями СПбГУ. Так как ИТМО технический вуз, то инженерные дисциплины, включая оптику, читаются в объемах, принятых в таких вузах, привлекая при этом в качестве преподавателей, в том числе, известных специалистов из промышленности. Это не только позволяет формировать уникальных специалистов, обладающих глубокими знаниями не только по естественным наукам, но в области инженерных дисциплин.
15. При обучении в вузе на первом курсе используется проектный подход, который позволяет продолжить обучение молодых людей очень несвойственному и неинтересному для них делу – проектированию, а самое главное, разработке и выпуску документации, так как в инженерной практике проектов без документации не бывает. Особенность предлагаемого подхода состоит в том, что студентами разрабатывается проектная, а не только эксплуатационная документация, как это обычно принято в программировании.
Получение качественной проектной документации от студентов весьма сложный процесс, так как «они еще недостаточно зрелы для того, чтобы оценить важность документации при создании программ» [20]. Этот подход используется при выполнении курсовой работы по дисциплине «Дискретная математика». При этом каждый студент разрабатывает проект визуализатора одного из алгоритмов дискретной математики. Таким образом, студент должен продемонстрировать не только знания в области программирования, но и на одном из языков программирования (в последнее время на языке Java) реализовать визуализатор, который наглядно показывает, как работает алгоритм. При этом формируются не только графические образы, но и текстовые комментарии. Это, в частности, позволяет приобрести знания в области создания пользовательских интерфейсов.
16. Для того, чтобы визуализаторы не писались так, как это делается традиционно, а проектировались, авторами настоящей работы разработан метод построения визуализаторов алгоритмов дискретной математики, и на его основе было создано инструментальное средство [21, 25]. Несмотря на то, что визуализаторы алгоритмов дискретной математики используются в учебном процессе в ряде университетов мира, метод их построения не был известен, и студенты их обычно не проектировали, а просто писали либо только использовали. Многие из традиционно построенных визуализаторов опубликованы на одном из сайтов кафедры, который в 2005 г. стал лауреатом конкурса «ИТ-образование в РУНЕТЕ», а в 2006 г. – регионального конкурса сайтов. Около полутора десятков визуализаторов, созданных «по науке», совместно с проектной документацией на них, опубликованы по адресу http://is.ifmo.ru/vis/.
17. В 1991 г. (в год создания кафедры «Компьютерные технологии») в России одним из авторов настоящей работы были разработаны основы автоматного программирования [26], которая была названа также «Switch-технология» [27] или «программирование с явным выделением состояний». Парадигма автоматного программирования состоит в том, что программы предлагается строить как системы автоматизированных объектов управления, каждый из которых представляет охваченный обратными связями объект управления и систему управления (систему взаимодействующих конечных автоматов) [28]. В настоящее время программирование с использованием автоматов для описания поведения программ рассматривается в работе [29] как один из стилей программирования. Эта технология первоначально была разработана и апробирована при создании программного обеспечения судовых систем логического управления [27] и требовала своего развития применительно к другим классам программных систем.
18. Совершенствование этой технологии производилось в России в середине 90-х годов, когда финансирование научных исследований было практически свернуто. По этой причине привлекать к научным исследованиям молодежь было практически невозможно, особенно учитывая тот факт, что для проведения указанных исследований требовались программисты, которые не имели и не имеют проблем с трудоустройством как у нас в стране, так и за рубежом.
Поэтому работы в указанном направлении в то время проводились только двумя аспирантами, совместно с которыми, в частности, удалось разработать вариант технологии создания программного обеспечения для событийных систем [30, 31].
Однако, несмотря на все наши усилия, непрерывно проводить исследования в указанной области не удавалось, так как «ребята хотели не только работать, но и жить», что нормально только в нормальной обстановке, а не в сложившейся в то время в нашей стране. Известно, что «надо иметь мужество, чтобы требовать от людей работу, не имея денег». Мужество у нас было, но этого оказывалось недостаточно, так как единственный источник финансирования (отечественные гранты), не позволял аспирантам оставить основную работу. В общем, одному преподавателю с трудом удавалось «справляться» даже с двумя аспирантами, не говоря уже о большем их числе, но исследования необходимо было продолжать, так как иначе, по крайней мере, для некоторых из нас, жизнь становилась бессмысленной, и надо было в России найти путь для выхода [32] из этой, как многие считали, безнадежной ситуации.
Именно это, но несколько, другими словами, сформулировал ученый секретарь Совета при Президенте РФ по науке и высоким технологиям М. Ковальчук: «Большого финансирования науки наша экономика не потянет, но выход есть – нужно искать новые формы и организацию научных исследований и внедрения технологий. Важным является также вопрос об интеграции науки и образования» (Российская газета от 11.02.2004).
19. С 1998 г. на кафедре «Компьютерные технологии» ИТМО читается курс «Автоматное программирование». В течение четырех лет он преподавался в традиционной форме: читались лекции, выполнялись домашние задания и принимались экзамены [33]. Несмотря на таланты студентов, все призывы к ним о помощи в развитии технологии автоматного программирования, например, применительно к объектно-ориентированному программированию, ни к чему не приводили.
При традиционном преподавании жизненный цикл курсовых работ также был традиционным: сдача бумажной и электронной версий работы, хранение в течение некоторого времени их в шкафу в надежде, что из «этого» удастся что-либо сделать и, наконец, завершающая фаза выбрасывание работы на помойку, ввиду невозможности доведения ее до «кондиции» кем-либо, отличным от автора.
При таком преподавании современной формой является публикация указанных работ в сети Интернет, что и делается некоторыми преподавателями. Не уделяя этим работам много времени, они в большинстве случаев для того, чтобы снять с себя ответственность за полученный результат, на сайтах пишут, что работа распространяются «как есть» (as is) [34].
Следовательно, что-то полезное от ИТ-студентов при традиционном преподавании можно было получить только случайно, тем более что они практически все работали полную (!) рабочую неделю.
20. Для «серийного» написания большого числа достаточно качественных курсовых работ было принято решение провести педагогический эксперимент, который проходит уже пятый год [35].
При этом основное обучение осуществляется не на лекциях, которые при излагаемом подходе носят установочный характер, а при личном контакте в ходе выполнения курсовых проектов, при создании каждого из которых преподаватель должен перестать жалеть свое время, так как получаемый результат прямо пропорционален затрачиваемым усилиям.
При этом были известны слова профессора Владимира Андреевича Тимофеева из ЛЭТИ (https://news.itmo.ru/ru/blog/161/) о том, что основное, чему он научился в жизни было получено им не на лекциях, а приличном общении со своим учителем – академиком Генриха Осиповича Графтио.
Какого результата можно добиться, если при традиционном подходе преподаватель в лучшем случае дает каждому студенту минутные консультации и за десять минут принимает работу, сделанную студентом всего лишь за несколько часов?
Для получения значительно более качественных результатов было принято решение о том, что работа со студентами третьего курса над проектами должна проводиться по следующей схеме [35]: студенты разбиваются на бригады из одного-двух человек, так как при большем их числе кто-то из них не работает; бригада предлагает тему работы, которую она должна выполнять на основе автоматного подхода; бригада записывается в очередь для обсуждения хода выполнения работы; каждая встреча с бригадой продолжается около трех часов, в ходе которой обсуждается не только разрабатываемая программа, но и проектная документация, создаваемая в ходе выполнения работы; после завершения встречи бригада вновь записывается в очередь, а на следующий день приходит уже другая бригада; встречи проходят ежедневно, за исключением воскресений и чрезвычайных обстоятельств; критерий выполнения проекта не традиционен, но прост: он должен быть сделан так, чтобы за него не было стыдно, когда он будет опубликован с фамилиями соавторов на сайте в сети Интернет; сделать работу так, чтобы за нее, по крайней мере, не было стыдно, обычно меньше, чем за три-четыре встречи с преподавателем, не удается – таким образом, на каждую работу в среднем преподаватель тратит 12-15 часов, а каждый студент не менее ста; разработанная программа и проектная документация к ней публикуются на сайте по автоматному программированию и мотивации к творчеству http://is.ifmo.ru (в разделах «Проекты», «UniMod-проекты» и «Визуализаторы». В настоящее время на сайте опубликованы 82 проекта, 20 UniMod-проектов (http://is.ifmo.ru/unimod-projects/), 14 визуализаторов, 18 бакалаврских и магистерских работ, а также четыре кандидатские диссертации. Эта коллекция постоянно пополняется.
Многие из выполненных работ (около 25), ввиду их «товарного вида», опубликованы на дисках, являющихся приложениями к журналу «Мир ПК» (тираж которого около 50 000 экземпляров), что не типично для курсовых работ. Некоторые работы, в которых предлагается то или иное развитие автоматного подхода, небольшими усилиями удается преобразовать в статьи (см., например, работу [36]) для публикации сначала в журналах или трудах конференций, а затем и на сайте в разделе «Статьи».
Если раньше преподавателю не удавалось «справляться» даже с двумя «учениками», то при такой организации труда преподаватель может «справиться» с несколькими десятками студентов и аспирантов.
В результате работы «конвейера» преподаватель оказывается загруженным полностью, а «ученики могут жить», встречаясь с ним не чаще одного раза в полтора месяца. При этом, правда, стали появляться «ученые», которые хотят встречаться с преподавателем значительно чаще. Это свидетельствует о том, что этих студентов удается научить учиться, что в настоящее время является важнейшей задачей как средней, так и высшей школы [37].
21. При выполнении проектов преподаватель выступает не в роли основного носителя знаний, а в качестве помощника (тьютора), что соответствует идеологии Болонского процесса [38]. При этом повышается роль и степень участия студентов в собственном образовании.
22. В ходе весьма продолжительных индивидуальных контактов со студентами часть времени удается посвящать их воспитанию в части человеческих отношений, науки и образования. Длительное индивидуальное общение со студентами позволяет преподавателю узнать их личные качества значительно лучше, чем при традиционном подходе. Это может быть неоценимой информацией для работодателя, в качестве которого может выступать и сам университет.
23. Для обобщения указанной деятельности авторами настоящей работы была предложена «Новая инициатива в программировании. Движение за открытую проектную документацию» [39], которое дополняет такие широко известные в мире инициативы в области создания сводного и открытого ПО как Free Software Foundation и Open Source Initiative. В рамках предложенной нами инициативы на указанном выше сайте публикуются студенческие и аспирантские проекты и работы, а также проекты других специалистов, которые используют автоматное программирование на практике. Кроме того, на сайте опубликованы книги (раздел «Книги») и отчеты по научно-исследовательским работам (раздел «Наука»), которые посвящены автоматному программированию и написаны студентами, аспирантами и преподавателями кафедры.
24. Изложенный подход во многом совпадает с «cистемой ИТ-образования, принятой в Массачусетском технологическом институте, которую называют «академической базой тренировки морских пехотинцев». В учебном процессе этого всемирно известного института есть лекции, но они служат лишь в качестве пояснения к постановке задачи и концепции возможных ее решений. Для ее решения студенты собираются в неформальные группы, и работа в них и есть основной элемент обучения. При этом главным инструментом служат так называемые «библии», которые являются своего рода базами знаний, коллекциями решений аналогичных задач, накопленных за многие годы. Изучая их, студенты одновременно пополняют их своими результатами» [40]. Принципиальное отличие этого и предлагаемого нами подходов состоит в доступности проектов в сети Интернет, что позволяет за счет знакомства с этими «проектами» проводить обучение неограниченного круга лиц.
25. Таким образом, проводимый нами педагогический эксперимент решает триединую задачу: повышается качество обучения; проводится научная работа; совершенствуется разработанная в ИТМО новая технология программирования [35].
26. Изложенная инновационная концепция обучения, основана на совместном использовании двух практически противоположных подходов, так как соревновательный подход развивает в студентах-программистах умение быстро и оригинально думать при решении алгоритмических задач различной сложности, а проектный подход – аккуратно, логично и поэтому сравнительно медленно создавать инженерные приложения и грамотно и внятно писать проектную документацию к ним [41]. И тот, и другой подходы развивают в студентах навыки работы в небольших командах (два-три человека). Это позволяет получать уникальных специалистов, совмещающих в себе много противоречивых достоинств.
27. Изложенное позволило: 1. Студентам кафедры регулярно получать стипендии Президента РФ, а также Правительств России и Санкт-Петербурга; 2. Студентам и аспирантам кафедры регулярно получать гранты Правительства Санкт-Петербурга, а также другие студенческие награды (например, на Всероссийском конкурсе инновационных проектов аспирантов и студентов по приоритетному направлению развития науки и техники «Информационно-телекоммуникационные системы», который проводился в 2006 г. Федеральным агентством по науке и инновациям; по программе «У.М.Н.И.К.», проводимого Фондом содействия развитию малых форм предприятий в научно-технической сфере; на общегородских конкурсах студенческих проектов и т. д.); 3. Участвовать в работе международных школ совместно со студентами университетов других стран; 4. Проводить семинары по автоматному программированию, включающими по 20 докладов, как в рамках международной конференции (так и в ходе визитов в ИТМО таких классиков программирования как Н. Вирт и Б. Мейер, которые были избраны почетными докторами университета [42, 43], что является важным для воспитания молодых программистов; 5. Участвовать с докладами на большом числе научных конференций и семинаров; публиковать большое число статей в различных периодических изданиях, в том числе, Российской академии наук и иностранных (например, таких авторитетных, как IEEE Software); войти в состав победителей конкурса научно-педагогических школ, проводимых Администрацией Санкт-Петербурга в 2006 г.; 6. Выиграть грант корпорации Borland на проведение работ по автоматному программированию; 7. Неоднократно выигрывать конкурсы Российского фонда фундаментальных исследований; 8. Проводить научно-исследовательские работы, финансируемые Министерством образования и науки РФ; 9. Победить в 2005 г. в конкурсе исследовательских проектов, проводимом в рамках Федеральной целевой научно-технической программы «Исследования и разработки по приоритетным направлениям развития науки и техники» на годы по приоритетному направлению «Информационно-телекоммуникационные системы» [44]. Тема «Автоматное программирование: применение и инструментальные средства» [45], вошла в число 15 инновационно-перспективных и социально значимых проектов по Федеральной программе в целом; 10. Победить в 2007 г. в двух конкурсах проектов, проводимых в рамках Федеральной целевой программы «Исследования и разработки по приоритетным направлениям научно-технологического комплекса России на годы». Темы «Технология генетического программирования для генерации автоматов управления системами со сложным поведением» [46] и «Разработка технологии верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода» [47]; 11. Сформировать научно-образовательное направление «Технологии программирования и производство программного обеспечения», которое вошло в число пяти направлений университета, образовавших программу «Инновационная система подготовки специалистов нового поколения в области информационных и оптических технологий», ставшую победителем конкурса инновационных вузов страны (http://npe.ifmo.ru/).
28. Участие студентов и аспирантов в научно-исследовательской работе кафедры является возвращением вуза к нормальной жизни, так как проведение научных исследований в нем – это во многом именно то, что отличает вуз от техникума и курсов повышения квалификации (пусть даже и называемых академиями). Центры подготовки специалистов в области высоких технологий должны быть одновременно и исследовательскими центрами [48]. Это соответствует проверенному временем «принципу Гумбольдта», в соответствии с которым настоящего специалиста университет может вырастить лишь, если в нем «учебное и научное» неразделимы [33]. И помните, что «если в университете нет хороших научных школ, то уже не высшее, а просто образование» [18].
29. Недостаточные научные исследования могут стать преградой для развития программирования. Поэтому, например, исследовательское подразделение корпорации Microsoft открыло совместно с шестью японскими вузами институт, который будет проводить исследования, направленные, в частности, на применение искусственного интеллекта в программировании [49]. Работы в этой области проводятся и на кафедре «Компьютерные технологии» в рамках одного из указанных государственных контрактов, а в ближайшее время в ИТМО открывается научно-исследовательский «Институт в области информационных технологий». В нем будут выполняться исследования, в том числе, по технологиям программирования и искусственному интеллекту.
30. Предлагаемая в настоящей работе парадигма обучения позволяет готовить креативных специалистов, некоторые из которых остаются в университете для преподавательской работы и проведения научных исследований, а другие через небольшое время занимают весьма высокие позиции в программной индустрии [50, 51]. Так, например, один из наших выпускников через два года после окончания университета стал вице-президентом фирмы, известной в области создания ПО [52].
31. Из изложенного следует, что если в работе [53] только была поставлена задача о смене парадигмы современного образования, технологическая платформа которого (лекционно-семинарская модель) не изменялась 250 лет со времен появления гумбольдтовской модели университета, то применительно к подготовке высококлассных программистов в рамках одного университета нам эту задачу во многом удалось решить.
32. По мнению авторов работы [53], «практика работы с использованием проектного подхода позволит выявить и передать современные способы организации мыслительной работы человека, что и является современным содержанием образования». Применение проектного подхода в обучении воспитывает в учащихся аккуратность, грамотность, умение самостоятельно мыслить и доводить начатое дело до конца, оформлять проектную и программную документацию, а соревновательный подход формирует у обучающихся прямо противоположный набор качеств, главные из которых готовность к командной работе, умение добиваться результата и быстрое принятие правильных решений, так как победитель соревнования определяется по числу решенных задач, а при одинаковом числе задач затраченному времени, причем каждой неправильное решение, оправленное на проверку, приводит к штрафу в 20 минут. Следовательно, указанные подходы формируют в программистах многие противоречивые положительные качества, что позволяет готовить уникальных ИТ-специалистов [54].
33. Таким образом, в настоящей работе описывается методика подготовки высококвалифицированных программистов, в которой проектный подход совмещен с соревновательным подходом. Это привело к синергетическому эффекту в подготовке классных специалистов в области программирования. При этом отметим, что «соревновательность и борьба за передовые позиции на поле интеллектуального производства становятся международными» [55].
Проектный и соревновательный подходы – это современные формы самостоятельной работы студентов, отличающиеся от их традиционной самостоятельной работы в библиотеках (даже с использованием Интернета), что, как отмечалось выше, больше соответствует социально-экономическим условиям, сложившимся в настоящее время в нашей стране.
В результате использования предлагаемых подходов образовательный процесс применительно к подготовке высококвалифицированных разработчиков ПО кардинально изменяется, что соответствует основным тенденциям в развитии отечественного образования [53].
При этом достигается основная в настоящее время цель образования не столько дать знания, сколько повысить обучаемость.
Литература
1. Шалыто А.А. Победы и проблемы российской школы программирования // PC Week/RE. 2006. № 47, c. 42, 45.
2. Воас Д. Чертова дюжина проблем программной инженерии // Открытые системы. 2007. № 7, с. 30-35.
3. Парфенов В.Г. 10 лет на пути к вершине // Университет ИТМО. 2001. № 21, с. 3.
4. Парфенов В.Г. Долгий путь к призванию // Компьютер-информ. 2005. № 3, с. 6, 24, 25. http://www.ci.ru/inform03_05/p_06.htm.
5. Ежегодные сборники «Всероссийская командная олимпиада школьников по программированию» / Под редакцией профессоров В. Н. Васильева и В. Г. Парфенова. СПб.: СПбГУ ИТМО. 2000-2006.
6. Мельничук О.П. Практика функционирования Интернет-школы программирования // Телекоммуникации и информатизация образования. 2003. № 2. с. 72-80.
7. Казаков М А. Реализация концепции многоуровневой системы дистанционного обучения на базе Интернет-школы программирования // Вестник конференции молодых ученых СПбГУИТМО. Сборник научных трудов. СПб: СПбГУ ИТМО. 2005, с. 176-183. http://is.ifmo.ru/works/_kazakov.pdf.
8. Указ Президента РФ // Российская газета. 05.02.2003.
9. Парфенов В. Г. «Я не говорю, что там учатся плохие студенты, просто система у нас так работает» // IT news, 2004. №o 10, с. 10, 11, 15.
10. Шалыто А.А. Кому нужны ИТ-таланты // PC Week/RE. 2006. № 39, c. 59. http://is.ifmo.ru/belletristic/google/.
11. Богатырев Р. Нас не догонят? Триумф России и провал США. К итогам чемпионата мира 2005 г. по программированию //Мир ПК. 2005. № 5, с. 60-67. http://is.ifmo.ru/belletristic/_acm2005.pdf.
12. Васильев В.Н. Федеральной университетской компьютерной сети RUNNET (Russian University Network) // Поиск. 2004. № 8, с. 7, 8.
13. Ежегодные сборники «Командный чемпионат мира ACM. Северо-Восточный Европейский регион» / Под редакцией профессоров В. Н. Васильева и В. Г. Парфенова. СПб.: СПбГУ ИТМО. 1996-2006.
14. Елизаров Р.А., Станкевич А.С. Система управления соревнованиями по программированию как система обработки данных // Телекоммуникации и информатизация образования. 2003. № 3, с. 64-85.
15. Елизаров Р.А., Корнеев Г.А. Автоматическое тестирование решений на соревнованиях по программированию // Телекоммуникации и информатизация образования. 2003. № 1, с. 61-73.
16. Парфенов В.Г., Шалыто А.А. Финал командного чемпионата мира по программированию ACM 2005/2006 в Сан-Хосе США // Компьютерные инструменты в образовании. 2006. № 2, с. 25-33.
17. Оршанский С.А. О решении олимпиадных задач по программированию формата ACM ICPC // Еженедельная методическая газета для учителей информатики «Информатика». 2006. № 1, с. 21–26. http://is.ifmo.ru/works/orshanskiy/.
18. Университет открытых дверей // Российская газета. 17. 07. 2007. http://www.rg.ru/2007/10/17/zaharevich.html.
19. Шалыто А.А. Писать по-русски // PC Week/RE. 2006. № 46, с. 52, 53. http://is.ifmo.ru/belletristic/_rasrus.pdf.
20. Ван Влиет Х. О преподавании программной инженерии // Открытые системы. 2006. № 6, с. 58-63. http://www.osp.ru/os/2006/06/2700542/.
21. Казаков М.А., Корнеев Г.А., Шалыто А.А. Разработка логики визуализаторов алгоритмов на основе конечных автоматов // Телекоммуникации и информатизация образования. 2003. № 6, с. 27-58. http://is.ifmo.ru/works/vis/.
22. Казаков М.А., Шалыто А.А. Использование автоматного программирования для реализации визуализаторов // Компьютерные инструменты в образовании. 2004. № 2, с. 19-33. http://is.ifmo.ru/works/art_vis/.
23. Казаков М.А., Шалыто А.А. Реализация анимации при построении визуализаторов алгоритмов на основе автоматного подхода // Информационно-управляющие системы. 2005. № 4, с. 51-60. http://is.ifmo.ru/works/visanim/.
24. Казаков М.А., Шалыто А.А. Методы построения логики визуализаторов алгоритмов // Открытое образование. 2005. № 4, с. 53-58. http://is.ifmo.ru/works/bubblevisio/.
25. Корнеев Г.А., Шалыто А.А. Построение визуализаторов алгоритмов дискретной математики // Научно-технический вестник СПбГУ ИТМО. Высокие технологии в оптических и информационных системах. СПб.: СПбГУ ИТМО. 2005. Вып. 23, с. 118-129. http://is.ifmo.ru/works/_a_visualizerExample.pdf.
26. Шалыто А.А. Автоматное программирование // Известия Уральского государственного университета (Компьютерные науки и информационные технологии. Вып.1), 2006. № 43, с.181-190. https://elar.urfu.ru/bitstream/10995/24543/1/iurm-2006-43-13.pdf.
27. Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 628 с.
28. Switch-технология. http://ru.wikipedia.org/wiki/Switch-технология.
29. Непейвода Н.Н. Стили и методы программирования. М.: Интернет-университет информационных технологий. 2005. 316 с.
30. Туккель Н.И., Шалыто А.А. Проектирование программного обеспечения системы управления дизель-генераторами на основе автоматного подхода // Системы управления и обработки информации. 2002. Вып. 5, с. 66-82. http://is.ifmo.ru/works/diesel/.
31. Туккель Н.И., Шалыто А.А. SWITCH-технология автоматный подход к созданию программного обеспечения «реактивных» систем // Программирование. 2001. № 5, с. 45-62. http://is.ifmo.ru/works/switch/1/.
32. Васильев В.Н. Четвертая миссия // Поиск. 2005. № 15, с. 11.
33. Соснов А. Прав был Гумбольдт // Поиск. 2005. № 25, с. 4.
34. Романовский И.В. Дискретный анализ. СПб.: Невский диалект. 2003. 320 с.
35. Шалыто А.А. Триединая задача одного педагогического эксперимента в области IT-образования // Открытое образование. 2006. № 1, с. 82-85; Инженерное образование. 2007. № 4, с. 208-213. http://is.ifmo.ru/belletristic/triedin/.
36. Мазин М.А., Парфенов В.Г., Шалыто А.А. Анимация. Flash-технология. Автоматы //Компьютерные инструменты в образовании. 2003. № 4, с. 39-47. http://is.ifmo.ru/projects/flash/.
37. Агранович М. Десятка в дневнике //Российская газета. 31.10.2007.
38. Стародубцев А., Шириков А. Мы вас не отпускали // Эксперт. Северо-Запад. 2007. № 40, с.13-18.
39. Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию // Открытое образование. 2003. № 6, с. 69-76. Еженедельная методическая газета для учителей информатики «Информатика». 2003. № 44, с. 22-24. http://is.ifmo.ru/works/open_doc/.
40. Робертс П. Дом, который построил Гери //Computerworld /Россия. 2004. № 22, с. 38, 39.
41. Шалыто А.А. Писать по-русски // PC Week/RE. 2006. № 46, c. 52, 53. http://is.ifmo.ru/belletristic/_rasrus.pdf.
42. Шалыто А.А. Никлаус Вирт – почетный доктор СПбГУ ИТМО // Компьютерные инструменты в образовании. 2005. № 5, с. 3-7. http://is.ifmo.ru/misc/wirth_visit/.
43. Шалыто А.А. Бертран Мейер – почетный доктор СПбГУ ИТМО // Компьютерные инструменты в образовании. 2006. № 3, с. 3-6. http://is.ifmo.ru/belletristic/_meyer.pdf.
44. Васильев В.Н., Тихонов А.Н., Куракин Д.В. Информационно-телекоммуникационные системы в разработках ФЦНТП // Открытое образование. 2007. № 1, с. 31-48.
45. О проекте «Технология автоматного программирования: применение и инструментальные средства» // Информационные технологии. 2006. № 2, с.79.
46. Лобанов П.Г., Шалыто А.А. Использование генетических алгоритмов для автоматического построения конечных автоматов в задаче о флибах // Известия РАН. Теория и системы управления. 2007. № 5, с. 51-60.
47. Корнеев Г.А., Шалыто А.А. Верификация управляющих программ со сложным поведением, построенных на основе автоматного подхода / Материалы международной научно-технической мультиконференции «Проблемы информационно-компьютерных технологий и мехатроники». Многопроцессорные вычислительные и управляющие системы (МВУС 2007). Т. 1. Таганрог: НИИ МВС ЮФУ. 2007, с. 194–198.
48. Велькович С. На вершине пирамиды // Computerworld/Россия. 2005. № 26, с. 22, 23.
49. Калландер П. Курс на восток // Computerworld/Россия. 2005. № 26, c. 8.
50. Управленец мечтает об инновациях // Деловой Петербург. 23.03.2006. http://itforum.ifmo.ru/page/98/.
51. У IT-компании можно забрать только мозги // Деловой Петербург. 27.07.2006. http://itforum.ifmo.ru/page/102/.
52. Студент рулит по-западному // Деловой Петербург. 29.03.2006. http://www.dataart.ru/news/all-news200601.htm.
53. Волков А., Ливанов Д., Фурсенко А. Высшее образование: повестка // Эксперт. 2007. № 32. http://www.expert.ru/printissues/expert/2007/32/vysshee_obrazovanie_2008/.
54. Протопопов А. Элитарное образование в эгалитарном обществе // Эксперт. 2007. № 40, с. 88, 89. http://www.expert.ru/printissues/expert/2007/40/obrazovanie/.
55. Дерлугьян Г. Тупик как историческая развилка // Эксперт. 2007. № 40, с. 75-86. http://www.expert.ru/printissues/expert/2007/40/obschestvennie_nauki/.
2007. Опубликовано: Васильев В.Н., Казаков М.А., Корнеев Г.А., Парфенов В.Г., Шалыто А.А. Труды Первого Санкт-Петербургского конгресса «Профессиональное образование, наука, инновации в XXI веке». СПб.: СПбГУ ИТМО, с. 84-97. https://www.kgeorgiy.info/papers/Vasilev_VN__Kazakov_MA__Korneev_GA__Parfenov_VG__Shalyto_AA_--_Innovative_System.pdf.
P.S. 1. Указанному выше коллективу была присуждена премия Правительства РФ в области образования за 2008 год за создание научно-практической и методической разработки «Инновационная система поиска и подготовки высококвалифицированных специалистов в области производства программного обеспечения на основе проектного и соревновательного подходов» (https://rg.ru/2009/01/16/premii-obrazovanie-dok.html).
2. Казалось бы, подготовить 50 высококвалифицированных специалистов в год – мало, но это не так. Лауреат премии Филдса Станислав Смирнов считает (https://vk.com/ly2sch?z=video-4846_456239069%2Fvideos-4846%2Fpl_-4846_-2), что в мире есть примерно 100 университетов с прекрасными преподавателями математики, но ежегодно набирать по 25-30 сильных студентов могут только 12-13 вузов в мире, такая же ситуация и в информатике!
3. Прошли годы и число 50 значительно увеличилось (https://abit.itmo.ru/program/bachelor/programming, https://abit.itmo.ru/program/bachelor/ai). Большинство из обучающихся не такие сильные, как были раньше, но 50 из них точно не хуже.
