Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
ОПИСАНИЕ
Научно-практическая и методическая разработка
«Инновационная система поиска и подготовки
высококвалифицированных специалистов в области производства программного обеспечения на основе проектного и соревновательного подходов»
для образовательных учреждений среднего и высшего профессионального образования Васильев В. Н., докт. техн. наук, профессор, ректор, заведующий кафедрой компьютерных технологий Парфенов В. Г., докт. техн. наук, профессор, декан, заведующий кафедрой информационных систем Шалыто А. А., докт. техн. наук, профессор, заведующий кафедрой технологий программирования Корнеев Г. А., канд. техн. наук, доцент кафедры компьютерных технологий Казаков М. А., магистр, ассистент кафедры компьютерных технологий 1. Концепция использования проектного и соревновательного подходов при поиске и подготовке высококвалифицированных специалистов в области производства программного обеспечения В настоящее время перед Россией стоит задача интенсивного развития инновационного сектора экономики, связанного с высокими технологиями, и, в частности, с информационными технологиями и программированием.
В последние годы общепризнанно, что именно здесь позиции России на мировом рынке высоких технологий являются наиболее сильными и перспективными. Накопленный за годы советской власти научный, образовательный и индустриальный потенциал в этой сфере, несмотря на все трудности, удалось сохранить и реализовать в последние десять-пятнадцать лет.
Мощный импульс роста отечественная индустрия производства программного обеспечения получила на рубеже нового тысячелетия, когда по времени практически совпали российский финансовый кризис 1998 года и постигший развитые страны в 2001 году «кризис доткомов» – крах надежд инвесторов на получение быстрой прибыли от развития Интернет-технологий. За падением рынка акций высокотехнологичных предприятий последовал перевод разработок компьютерных технологий и программного обеспечения (ПО) в страны с более дешевой рабочей силой. Таким образом отечественные компании получили существенные конкурентные преимущества. В результате начался бурный рост российской индустрии разработки ПО. При этом в 2005 году объем выполненных российскими компаниями зарубежных заказов достиг миллиарда долларов. В году он превысил 1,5 миллиарда, а в 2007 – 2,1 миллиарда. В России сфера производства ПО стала лидером по темпам развития среди других направлений высоких технологий, а технологии производства ПО включены в состав важнейших критических технологий Российской Федерации.
Характерен в этом смысле пример Санкт-Петербурга, в котором в настоящее время работают около 400 компаний-разработчиков ПО, в которых трудятся порядка 20000 высококвалифицированных специалистов. Среди этих компаний – такие ведущие мировые компьютерные корпорации, как Intel, Google, Sun, Motorola, HP, ЕМС, Siemens, Alkatel, Borland, Samsung, LG, которые открыли в Санкт-Петербурге свои центры разработки программного обеспечения. В данных центрах в настоящее время работает несколько тысяч программистов высшей квалификации.
Характерно в этом смысле высказывание посетившего Санкт-Петербург в ноябре 2005 года президента и генерального директора компании Sun Скотта МакНили, наиболее ярко отражающее позицию крупных корпораций: «Если бы 15- лет назад я сказал, что наши ведущие разработчики будут работать в России, меня сочли бы сумасшедшим».
Развитие в Санкт-Петербурге индустрии высоких технологий и, прежде всего, области информационных технологий и программирования было одной из важнейших частей программы развития города, которую предложила горожанам четыре года назад губернатор Санкт-Петербурга Валентина Ивановна Матвиенко.
При этом была поставлена задача позиционирования Санкт-Петербурга как столицы российского программирования. Эта цель была поддержана и Президентом России Владимиром Владимировичем Путиным. Выбранная стратегия активно претворяется в жизнь. Сейчас можно твердо сказать, что будущее способных молодых петербуржцев обеспечено, и у них нет необходимости уезжать на работу заграницу.
Однако в последние несколько лет развитие отрасли сдерживается огромным кадровым дефицитом, поскольку наличие квалифицированных специалистов является решающим для ее роста. Остроту ситуации можно проиллюстрировать на примере Санкт-Петербурга следующими цифрами. Минимальный ежегодный рост численности специалистов, работающих в петербургских компаниях, составляет 10-15%. Следовательно, требуется ежегодно «вливать» в петербургскую индустрию разработки ПО не менее полутора-двух тысяч новых специалистов.
Однако четыре ведущих петербургских вуза, являющиеся победителями конкурса инновационных программ (СПбГУ, СПбГУ ИТМО, СПбГПУ, СПбГЭТУ), все вместе выпускают ежегодно чуть больше 200 студентов, которые учились на программистов с первого курса. В результате еще в середине 2004 года в СанктПетербурге разразился кадровый кризис в рассматриваемой отрасли, что привело к резкому увеличению уровня зарплат программистов. При этом возникла опасность потери петербургскими компаниями конкурентоспособности на мировом рынке, особенно учитывая тот факт, что сейчас в Санкт-Петербурге чуть ли не единственным источником новых кадров стали студенты, в том числе, к сожалению, и младших курсов. Как показывают данные социологических исследований, в настоящее время в Санкт-Петербурге после окончания трехчетырех курсов вузов работают практически все студенты, обладающие более или менее выраженными способностями в области производства ПО.
Мировая практика показывает, что к работе в области информационных технологий подходит только порядка 3% от численности населения. Если это применить к Санкт-Петербургу, то в 2007 году из 36000 выпускников петербургских школ только примерно 1000 перспективны для работы в области информационных технологий, что в несколько раз ниже потребностей отрасли.
Аналогичная ситуация складывается в Москве и других промышленно-развитых регионах. Таким образом, в стране возникает опасность резкого замедления темпов роста этого направления.
С учетом демографического кризиса и роста зарплат, в области решения «простых» задач Россия стала неконкурентоспособной по сравнению с Индией и Китаем. Поэтому российская «ставка» на мировом рынке производства ПО — это выполнение сложных проектов с использованием высококвалифицированных специалистов, развитие и доведение инновационных идей до коммерческого использования, а также проведение научно-исследовательских работ. Таким образом, для нашей страны особую ценность представляют наиболее талантливые специалисты, способные стать лидерами проектов и научно-исследовательских работ в качестве руководителей и «генераторов идей».
Однако кадровый дефицит руководителей проектов проявляется в настоящее время в России еще в более острой форме по сравнению с описанным выше дефицитом разработчиков ПО. Одна из причин такой ситуации заключается в последствиях сложного социально-экономического кризиса, пережитого нашей страной. В результате из индустрии разработки ПО, как и из многих других областей высоких технологий, оказалась выведено целое поколение «сорокалетних», которые закончили вузы в конце восьмидесятых — начале девяностых годов. Аналогичный, но еще более острый характер, имеют кадровые проблемы в области научных исследований.
Ситуация осложняется тем, что в последнее десятилетие формирование научно-технической элиты и кадров высокой квалификации в области компьютерных технологий и программирования в России, также как и в других развитых странах, сталкивается с трудностями, вызванными негативными социально-психологическими процессами. Они обусловлены, в частности, общим падением интереса молодежи к занятиям точными науками, сильным оттоком в промышленность наиболее активных и способных университетских преподавателей, негативным воздействием на молодежь клиповой и интернеткультур, компьютерных игр, телевидения и т.д., приводящих к сдвигам в психике молодых людей, препятствующим их долговременной сосредоточенной умственной деятельности (так называемый синдром перманентного частичного внимания), и общим уменьшением настроя молодежи на напряженный труд. В российских условиях описанные факторы и отмеченный выше демографический спад резко снижают уровень конкуренции между молодыми специалистами на рынке труда и их стремление к затрате усилий для повышения своей квалификации. Некоторые из указанных факторов лежат вне сферы образования, однако, несмотря на это, в работу образовательных учреждений должны быть внесены изменения, которые позволят (хотя бы частично) компенсировать негативное влияние внешних условий.
Изменения должны быть внесены в учебный процесс также и потому, что программирование в последние годы превратилось в индустрию, а разработка ПО – в производство, которое неразрывно связано с процессом его проектирования.
Отметим, что в области производства ПО огромную роль играет возрастной фактор, который необходимо учитывать при выборе учебно-методических и организационных подходов. Для специалистов в области производства ПО характерны весьма ранняя профессиональная подготовка и раннее начало профессиональной трудовой деятельности. Программирование – это занятие для очень молодых. Опыт показывает, что изучение ряда фундаментальных курсов теоретической информатики и программирования надо начинать еще в школьные годы, и подчас, даже в весьма молодом по общепринятым стандартам возрасте, весьма трудно наверстать упущенное в школе, так как с годами резко падает способность к обучению программированию. Молодой человек даже в двадцать с небольшим лет может оказаться слишком «старым» для начала целевой программистской подготовки. Как показывает практика, малоэффективным является и переподготовка для работы в области производства ПО даже недавних выпускников вузов, окончивших математические или физические специальности, которые не получили интенсивной программистской подготовки в студенческие годы. Такая переподготовка была возможна в семидесятых начале восьмидесятых годов. Однако за последние десятилетия технологии производства ПО (software engineering) получили огромное развитие как самостоятельное инженерное и научное направление, включающее большое число специальных дисциплин и технологических компетенций, предусмотренных соответствующими международными стандартами. Знания, умения и навыки, полученные в двух-трех последних классах средней школы и на первых трех-четырех курсах вузов при изучении фундаментальных дисциплин в области теоретической информатики и технологий программирования, играют огромную (если не решающую) роль в становлении высококвалифицированных разработчиков и исследователей.
В настоящее время в силу указанных выше причин, а также чрезвычайно высокой скорости развития информационных технологий в области производства ПО, срок, за который разработчик может стать руководителем проекта, существенно сократился по сравнению со сроками, существующими в традиционных инженерных отраслях. Можно привести много примеров, когда спустя всего два-три года после окончания вуза молодые специалисты становились руководителями технических и технологических направлений компаний на позициях не только руководителей проектов, но и технических директоров. Такие сжатые сроки профессионального становления обуславливают необходимость проведения раннего, начиная со старших классов средней школы, поиска и подготовки будущих руководителей.
В связи с изложенным весьма актуальным является построение системы «школа – вуз – научные исследования – индустрия», обеспечивающей предпрофессиональную и профессиональную подготовку (включая обучение в аспирантуре и докторантуре) высококвалифицированных специалистов в области производства ПО, которые смогут выполнять функции разработчиков, исследователей и руководителей широкого круга научнотехнических, научно-исследовательских и инновационных проектов.
Такая система должна использовать учебно-методические, технологические и организационные подходы, позволяющие нейтрализовать указанные выше негативные социально-психологические и демографические процессы.
стандартизацию, формализацию, автоматизацию и унификацию соответствующих процедур, позволяющих сократить потребность в высококвалифицированных педагогических кадрах, что особенно важно в связи с их сильным дефицитом.
Во-вторых, должны быть разработаны современные формы самостоятельной работы студентов, которые «позволят молодым людям научиться учиться» [1], и будут использоваться наряду с традиционными формами, поскольку самостоятельная работа чрезвычайно важна при подготовке специалистов в области производства ПО. Эти формы должны отвечать психологическому настрою современного молодого человека на применение в учебном процессе сетевых технологий.
В-третьих, применяемые образовательные подходы должны быть активными, обеспечивая эффективное взаимодействие не только преподавателя с учащимися, но и учащихся между собой.
И, наконец, учащихся необходимо готовить к инновационной и научной деятельности в условиях сильной конкуренции, характерной для современного мирового рынка разработок и научных исследований в области информационных технологий.
При реализации указанной системы авторами в качестве основных совместно использовались и развивались проектный и соревновательный подходы, обеспечивающие выполнение требований, приведенных выше.
Целесообразность и эффективность использования проектного подхода в учебном процессе при подготовке высококвалифицированных специалистов в области производства ПО связаны с технологическим характером профессии программиста и изучаемых дисциплин. Компетенции в области программирования приобретаются только в ходе решения проблем, возникающих при реализации и доведении программ до работоспособного состояния.
«Практика работы в проектном подходе позволит выявить и передать современные способы организации мыслительной работы человека, что и является современным содержанием образования» [1].
Проектный подход воспитывает у учащихся аккуратность, умение доводить начатое дело до конца, самостоятельно мыслить, работать в коллективе, грамотно писать и правильно оформлять проектную документацию, дает возможность реализовывать различные формы самостоятельной работы студентов.
определяется также и тем обстоятельством, что если разработка ПО может выполняться без его проектирования, то производство ПО без проектирования – невозможно.
Отметим, что применение проектного подхода особенно актуально при обучении школьников, и является в настоящее время принципиально важным и необходимым, так как в противном случае молодой разработчик впервые сталкивается с жесткими требованиями обязательного ведения проектной документации только в начале своей трудовой деятельности в «зрелом» для программиста возрасте. При этом весьма часто возникают острые конфликтные ситуации с заказчиками и коллегами, а времени для перестройки взглядов на процесс создания ПО и дополнительного обучения непосредственно в ходе трудовой деятельности практически не остается. Раннее обучение молодых людей выполнению проектов представляется в настоящее время тем более актуальным, что упомянутый выше синдром частичного перманентного внимания находится в противоречии с характером и духом требований к качественным программным проектам.
При реализации проектного подхода при подготовке специалистов в области производства ПО не удается использовать методики проектного обучения, применяемые в классических инженерных областях, в которых общий цикл подготовки высококвалифицированного специалиста составляет не менее десятипятнадцати лет. В рассматриваемой области этот цикл составляет шесть-восемь лет, за который используемые технологии обычно изменяются. Поэтому учебный проектный процесс в области производства ПО должен быть организован иначе, что требует разработки новых научно-методических подходов.
Вторым эффективным средством для решения указанных задач является развиваемый в данной работе соревновательный подход, суть которого состоит во введении элементов коллективных и индивидуальных интеллектуальных соревнований в учебный процесс, причем не только в форме предметных олимпиад.
Отметим, что в настоящее время осталось не так много средств, позволяющих мотивировать молодых людей на построение карьеры в области разработки ПО, поскольку кардинально изменилась система мотивации молодежи при выборе профессии. Практика последних пятнадцати лет показала, что одним из наиболее результативных средств, которое доказало свою работоспособность даже в экстремальных политико-экономических условиях девяностых годов, является проведение олимпиад по информатике и программированию.
Широкое распространение в России олимпиад по этим предметам позволяет одновременно решать задачи профориентации, поиска, отбора и подготовки школьников и студентов, а также ряд важных методических и организационных вопросов.
В частности, на базе подготовки к олимпиадам в школах и вузах под руководством наиболее квалифицированных преподавателей формируются коллективы способных, увлеченных и трудолюбивых студентов и школьников, ориентированных на выстраивание серьезной профессиональной карьеры в области информационных технологий. Во многом благодаря объединяющей и организующей роли олимпиад в вузах, средних школах и учреждениях дополнительного образования возникают неформальные сообщества преподавателей и учащихся, интересующихся фундаментальными и прикладными вопросами в области компьютерных технологий. Регулярно проводятся семинары и тренировочные занятия, ведется отбор и большая подготовительная работа.
Соревновательный подход воспитывает у учащихся способность работать в условиях конкуренции и дефицита времени, дисциплинированность, умение общаться и работать в коллективе (при проведении получивших широкое распространение командных олимпиад), проявлять инициативу и брать ответственность на себя, быстро ориентироваться в новой предметной области и быстро решать возникающие в ней задачи. Участие в тренировках и соревнованиях (особенно индивидуальных) – одна из наиболее эффективных современных форм самостоятельной работы учащихся.
Из изложенного следует, что соревновательный и проектный подходы производства ПО. При этом их совокупность образует оптимальный набор качеств, позволяющих специалистам, обладающих ими, эффективно выполнять инновационные программные проекты.
Совместное применение указанных подходов приводит к синергетическому эффекту в подготовке высококвалифицированных специалистов в области производства ПО, которые становятся способными ярко проявлять в своей профессиональной деятельности многие достоинства и полезные качества.
образовательный процесс применительно к подготовке высококвалифицированных специалистов в области производства ПО кардинально изменяется в соответствии с основными тенденциями в развитии отечественного образования, и достигается главная в настоящее время цель образования – не столько давать знания, сколько повышать обучаемость [1].
деятельности, в которой производительность труда работников может отличаться в десятки раз. Поэтому задача поиска и подготовки молодых людей, имеющих перспективы стать лучшими, является задачей первостепенной важности для создания инновационной экономики России.
Исследования показали, что корреляция между результатами тестирований и показателями на рабочем месте близка к нулю [2]. Поэтому для построения надежной системы поиска, отбора и подготовки программистских кадров, а также получения обоснованных выводов об их способностях, авторами предлагается школьников старших классов, базирующееся на проектном и соревновательном подходах. Так как необходимо обучать большое число учащихся, а надежные методики быстрого определения их способностей в области программирования, возможность привлечения высококвалифицированных преподавателей.
В данной работе представлена созданная авторами инновационная система поиска и подготовки высококвалифицированных специалистов ПО, основанная на использовании проектного и соревновательного подходов, принципы реализации которых изложены во втором и третьем разделах. В четвертом разделе описываются система в целом и результаты ее внедрения.
2. Научно-методические принципы реализации проектного подхода При реализации проектного подхода при подготовке специалистов в области включающего такие этапы как формирование архитектуры, кодирование, тестирование и документирование, а также элементов научно-исследовательской работы. Полная и качественная реализация этих этапов ограничиваются выделяемым на учебные проекты временем и трудностями привлечения к учебному процессу высококвалифицированных специалистов, имеющих опыт практической работы. Задача еще более усложняется, если принять во внимание наличие большого числа подходов к организации процесса создания ПО, парадигм программирования, инструментальных средств и т.д. Кроме того, необходимо обеспечить адаптацию реальных процессов создания ПО, имеющих место в различных компаниях, к уровню учащихся, начиная от школьников старших классов и кончая студентами старших курсов вузов. До последнего времени концепция, инструменты и педагогические приемы, позволяющие решить поставленную задачу при указанных ограничениях, отсутствовали.
непрерывного («школа – вуз») проектного обучения, базирующаяся на специально разработанных компонентах: парадигме программирования, инструментальных средствах, интернет-библиотеках проектов и едином методическом подходе. Эти компоненты образуют базовый набор, позволяющий обеспечить достижение в учебном процессе компетентности учащихся в области проектирования ПО в форме, доступной и понятной даже школьникам старших классов и студентам младших курсов. Предлагаемый подход позволяет, в частности, ввести в учебный процесс этап создания качественной проектной документации, который практически не удается реализовать при других подходах.
Одной из основных задач, возникающих при применении проектного подхода, является выбор парадигмы программирования, на базе которой должен строиться учебный процесс. При этом необходимо учитывать, в частности, такие факторы, как:
• сравнительная простота и доступность для школьников и студентов технологических аспектов выполнения проектов;
• возможность формулировки заданий с широкой и интересной для учащихся тематикой, требующих рассмотрения объектов из реальной • возможность построения сравнительно простых процедур контроля выполнения, сдачи и проверки законченных проектов;
• возможность унификации, стандартизации и автоматизации наиболее сложных процедур проектного учебного процесса.
программирования СПбГУ ИТМО позволяет сделать вывод о том, что указанным требованиям отвечает учебный процесс, основанный на проектном подходе с применением автоматного программирования [3].
Основы автоматного программирования, которое также получило название «программирование с явным выделением состояний», были разработаны в программирование с использованием автоматов для описания поведения программ рассматривается в работе [5] как один из стилей программирования.
Парадигма автоматного программирования [6] состоит в том, что программы предлагается строить как системы автоматизированных объектов управления, каждый из которых представляет собой охваченные обратными связями объект управления и систему управления.
В соответствии с этой парадигмой при проектировании программ предлагается выделять источники информации, систему управления и объекты управления. При этом в качестве управляющего устройства используется система детерминированных конечных автоматов, взаимодействующих между собой, например, за счет вложенности. Автоматы реагируют на входные воздействия и формирует выходные воздействия, «указывающие» объектам управления, что они должны делать.
Предлагаемая технология была апробирована при создании ПО для судовых систем управления [4]. Эта технология, первоначально предложенная для систем логического управления, требовала своего развития применительно к другим классам программных систем. Она развивалась в течение последних десяти лет в рамках работ, проводимых студентами, аспирантами и сотрудниками кафедр компьютерных технологий и технологий программирования СПбГУ ИТМО [7].
методологии применения проектного подхода на основе автоматного программирования при обучении студентов путем выполнения курсовых проектов [8].
ориентированных на работу в области производства ПО, начинается в основном, с четвертого курса. При этом старшекурсник оказывается вовлеченным в реальную деятельность одной из компаний соответствующего профиля, и его проектная подготовка проводится обычно практически в индивидуальном порядке в рамках выполнения реальных проектов выбранной компании.
Поэтому, как было отмечено выше, основной фундамент подготовки к проектной работе должен быть заложен у молодого человека к окончанию третьего курса, а вводить элементы проектного обучения необходимо уже со старших классов средней школы.
При этом отметим, что имеют место существенные различия между реализацией проектного подхода при обучении школьников старших классов, студентов младших курсов и студентов старших курсов.
В рамках реализуемой концепции студенты выполняют проекты на первом и третьем курсах, а на втором курсе – получают знания в области основных технологий программирования. Подчеркнем, что выполнение курсовых проектов включает не только написание работающего кода, как это обычно принято, но и проектирование программ и разработку качественной документации. Отметим, что получение проектной документации от студентов – весьма сложный процесс, так как они еще недостаточно зрелы для того, чтобы оценить важность документации при создании программ [9].
Задание на первом курсе состоит в разработке визуализатора одного из алгоритмов дискретной математики [10] и документации к нему. На третьем курсе студенты предлагают темы курсовых работ из различных предметных областей, в рамках которых требуется не только разработать и отладить программный код со сложной логикой, но и подготовить качественную проектную документацию, а также выложить программу и документацию в открытый доступ в Интернет.
Эти проекты имеют общую «идеологическую базу»: проектирование, документирование и автоматный подход. При этом на первом курсе студенты применяют инструментарий, построенный на основе автоматного подхода, а на третьем – разрабатывают проект с применением автоматного программирования.
Опишем особенности реализации проектного метода на первом курсе. Одной из основных целей выполняемого курсового проекта является обучение молодых людей очень не свойственному и не интересному для них делу – проектированию, а самое главное, разработке и выпуску документации. На этом этапе учащиеся должны осознать то, что в инженерной практике проектов без документации не бывает.
Разрабатываемый курсовой проект тесно связан с такими программистскими дисциплинами, как «Алгоритмы программирования и структуры данных» и «Дискретная математика», которые читаются на первом курсе. При этом каждый студент разрабатывает проект визуализатора одного из алгоритмов дискретной математики. Таким образом, студент должен продемонстрировать не только знания в области программирования, но и реализовать визуализатор, который наглядно показывает, как работает алгоритм. При этом формируются не только графические образы, но и текстовые комментарии. Это, в частности, позволяет приобрести знания в области создания пользовательских интерфейсов.
Для того чтобы визуализаторы не писались так, как это делается традиционно «в режиме вольной импровизации», а проектировались, авторами был разработан метод построения визуализаторов алгоритмов дискретной математики, инструментальном средстве Vizi [13]. Несмотря на то, что визуализаторы алгоритмов дискретной математики используются в учебном процессе в ряде университетов мира, формализованный метод их построения не был известен, и обычно студенты визуализаторы не проектировали, а либо просто писали, либо только использовали.
http://rain.ifmo.ru/cat/, который в 2005 году стал лауреатом конкурса «ИТобразование в РУНЕТЕ». Визуализаторы совместно с проектной документацией на них опубликованы по адресу http://is.ifmo.ru/vis/.
Перейдем к изложению методологии применения проектного подхода на третьем курсе [8].
Проекты могут выполняться как в индивидуальном порядке, так и командой из двух, максимум трех, учащихся.
предварительного знакомства с библиотекой проектов, представленных в Интернете на сайте http://is.ifmo.ru, разработанном авторами. При этом учащийся может либо развить и усложнить задание уже выполненного проекта, либо предложить оригинальную задачу, которая его интересует. Без использования такой библиотеки практически невозможно сформулировать требования к качеству проектов, поскольку эту задачу можно решить только в результате знакомства с аналогами. Отметим, что в настоящее время отсутствуют другие интернетбиблиотеки проектов, которые качественны и доступны учащимся по сложности.
программирование, особенности применения которого приведены ниже.
преподаватель должен провести с каждой командой студентов три-четыре встречи в течение семестра продолжительностью по два-три часа. При этом на каждую работу студент тратит в среднем около ста часов.
Разработанная по проекту документация и исходные и исполняемые коды программы в обязательном порядке публикуются на сайте http://is.ifmo.ru.
Применение автоматного программирования позволяет студентам при разумных трудозатратах качественно выполнять все этапы разработки программ.
При этом при проектировании предлагается использовать автоматную модель для описания поведения программ. В процессе выполнения заданий студенты:
проектируют программу в целом; строят модель поведения программы; проверяют модель на корректность; генерируют код по модели; реализуют функции входных и выходных воздействий; интегрируют эти функции и сгенерированный код;
отлаживают программу в целом; разрабатывают проектную документацию.
При проектировании программы на основе автоматного подхода создаются две диаграммы: схема связей (при объектно-ориентированном программировании – в виде диаграммы классов) и граф переходов. Эти диаграммы полностью описывают статические и динамические свойства программы. Возможность применения только двух диаграмм отличает автоматный подход от других подходов к проектированию программ.
Полнота информации, содержащейся в модели автоматной программы, позволяет производить проверку ее корректности [14]. При этом проверяются как статические, так и динамические свойства программы.
Генерация кода по модели может производиться как вручную, так и автоматически – с помощью инструментального средства. При этом в обоих случаях код по модели строится формально и сохраняет ее структуру. Функции входных и выходных воздействий, вызываемых из модели, обычно реализуются вручную. Эти функции весьма просты, так как вся сложная логика реализуется кодом, сгенерированным по модели. Таким образом, в отличие от традиционного подхода, этап кодирования занимает сравнительно мало времени и обычно не приводит к появлению трудно обнаруживаемых ошибок в программе. Ввиду качественного проектирования получаемые программы во многих случаях практически не требуют отладки. При необходимости отладки она упрощается за счет анализа протоколов работы программы, которые ведутся в автоматных терминах.
документации. Схемы связей и графы переходов дополняются подробными комментариями и описанием их работы, а также обоснованием принятых решений.
(http://is.ifmo.ru/projects/req/).
Из изложенного следует, что применение автоматного подхода позволяет студентам сконцентрироваться на проектировании программ, а не на их реализации. Отметим, что при традиционном обучении за время, отведенное на реализацию курсовой работы, студенты успевают только написать код, и, изредка, фрагменты документации. В описываемом подходе основное время уходит на проектирование, что позволяет студентам получить необходимые навыки в этой области, обеспечивает высокое качество работ и позволяет применять полученные результаты и другим людям.
Важным шагом в развитии автоматного программирования и расширении возможностей его использования при реализации развиваемого проектного подхода стала разработка студентами, аспирантами и сотрудниками кафедры компьютерных технологий СПбГУ ИТМО совместно с компанией РАСофт (Санкт-Петербург) открытого и бесплатного инструментального средства UniMod для поддержки автоматного программирования в нотации UML в виде плагина к среде разработке Eclipse [15].
Практика показывает, что при соблюдении указанных выше требований к качеству выполнения проектов преподавателю, действующему по традиционной технологии, не удается «справиться» даже с двумя-тремя обучающимися. Если же организации труда преподаватель может успешно руководить несколькими десятками студентов. Таким образом, удается организовать «конвейерный способ»
руководства курсовыми проектами, что позволяет увеличить «производительность труда» преподавателя не менее чем на порядок. В результате работы «конвейера»
преподаватель оказывается загруженным полностью, а студенты встречаются с ним, как показывает опыт, в среднем не чаще одного раза в месяц.
За время использования проектного подхода на основе автоматного программирования на кафедрах компьютерных технологий и технологий программирования СПбГУ ИТМО студентами в 2002–2007 гг. было реализовано более 120 проектов, опубликованных вместе с открытым кодом и проектной документацией в разделах «Проекты», «UniMod-проекты» и «Визуализаторы»
сайта http://is.ifmo.ru. В настоящее время на сайте опубликованы 83 проекта, UniMod-проекта, 14 проектов визуализаторов, а также 12 бакалаврских работ, шесть магистерских и четыре кандидатских диссертации. Эта коллекция постоянно пополняется. Более двадцати из указанных проектов и десять студенческих статей, опубликованы на дисках, являющихся приложениями к журналу «Мир ПК», тираж которого превышает 50 000 экземпляров.
документированных проектов, авторами настоящей работы организовано «Движение за открытую проектную документацию» [16], которое дополняет широко известные в мире инициативы в области создания сводного и открытого ПО (Free Software Foundation и Open Source Initiative). Оно может рассматриваться как одна из составляющих «Движения за открытое образование», организованного в мире в начале 2008 года (The Cape Town Open Education Declaration.
www.capetowndeclaration.org).
привлечения молодежи к научным исследованиям в области ПО. В настоящее время в эту область по известным причинам идут лишь единицы увлеченных молодых людей, а основная масса студентов даже не имеет никакого представления о характере исследовательской работы. Поэтому актуальной является задача практического знакомства большого контингента студентов с научной-исследовательской работой с целью повышения их заинтересованности, мотивации к научной деятельности и проведения в дальнейшем отбора наиболее способных молодых людей. Эту задачу можно решить при использовании описанного подхода. Практика показала, что в ходе выполнения проектов проявляются студенты, имеющие склонность к научной работе, а главное – желающие заниматься наукой. Естественно, что такие учащиеся встречаются с преподавателем значительно чаще. Студенческие проекты, в которых предлагается то или иное развитие автоматного подхода, после небольшой доработки удается преобразовать в статьи для публикации сначала в журналах или трудах конференций, а затем и на сайте http://is.ifmo.ru в разделе «Статьи».
Отметим, что при выполнение проектов, как на первом, так и на третьем курсах, преподаватель выступает не в роли основного носителя знаний, а в качестве помощника (тьютора), что соответствует идеологии Болонского процесса.
При этом повышается роль и степень участия студентов в собственном образовании.
В последние годы, как отмечено выше, большое значение приобрела задача использования проектного подхода в средних школах. Актуальность этой задачи обусловлена введением профильного обучения, требованием ориентации значительной части школьников, имеющих способности к точным наукам на дальнейшую работу в области производства ПО, а также прогрессирующим развитием негативных социально-психологических процессов. Организовать такую работу довольно трудно даже в наиболее сильных специализированных физикоматематических школах в связи с тем, что указанные выше вузовские проблемы с высококвалифицированными педагогическими кадрами в средней школе носят еще более острый характер.
Выходом из этого положения является создание интернет-практикума, который позволяет школьникам освоить проектный подход на основе автоматного программирования [17]. При этом темы проектов школьников могут быть, как специально ориентированы на их интересы и возможности, так и сформированы в результате адаптации студенческих проектов. Особое внимание уделено введению элементов игр и состязаний, которые позволяют школьникам в наглядном виде наблюдать и сравнивать результаты своих проектных работ. Для введения в проектирование авторами разработано учебное пособие [18], в котором излагаются основы автоматного программирования.
3. Учебно-методические принципы реализации соревновательного подхода Как отмечалось выше, соревновательный подход, и, в частности, участие в тренировочных занятиях и соревнованиях, формируют положительные качества, которые не могут быть развиты за счет других видов занятий (например, умение быстро решать задачи на сообразительность). Так, например, такие компании, как Google и Microsoft, которые добились выдающихся результатов в индустрии разработки ПО, широко используют проверку способностей кандидатов при приеме на позиции разработчиков при помощи испытаний, построенных на основе решения олимпиадных задач.
В данной работе для формирования у выпускников указанных выше положительных качеств предлагается ввести соревновательный подход в учебный процесс (по крайней мере, факультативно). В силу того, что эта форма учебного процесса носит массовый характер, то она требует модернизации по сравнению с его применением для небольшого числа учащихся.
При традиционном применении соревновательного подхода необходимой процедурой является просмотр и обсуждение с преподавателем текстов программ.
Реализация этой процедуры является дорогостоящей, поскольку требует больших затрат времени высококвалифицированных специалистов, которых, как отмечалось выше, в школах и вузах становится все меньше и меньше. В рамках предлагаемого подхода ручная процедура проверки правильности программных решений заменяется автоматической проверкой на системе тестов [19]. На кафедре компьютерных технологий СПбГУ ИТМО такой подход одним из первых в стране и мире был использован в 1993 году при проведении первой в стране командной олимпиады школьников Санкт-Петербурга по информатике и программированию [20]. В дальнейшем развитие соревновательного подхода проходило в направлении совершенствования методики использования автоматического тестирования, развития форм ее применения в учебном процессе и совершенствования программной реализации.
Для развития методики автоматического тестирования были проведены работы по созданию спецификаций задач; разработке подходов к построению тестовых систем; определению сценариев тестирования; выбору структуры и программной реализации соответствующих сетевых комплексов; классификации и формированию банка заданий, структурированного по уровню сложности, тематике и другим классификационным признакам [19].
Традиционно наиболее широко соревновательный подход реализовывался в форме олимпиад. Поэтому одно из направлений работы было связано с организацией и проведением студентами и сотрудниками СПбГУ ИТМО в течение последних пятнадцати лет системы проведения Всероссийских и СанктПетербургских командных олимпиад школьников и студентов по информатике и программированию, четвертьфинальных и полуфинальных соревнований командного студенческого чемпионата мира по программированию. За это время была создана получившая широкую известность система интернет-поддержки полуфинальных соревнований Северо-Восточного Европейского региона [21] и олимпиад школьников http://neerc.ifmo.ru, которая сначала выполняла только информационную функцию. Затем ее функциональность была расширена путем добавления доступа к архивам задач, историческим справкам, ссылкам на региональные сайты, персоналиям и т.д. В настоящее время система интернетподдержки олимпиад позволяет осуществлять как автоматическую проверку задач, так и автоматическое управление соревнованиями.
Отметим, что в настоящее время требуется совершенно иной масштаб охвата контингента, так как из-за демографического кризиса и негативных социальных процессов «нельзя потерять ни одного перспективного молодого человека». В последнее десятилетие требования, обусловленные, с одной стороны, расширением масштаба олимпиад, а, с другой – формированием у современного молодого человека психологического настроя на использование в учебном процессе современных технологий, привели к применению интернет-технологий, вплоть до появления интернет-олимпиад, в которых очные туры отсутствуют полностью [22].
Интернет-технологии также стали широко использоваться при проведении тренировочных туров. Олимпиады и интернет-олимпиады по информатике и программированию, имеющие широкую сеть отборочных соревнований и использующие современные сетевые технологии, позволяют по существу организовать процессы поиска, отбора и обучения способных молодых людей в масштабе региона и даже всей страны.
Соревновательный подход позволяет в несколько раз увеличить число обучаемых молодых программистов за счет значительной интенсификации процесса обучения и приближения его к современным требованиям. Силами преподавателей и студентов СПбГУ ИТМО создана система Всероссийских личных и командных интернет-олимпиад школьников по информатике и программированию, регулярно проводящихся начиная с 2003 года. СанктПетербургские интернет-олимпиады проводятся с 2006 года [23]. Олимпиады предусматривают различные уровни сложности и подведение итогов для каждого уровня в отдельности. Указанные соревнования проводятся через специально разработанные авторами интернет-представительства http://neerc.ifmo.ru/school/io/ и http://olymp.ifmo.ru.
Внедрение соревновательного подхода для широкого контингента учащихся потребовало не только автоматизировать процесс проведения соревновательных туров, но и создать полностью сетевую инфраструктуру их организации и проведения. При этом участвовать в интернет-туре может любой человек, зарегистрировавшийся в системе. За счет автоматизации стало возможным проводить туры с числом участников до нескольких тысяч. Отметим, что в отличие от официальных соревнований, участников Интернет-тура достаточно сложно идентифицировать, что приводит к необходимости принятия дополнительных мер безопасности. В частности, вероятность того, что в рамках официального соревнования на проверку будет отправлена вредоносная программа, чрезвычайно мала. В тоже время для Интернет-туров эта ситуация не является необычной.
Таким образом, система проведения соревнований через Интернет должна иметь существенно более высокую степень надежности, что определяет сложность ее разработки [22], проведенной под руководством авторов данной работы.
В течение многих лет в СПбГУ ИТМО проводятся факультативные тренировочные занятия для подготовки к олимпиадам по программированию, в ходе которых расширяются знания в области алгоритмов дискретной математики и развиваются практические навыки быстрой разработки и отладки программ.
Причем в этих занятиях участвуют не только наиболее сильные студенты с исключительными данными, претендующие на победы международного класса, но и гораздо более широкий круг учащихся первого и второго курсов. Обычно в ходе тренировок проводятся занятия двух типов: практические (не менее двух занятий в неделю по пять часов) и лекционные, на которых излагаются особенности решения олимпиадных задач и избранные главы дискретной математики.
Все более широкое применение находят различные формы тестирования – контрольные проверки знаний, умений и навыков учащихся, проводимые в соревновательной форме в учебных целях. При проведении тестирований учащиеся решают задачи, отражающие прочитанный на занятиях материал. При этом проверка решений в большинстве случаев проводится автоматически. В такой же форме могут проводиться и тренинги учащихся и их самостоятельная работа. При проведении самостоятельной работы также могут быть введены соревновательные элементы, когда в таблицу результатов тестирований вводятся данные о результатах, показанных другими учащимися.
Автоматическое тестирование использовалось и для проверки уровня знаний и умений учащихся в при составлении программ при компьютерной реализации части «С» единого государственного экзамена по информатике [24].
4. Инновационная система поиска и подготовки высококвалифицированных специалистов в области производства программного обеспечения Построение системы поиска и подготовки высококвалифицированных специалистов в области производства ПО началось в СПбГУ ИТМО в 1991 году.
Организационной основой для реализации этой системы стала специально организованная кафедра компьютерных технологий. На кафедре с самого начала велась подготовка бакалавров и магистров по направлению «Прикладная математика и информатика», государственный стандарт для которого в наибольшей степени отвечал целям создаваемой системы.
Основной целью этой системы, как отмечалось выше, является не просто подготовка высококвалифицированных разработчиков ПО, а воспитание нового поколения специалистов, которые могли бы стать научными работниками, имеющими желание видеть результаты практических приложений своих исследований, и руководителями инновационных проектов и компаний. Характер подготовки специалистов должен обеспечивать необходимую гибкость, выражающуюся в способности быстро оценивать конъюнктуру рынка научнотехнических проблем, изменять в соответствии с ней предметные направления своей деятельности, а также проводить работы системного характера, лежащие на стыке ряда областей науки и техники. Отметим, что специалисты подобного профиля относятся к научно-технической элите государства и представители кадровых служб крупнейших компаний и корпораций ведут их поиск среди студентов вузов за два-три года до выпуска.
Для реализации указанной цели студентам дается широкая фундаментальная программированию, технологиям программирования и производства ПО с использованием в учебном процессе проектного и соревновательного подходов.
Учебный план обеспечивает гармоничную подготовку бакалавров по дисциплинам математического, физического и компьютерного циклов, каждый из которых реализуется по усложненным учебным программам и по информационной специализированных факультетов классических университетов. Специальное внимание уделяется изучению английского языка.
образование по широкому кругу магистерских специальностей, в том числе, и по специальностям «Технологии программирования» и «Технологии производства программного обеспечения». При этом обучение в магистратуре в обязательном порядке сочетается с работой в компании или научно-исследовательской лаборатории соответствующего профиля.
Магистратура позволяет не ограничиться подготовкой разработчиков ПО, а готовить специалистов, способных через сравнительно короткое время защитить диссертации, стать преподавателями или руководить компьютерными компаниями и инновационными проектами. Высокий уровень научных работ студентов и аспирантов был, в частности, отмечен такими ведущими специалистами мирового класса в области информатики и программной инженерии как Никлаус Вирт (http://is.ifmo.ru/belletristic/_wirth_poch.pdf) и Бертран Мейер (http://is.ifmo.ru/seminar/_meyerprog.pdf, http://is.ifmo.ru/seminar/12jmeyer/), которые были избраны почетными докторами СПбГУ ИТМО.
Отметим, что применение проектного подхода на младших курсах обеспечивает качественное выполнение бакалаврских работ и магистерских диссертаций.
Реализация описываемой системы потребовала организации поиска и дополнительного обучения школьников, имеющих хорошие способности для работы в области точных наук и разработки ПО, как среди петербургских школьников, так и школьников всех регионов России.
Для поиска талантливых школьников в Санкт-Петербурге использовалось два основных источника информации. Один из них был связан с установлением контактов практически со всеми учителями математики, физики и информатики ведущих специализированных физико-математических школ города. В первые годы рекомендации о наиболее способных школьниках собиралась в конце десятого класса и работа с рекомендованными ребятами велась в течение одиннадцатого класса. В последние годы информация стала собираться на год раньше, и работа ведется уже два года (в течение десятого и одиннадцатого классов). При проведении этой работы используются соревновательный и проектный подходы по описанным выше методологиям. При реализации соревновательного подхода для школьников проводятся лекционные и практические занятия по базовым алгоритмам программирования, выдаются домашние задания, которые учащиеся выполняют дистанционно на базе системы автоматического тестирования программных решений [19], доступной через соответствующее интернет-представительство (http://neerc.ifmo.ru/freshman/).
Примерно один раз в месяц проводится очный соревновательный тур, на котором школьникам предлагаются для решения с использованием автоматического тестирования несколько задач. По результатам этих туров выводится общая оценка школьника по соревновательной части. Одновременно учащиеся выполняют проектную работу, которую защищают перед комиссией с соответствующей оценкой в конце одиннадцатого класса. Сумма оценок по соревновательной и проектной частям дает общую оценку по информатике и программированию, которая учитывается при зачислении абитуриентов на кафедру компьютерных технологий СПбГУ ИТМО.
школьниках, включаемых в описанную схему подготовки, связан с привлечением дипломантов городских петербургских олимпиад по точным наукам. В частности, широко используются проводимые сотрудниками, аспирантами и студентами кафедры компьютерных технологий совместно с Комитетом по образованию Правительства Санкт-Петербурга городская олимпиада школьников по программированию и интернет-олимпиады по информатике и математике [23].
Для поиска талантливых школьников из регионов используется сочетание соревновательного подхода и дистанционного обучения алгоритмам и методам программирования. Для проведения дистанционного обучения в течение всего учебного года дважды в месяц на сайте http://neerc.ifmo.ru/school/io/ проводятся командные и личные интернет-олимпиады с двумя уровнями сложности, после окончания которых на сайте публикуются подробные разборы задач.
Абитуриенты, показавшие хорошие результаты на Всероссийской олимпиаде школьников по информатике, Всероссийской командной олимпиаде школьников по информатике и программированию, учебно-тренировочных сборах и летней компьютерной школе, в проведении которых традиционно принимают активное участие преподаватели, аспиранты и студенты СПбГУ ИТМО, получают преимущество при поступлении в университет ИТМО.
Организация отбора школьников, используемая в СПбГУ ИТМО в течение последних пятнадцати лет, позволяет ежегодно формировать достаточно сильный и ровный состав первокурсников. Среди более двухсот студентов, обучающихся на кафедре компьютерных технологий, большинство отмечено дипломами региональных и городских олимпиад по точным наукам, а около четверти – всероссийских и международных. В отдельные годы на кафедру поступали до 40% от общего числа дипломантов Всероссийской олимпиады школьников по информатике, являющихся учащимися выпускных классов.
В результате применения описываемой в данной работе системы на базе СПбГУ ИТМО сформировался получивший международное признание центр подготовки одаренных программистов. Мировую известность принесли университету победы студентов в чемпионатах мира по программированию.
соревнования чемпионата мира по программированию, причем в 1995 году первыми из российских вузов пробились в финал чемпионата, пять раз (в 1996, программированию, а в 2000, 2005 и 2006 гг. – вице-чемпионами. В течение двенадцати лет, начиная с 1995 года, студенты университета ИТМО неизменно выходили в финал чемпионата мира, где в 2000 году завоевали серебряные медали, в 1999, 2001, 2003, 2005 и 2007 гг. – золотые, а в 2004 году стали абсолютными чемпионами мира и Европы по программированию. При этом необходимо отметить, что эти результаты достигнуты не одной, а семью различными командами университета по три студента в каждой.
Университет ИТМО входит в первую тройку мирового рейтинга и занимает первое место в российском рейтинге университетов, составленном по результатам выступлений в чемпионате мира по программирования за последние пять лет. В программированию, принял Президент России Владимир Владимирович Путин, в 2007 году команду СПбГУ ИТМО – золотого призера чемпионата мира по программированию принял Первый вице-премьер Правительства России Дмитрий Анатольевич Медведев. Достижения команд университета ИТМО в финалах чемпионата мира по программированию внесли существенный вклад в формирование положительного образа России и Санкт-Петербурга в мировом сообществе.
В последние годы в мире стали также проводиться и индивидуальные соревнования по программированию, которые названы спортивным программированием. Методика подготовки к командным соревнованиям по программированию, разработанная в СПбГУ ИТМО, позволила и в этих соревнованиях добиваться выдающихся результатов на международном уровне студентам, аспирантам и выпускникам кафедры компьютерных технологий [25].
Например, в 2006 году на соревнованиях Google Code Jam Europe (Дублин, Ирландия) представители университета ИТМО заняли третье, шестое и десятое места; на Google Code Jam (Нью-Йорк, США) в финал вышли пять представителей из университета ИТМО, двое из которых заняли третье и седьмое места; на TopCoder Open (Лас-Вегас, США) в финале участвовали два представителя университета, один из которых занял шестое место; на TopCoder Collegiate Challenge (Сан-Диего, США) в финале принимали участие три студента СПбГУ ИТМО, один из которых занял четвертое место.
Успехов, близких к указанным, представители ИТМО добились и в году. Так, в финале соревнования TopCoder Collegiate Challenge, который проходил в ноябре в Орландо (США), участвовали два студента университета.
программистов из университета ИТМО имеют в настоящее время высокий рейтинг в мировой классификации по спортивному программированию, что повышает квалификации.
За последние пятнадцать лет в университете сформировался методический, технологический и организационный Центр проведения Всероссийских студенческих и школьных олимпиад и интернет-олимпиад по информатике и соревнований Северо-Восточного Европейского региона чемпионата мира по программированию. При создании и развитии этого центра большую роль сыграл описываемая система. В критических социально-экономических условиях девяностых годов сложилась ситуация, когда весьма сложные технологии и методология проведения олимпиад по информатике и программированию и подготовки их участников на уровне, соответствующем международным стандартам, поддерживались в стране в значительной мере студентами, прошедшими в свое время школу олимпиад российского и международного уровней. Благодаря высокой «концентрации» победителей всероссийских и международных олимпиад в рамках разработанной образовательной системы, на кафедре в эти годы удалось организовать студенческую «цепочку», по которой проводилась передача методологии и технологий проведения олимпиад по информатике и программированию и подготовки их участников. Эти же студенты обеспечивали в то время всю «интеллектуальную» часть городских и районных школьников Санкт-Петербурга, сборных команд СПбГУ ИТМО, участвовали в подготовке сборных команд школьников России. В результате удалось преодолеть трудный период и сохранить указанные методики и технологии до начала существенного улучшения социально-экономического положения страны, позволившего ряду победителей международных олимпиад, и, в частности, М. А. Казакову и Г. А. Корнееву, занять преподавательские позиции и проводить указанные олимпиады в последние годы.
Результаты и эффективность многолетней работы описанной системы поиска охарактеризовать следующим образом.
1. Создан получивший всероссийское и международное признание центр подготовки высококвалифицированных программистов СПбГУ ИТМО.
2. Анализ профессиональных карьер выпускников всех десяти выпусков студентов, которые проходили подготовку в рамках описанной системы, показал, что все они работают по специальности. При этом примерно три четверти из них спустя два-три года после окончания вуза становятся руководителями проектов в области производства ПО.
3. Выпускниками в Санкт-Петербурге созданы 10 компаний-разработчиков ПО с численностью сотрудников от 10 до 175 человек и общим числом сотрудников более 500 человек. Более тридцати выпускников являются директорами и техническими директорами в компаниях, разрабатывающих 4. За последние десять лет студенты, обучавшиеся на основе описываемой системы, получили 15 стипендий Президента Российской Федерации, стипендий Правительства Российской Федерации, 20 стипендий и грантов Правительства Санкт-Петербурга, более пятидесяти международных студенческих научных грантов и стипендий.
5. Начиная с 1996 года, студентами опубликованы пять книг в центральных издательствах (в том числе, в соавторстве). Последняя из них [27] вышла из печати в 2007 году.
6. За последние десять лет студентами опубликовано (в том числе, в соавторстве) более 200 научных работ.
7. Указанные работы были подготовлены в ходе выполнения научноисследовательских и опытно-конструкторских работ по грантам Российского фонда фундаментальных исследований, Министерства образования и науки Российской Федерации и Федеральным целевым научно-техническим программам «Исследования и разработки по приоритетным направлениям развития науки и техники на 2002–2006 годы» и «Исследования и разработки по приоритетным направлениям научно-технологического комплекса России на 2007–2012 годы» (приоритетное направление – «Информационнотелекоммуникационные системы», критическая технология РФ – «Технологии производства ПО»), а также в рамках научно-образовательного направления «Технологии программирования и производства программного обеспечения»
программы СПбГУ ИТМО «Инновационная система подготовки специалистов нового поколения в области информационных и оптических технологий», которая стала победителем Всероссийского конкурса инновационных образовательных программ вузов.
8. За последние пять лет студентами-выпускниками защищены 15 кандидатских и одна докторская диссертация по техническим и физико-математическим наукам.
обеспечение и поддерживают организационную работу Центра проведения Всероссийских студенческих и школьных олимпиад, российских интернетолимпиад по информатике и программированию и четвертьфинальных и полуфинальных соревнований Северо-Восточного Европейского региона чемпионата мира по программированию, начиная с 1997 года по настоящее 10. Более пятнадцати выпускников принимают участие в учебном процессе, проводимом в рамках созданной системы, в качестве штатных преподавателей и совместителей.
Заключение 1. Создана система «школа – вуз – научные исследования – индустрия», обеспечивающая поиск, профориентацию, отбор, дополнительное обучение, предпрофессиональную и профессиональную подготовку (включая обучение в аспирантуре и докторантуре) высококвалифицированных специалистов в области производства ПО, которые могут выполнять функции разработчиков, исследователей и руководителей широкого круга научно-технических, научноисследовательских и инновационных проектов.
2. Обоснована целесообразность совместного использования в данной системе проектного и соревновательного подходов, обеспечивающих формирование у учащихся дополняющих друг друга набора качеств, необходимых для разработки инновационных программных проектов.
3. Разработана и реализована концепция сквозного непрерывного проектного обучения, базирующаяся на специально разработанных компонентах: парадигме автоматного программирования, инструментальных средствах, интернетбиблиотеках проектов и едином методическом подходе.
базирующиеся на автоматическом тестировании программных решений и соответствующем учебно-методическом и аппаратно-программном обеспечении.
СПбГУ ИТМО, которая показала свою эффективность при решении задачи поиска и подготовки разработчиков, исследователей и руководителей компаний и инновационных проектов в области производства ПО.
Литература 1. Волков А., Ливанов Д., Фурсенко А. Высшее образование: повестка 2008– //Эксперт. 2007. № 32, с. 4247.
2. Глас Р. Факты и заблуждения профессионального программирования. СПб.:
Символ-Плюс, 2007. 240 с.
3. Васильев В. Н., Казаков М. А., Корнеев Г. А., Парфенов В. Г., Шалыто А. А.
Применение проектного подхода на основе автоматного программирования при подготовке разработчиков программного обеспечения /Труды Первого СанктПетербургского конгресса «Профессиональное образование, наука, инновации в XXI веке». СПб.: СПбГУ ИТМО. 2007, с. 98–100.
4. Шалыто А. А. Switch-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998. 628 с.
5. Непейвода Н. Н. Стили и методы программирования. М.: Интернет-Университет Информационных Технологий, 2005. 316 с.
6. Шалыто А. А. Парадигма автоматного программирования /Материалы XI «Фундаментальные исследования и инновации в технических университетах».
СПб.: СПбГУ ПУ. 2007, с. 202–205.
7. О проекте «Технология автоматного программирования: применение и инструментальные средства» //Информационные технологии. 2006. № 2, с. 79.
8. Шалыто А. А. Триединая задача одного педагогического эксперимента в области ИТ-образования //Инженерное образование. 2007. № 4, с. 208–213.
9. Ван Влиет Х. О преподавании программной инженерии //Открытые системы.
2006. № 6, с. 5863.
10. Казаков М. А., Корнеев Г. А., Шалыто А. А. Разработка логики визуализаторов алгоритмов на основе конечных автоматов //Телекоммуникации и информатизация образования. 2003. № 6, с. 2758.
11. Казаков М. А., Шалыто А. А. Использование автоматного программирования для реализации визуализаторов //Компьютерные инструменты в образовании.
2004. № 2, c. 1933.
12. Корнеев Г. А., Шалыто А. А. Автоматизированное построение визуализаторов образовании. 2006. № 5, с. 16–26.
13. Корнеев Г. А., Шалыто А. А. Vizi – язык описания логики визуализаторов алгоритмов //Научно-технический вестник СПбГУ ИТМО. Вып. 23. 2005, с.130–138.
посвященной памяти профессора А. М. Богомолова «Компьютерные науки и технологии». Саратов: СГУ. 2007, с. 6669.
15. Гуров В. С., Мазин М. А., Нарвский А. С., Шалыто А. А. Инструментальное средство для поддержки автоматного программирования //Программирование.
2007. № 6, с. 6580.
16. Шалыто А. А. Новая инициатива в программировании «Движение за открытую проектную документацию» //Открытое образование. 2003. № 6, с. 6976.
17. Красильников Н. Н., Парфенов В. Г., Царев Ф. Н., Шалыто А. А. Виртуальная лаборатория для первоначального обучения проектированию программ //Труды научно-технической конференции «Научное программное обеспечение в образовании и научных исследованиях». СПб.: СПбГУ ПУ. 2008, с. 264–271.
18. Поликарпова Н. И., Шалыто А. А. Автоматное программирование. Учебнометодическое пособие. СПб.: СПбГУ ИТМО, 2007. 108 с.
http://is.ifmo.ru/books/umk.pdf соревнованиях по программированию //Телекоммуникации и информатизация образования. 2003. № 1, с. 61–73.
А. С. Станкевича. СПб.: СПбГУ ИТМО, 2007. 204 с.
21. Командный чемпионат мира по программированию ACM 2007/2008. Северовосточный европейский регион /Под ред. В. Н. Васильева и В. Г. Парфенова.
СПб.: СПбГУ ИТМО, 2007. 242 с.
22. Казаков М. А. Создание системы проведения интернет-соревнований и дистанционного обучения программированию //Телекоммуникации и информатизация образования. 2002. № 6, с. 81–100.
23. Вторая Санкт-Петербургская Интернет-олимпиада /Под ред. В. Н. Васильева, В. Г. Парфенова, С. К. Стафеева. СПб.: СПбГУ ИТМО, 2007. 75 с.
24. Васильев В. Н., Лисицина Л. С., Лямин А.В. Результаты апробации технологии сетевой информационной системы при проведении в 2007 г. ЕГЭ по информатике в компьютерной форме /XXXVII научная и учебно-методическая конференция СПбГУ ИТМО. 2008.
25. Шалыто А. А. Победы и проблемы российской школы программирования //PC WEEK/RE. 2006. № 47, c. 42, 45.
26. Васильев В. Н., Казаков М. А., Корнеев Г. А., Парфенов В. Г., Шалыто А. А.
Инновационная система поиска и подготовки высококвалифицированных разработчиков программного обеспечения на основе проектного и соревновательных подходов /Труды Первого Санкт-Петербургского конгресса «Профессиональное образование, наука, инновации в XXI веке». СПб.: СПбГУ ИТМО. 2007, с. 84–97.
алгоритмы. СПб.: Невский Диалект; М.: БИНОМ. Лаборатория знаний, 2007.