WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 |

«Парфенов В. Г., Шалыто А. А. ПОДГОТОВКА ВЫСОКОКВАЛИФИЦИРОВАННЫХ СПЕЦИАЛИСТОВ В ОБЛАСТИ ПРОИЗВОДСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И РАЗВИТИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ НА КАФЕДРЕ КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ 1. Развитие ...»

-- [ Страница 1 ] --

Статья опубликована в сборнике «Университет в XXI веке». Серия «Годы и люди». Вып. 5.

Санкт-Петербургский государственный национальный исследовательский университет

ИТМО. 2011, с. 53 – 125.

Парфенов В. Г., Шалыто А. А.

ПОДГОТОВКА ВЫСОКОКВАЛИФИЦИРОВАННЫХ СПЕЦИАЛИСТОВ В ОБЛАСТИ

ПРОИЗВОДСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И РАЗВИТИЕ ТЕХНОЛОГИЙ

ПРОГРАММИРОВАНИЯ НА КАФЕДРЕ «КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ»

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

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

Мощный импульс роста отечественная индустрия производства программного обеспечения (ПО) получила на рубеже нового тысячелетия, когда по времени практически совпали российский финансовый кризис 1998 г. и постигший развитые страны в 2001 г. «кризис доткомов»

– крах надежд инвесторов на получение быстрой прибыли от развития Интернет-технологий. За падением рынка акций высокотехнологичных предприятий последовал перевод разработок ПО и компьютерных технологий в страны с более дешевой рабочей силой. Таким образом, отечественные компании получили существенные конкурентные преимущества. В результате начался бурный рост российской индустрии разработки ПО. При этом в 2005 г. объем выполненных российскими компаниями зарубежных заказов достиг миллиарда долларов. В 2011 г. он превысил 3,0 миллиарда долларов и стал сопоставим с объемом экспорта российского вооружения. В России сфера производства ПО стала лидером по темпам развития среди других направлений высоких технологий, а технологии производства ПО включены в состав критических технологий РФ. При этом отметим, что и в новый перечень приоритетных направлений развития науки, технологий и техники РФ, утвержденный Президентом РФ Д.А. Медведевым в 2009 г., включены стратегические информационные технологии, в том числе и создание ПО.

В части развития индустрии создания ПО характерен пример Санкт-Петербурга, в котором в настоящее время в этой области работают около 400 компаний. В них трудятся порядка 20000 высококвалифицированных специалистов. Среди указанных компаний – такие ведущие мировые компьютерные корпорации, как Intel, Google, Sun, Motorola, HP, ЕМС, Siemens, Alcatel, Borland, Samsung, LG, которые открыли в нашем городе центры разработки ПО. В этих центрах в настоящее время работают несколько тысяч программистов высшей квалификации.

Характерно в этом смысле высказывание посетившего Санкт-Петербург в ноябре 2005 г.

президента и генерального директора компании Sun Скотта Мак-Нили, наиболее ярко отражающее позицию крупных корпораций: «Если бы 15–20 лет назад я сказал, что наши ведущие разработчики будут работать в России, меня сочли бы сумасшедшим».

В настоящее время объем индустрии производства ПО в Санкт-Петербурге на порядок превосходит объем любой другой отрасли высоких технологий.

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

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

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

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

Организованная в 1991 г. в СПбГИТМО В.Н. Васильевым и В.Г. Парфеновым кафедра «Компьютерные технологии» (КТ), как показал дальнейший ход событий, блестяще справилась с этой задачей. Одно из важнейших решений начала девяностых годов, принятых ими, было связано с развитием информационных технологий и программирования. Тогда еще были далеко не ясны перспективы взрывообразного развития этих технологий и повсеместного проникновения в самые различные области человеческой деятельности, а также фантастического возрастания роли программистов и разрабатываемого ими ПО, которое нематериально и поэтому непонятно многим инвесторам старого образца.



Организованная в это время кафедра КТ правильно определила «направление главного удара», сделав ставку на концентрацию на этом направлении и интенсивную подготовку молодой российской интеллектуальной элиты с целью выпуска специалистов, соответствующих мировым стандартам.

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

Сейчас результаты этого образовательного проекта получили мировое признание.

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

Преподаватели, выпускники и студенты кафедры внесли значительный вклад в формирование международного бренда «петербургский программист», которого отличают высокий уровень теоретической подготовки, творческий подход к делу и способность решать трудные нестандартные задачи. Этот бренд существенно помог в продвижении российских компаний-разработчиков ПО на мировой рынок, и формировании отечественной индустрии производства ПО. Выпускники кафедры занимают большое число руководящих позиций в петербургских компаниях, а также являются создателями многих из них. Достижения кафедры были отмечены правительственными наградами, Премиями Президента и Правительства РФ, а также Правительства Санкт-Петербурга.

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

2. Поиск школьников, одаренных в области информатики и программирования, и подготовка высококвалифицированных специалистов в области производства программного обеспечения В последние несколько лет развитие отрасли производства ПО стало сдерживаться огромным кадровым дефицитом, поскольку наличие квалифицированных специалистов является решающим для ее роста. Остроту ситуации можно проиллюстрировать на примере СанктПетербурга. Минимальный ежегодный рост численности специалистов, работающих в петербургских компаниях, составляет 10–15%. Следовательно, требуется ежегодно «вливать» в петербургскую индустрию разработки ПО не менее полутора-двух тысяч новых высококвалифицированных специалистов. Однако четыре ведущих петербургских вуза, являющиеся победителями конкурса инновационных программ (СПбГУ, СПбГУ ИТМО, СПбГПУ, СПбГЭТУ), все вместе выпускают ежегодно чуть больше 200 профессиональных программистов, которые учились по этой специальности с первого курса. В результате еще в середине 2004 г. в СанктПетербурге разразился кадровый кризис в рассматриваемой отрасли, что привело к резкому увеличению зарплат программистов. При этом возникла опасность потери петербургскими компаниями конкурентоспособности на мировом рынке, особенно учитывая тот факт, что сейчас в Санкт-Петербурге чуть ли не единственным источником новых кадров стали студенты, в том числе, к сожалению, и младших курсов. Как показывают данные социологических исследований, в настоящее время в Санкт-Петербурге после окончания трех-четырех курсов вузов работают практически все студенты, обладающие более или менее выраженными способностями в области производства ПО.

Мировая практика показывает, что к работе в области информационных технологий подходит только порядка 3 % от численности населения. Если это применить к СанктПетербургу, то в 2007 г. из 36000 выпускников петербургских школ (в 2011 г. выпускников будет значительно меньше) только примерно 1000 были перспективны для работы в области информационных технологий, что в несколько раз ниже потребностей отрасли. Аналогичная ситуация складывается в Москве и других промышленно-развитых регионах. Таким образом, в стране возникает опасность резкого замедления темпов роста этого направления. Неслучайно, что для улучшения кадровой ситуации в Санкт-Петербурге в городской программе развития инноваций образование было поставлено на первое место.

С учетом демографического кризиса и роста зарплат, в области решения «простых»

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

Однако кадровый дефицит руководителей проектов проявляется в настоящее время в России еще в более острой форме по сравнению с описанным выше дефицитом разработчиков ПО. Одна из причин такой ситуации состоит в последствиях сложного социальноэкономического кризиса, пережитого нашей страной в 90-ые годы, и финансового кризиса, переживаемого с 2008 г. В результате первого кризиса из индустрии разработки ПО, как и из многих других областей высоких технологий, оказалась выведено целое поколение «сорокалетних», которые закончили вузы в конце восьмидесятых – начале девяностых годов. Аналогичный, но еще более острый характер имеют кадровые проблемы в области научных исследований. Последний кризис привел к сокращению объемов производства ПО, но потребность в высококвалифицированных кадрах в этой области не только не уменьшилась, а даже возросла, так как на рынке требуется все больше инновационных продуктов.

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

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

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

Для специалистов в области производства ПО характерны весьма ранняя профессиональная подготовка и раннее начало профессиональной трудовой деятельности. Программирование – это занятие для очень молодых. Опыт показывает, что изучение ряда фундаментальных курсов теоретической информатики и программирования надо начинать еще в школьные годы, и подчас даже в весьма молодом по общепринятым стандартам возрасте весьма трудно наверстать упущенное в школе, так как с годами резко падает способность к обучению программированию. Молодой человек даже в двадцать с небольшим лет может оказаться слишком «старым»

для начала целевой программистской подготовки.

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

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

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

В связи с изложенным весьма актуальным является построение системы «школа – вуз – научные исследования – индустрия», обеспечивающей поиск, профориентацию, отбор школьников, одаренных в области информатики и программирования, формирование за счет дополнительного обучения, предпрофессиональной и профессиональной подготовки студентов (с последующим обучением в аспирантуре и докторантуре) высококвалифицированных специалистов в области производства ПО, которые могут выполнять функции разработчиков, исследователей и руководителей широкого круга научнотехнических, научно-исследовательских и инновационных проектов.

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

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

Во-вторых, должны быть разработаны современные формы самостоятельной работы студентов, которые «позволят молодым людям научиться учиться» [1] и будут использоваться наряду с традиционными формами, поскольку самостоятельная работа чрезвычайно важна при подготовке специалистов в области производства ПО. Эти формы должны отвечать психологическому настрою современного молодого человека на применение в учебном процессе сетевых технологий.

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

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

Реализация изложенного потребовало создания в СПбГУ ИТМО специальной системы поиска перспективных молодых людей и новой организации учебного процесса для них.

3. Уровни «соударения умов»

Со времен пушкинского лицея известно, что главное в подготовке и сохранении талантов является атмосфера, обеспечивающая «соударение умов».

До сих пор в нашей стране такие условия создавались в основном только для одаренных школьников в специализированных учебно-научных центрах при известных университетах и физико-математических лицеях и школах. Назовем условия, созданные в этих учебных заведениях, первым уровнем «соударения умов». При этом, правда, в большинстве из них основное внимание уделялось и уделяется в настоящее время не информатике и программированию, а другим дисциплинам, в основном математике и физике.

С 1991 г. в Ленинградском институте точной механики и оптики (ЛИТМО), ныне СанктПетербургском государственном университете информационных технологий, механики и оптики (СПбГУ ИТМО), В.Н. Васильевым и В.Г. Парфеновым был сформирован второй уровень «соударения умов» – организована указанная выше кафедра КТ, в которую для обучения отбирали школьников, талантливых в области точных наук, информатики и программирования. Это обеспечило возможность «соударения умов» студентов.

(http://www.savethebest.ru), предложенной А.А. Шалыто, формируется третий уровень «соударения умов», на котором взаимодействуют выпускники кафедры КТ – молодые преподаватели и аспиранты, и наиболее сильные студенты, которые работают на кафедре на постоянной основе.

При этом опытные преподаватели делают все возможное для обеспечения «соударения умов» молодежи.

В настоящей работе описываются идеи и подходы, использованные нами в ходе формирования второго и третьего уровней указанной «пирамиды». В ходе ее создания осуществлялась подготовка высококвалифицированных специалистов и развитие технологий программирования на кафедре КТ, а в дальнейшем и на выделившейся из нее по предложению В.Н. Васильева и В.Г. Парфенова кафедре «Технологии программирования» (ТП), которой руководит А.А. Шалыто.

4. Применение проектного и соревновательного подходов в учебном процессе При реализации указанной системы на кафедре КТ в качестве основных совместно использовались и развивались проектный и соревновательный подходы.

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

Компетенции в области программирования приобретаются только в ходе решения проблем, возникающих при реализации и доведении программ до работоспособного состояния.

«Практика работы в проектном подходе позволит выявить и передать современные способы организации мыслительной работы человека, что и является современным содержанием образования» [1].

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

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

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

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

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

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

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

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

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

Соревновательный подход воспитывает у учащихся способность работать в условиях конкуренции и дефицита времени, дисциплинированность, умение общаться и работать в коллективе (при проведении получивших широкое распространение командных олимпиад), проявлять инициативу и брать ответственность на себя, быстро ориентироваться в новой предметной области и быстро решать возникающие в ней задачи. Участие в тренировках и соревнованиях (особенно индивидуальных) – одна из наиболее эффективных современных форм самостоятельной работы учащихся.

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

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

Таким образом, в результате применения развиваемых на кафедре КТ подходов образовательный процесс применительно к подготовке высококвалифицированных специалистов в области производства ПО кардинально изменяется в соответствии с основными тенденциями в развитии отечественного образования, и достигается главная в настоящее время цель образования – не столько давать знания, сколько повышать обучаемость [1].

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

Исследования показали, что корреляция между результатами тестирований и показателями на рабочем месте близка к нулю [2]. Поэтому для построения надежной системы поиска, отбора и подготовки программистских кадров, а также получения обоснованных выводов об их способностях, В.Н. Васильевым и нами было предложено проводить специальным образом организованное обучение студентов и школьников старших классов, базирующееся на проектном и соревновательном подходах. Так как необходимо обучать большое число учащихся, а надежные методики быстрого определения их способностей в области программирования, как отмечалось выше, отсутствуют, то существенно возрастает роль стандартизации, автоматизации и унификации учебного процесса, обеспечивающих требуемый уровень массовости при ограничениях на возможность привлечения высококвалифицированных преподавателей.

Ниже описывается созданная В.Н. Васильевым, В.Г. Парфеновым, А.А. Шалыто и сотрудниками кафедры КТ инновационная система поиска и подготовки высококвалифицированных специалистов ПО, основанная на использовании проектного и соревновательного подходов.

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

На кафедре КТ разработана и реализована концепция сквозного непрерывного («школа – вуз») проектного обучения, базирующаяся на специально разработанных компонентах: парадигме автоматного программирования, инструментальных средствах и виртуальных лабораториях для его поддержки, интернет-библиотеках проектов и едином методическом подходе. Эти компоненты образуют базовый набор, позволяющий обеспечить достижение в учебном процессе компетентности обучающихся в области проектирования ПО в форме, доступной и понятной даже школьникам старших классов и студентам младших курсов. Предлагаемый подход позволяет, в частности, ввести в учебный процесс этап создания качественной проектной документации, который практически не удается реализовать при других подходах.

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

сравнительная простота и доступность для школьников и студентов технологических аспектов выполнения проектов;

возможность формулировки заданий с широкой и интересной для учащихся тематикой, требующих рассмотрения объектов из реальной жизни, в том числе и по тематике, им близкой;

степень формализации процедуры разработки проектной документации;

возможность построения сравнительно простых процедур контроля выполнения, сдачи и проверки законченных проектов;

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

Опыт работы кафедры КТ позволяет сделать вывод о том, что указанным требованиям отвечает учебный процесс, основанный на проектном подходе с применением технологии автоматного программирования [3], которая, кроме образования, имеет и самостоятельное значение, что будет показано в следующем разделе.

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

Одним из существенных результатов этих работ стала создание методологии применения проектного подхода на основе автоматного программирования при обучении студентов путем выполнения курсовых проектов [4].

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

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

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

В рамках реализуемой концепции обучения студенты выполняют проекты на первом и третьем курсах, а на втором курсе получают знания в области основных технологий программирования. Подчеркнем, что выполнение курсовых проектов включает не только написание работающего кода, как это обычно принято, но и проектирование программ, и разработку качественной проектной документации для них. Отметим, что получение проектной документации от студентов – весьма сложный процесс, так как они еще недостаточно зрелы для того, чтобы оценить важность документации при создании программ [5].

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

Эти проекты имеют общую «идеологическую базу»: проектирование, документирование и автоматный подход. При этом на первом курсе студенты применяют инструментарий, построенный на основе автоматного подхода, а на третьем – разрабатывают проект с применением автоматного программирования [6].

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

Разрабатываемый курсовой проект тесно связан с такими программистскими дисциплинами, как «Алгоритмы программирования и структуры данных» и «Дискретная математика», которые читаются на первом курсе. При этом каждый студент разрабатывает проект визуализатора одного из алгоритмов дискретной математики. Таким образом, студент должен не только продемонстрировать знания в области программирования, но и реализовать визуализатор, который наглядно показывает, как работает алгоритм. При этом формируются не только графические образы, но и текстовые комментарии. Это, в частности, позволяет приобрести знания в области создания пользовательских интерфейсов.

Для того чтобы визуализаторы не писались так, как это делается традиционно «в режиме вольной импровизации», а проектировались, на кафедре КТ был разработан метод построения визуализаторов алгоритмов дискретной математики [7], основанный на автоматном подходе. Построение визуализаторов для простых алгоритмов на основе этого метода может выполняться вручную [8], а для сложных – с помощью инструментального средства Vizi [9, 10]. Несмотря на то, что визуализаторы алгоритмов дискретной математики используются в учебном процессе в ряде университетов мира, формализованный метод их построения не был известен, и обычно студенты не проектировали визуализаторы, а либо просто писали их, либо только использовали.

Многие из разработанных на основе предлагаемого подхода визуализаторы опубликованы на сайте http://rain.ifmo.ru/cat/, который в 2005 г. стал лауреатом конкурса «ИТ-образование в РУНЕТЕ», а визуализаторы совместно с проектной документацией опубликованы по адресу http://is.ifmo.ru/vis/.

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

Выбор темы проекта осуществляется самими студентами на основе предварительного знакомства с библиотекой проектов, представленных в Интернете на сайте http://is.ifmo.ru, разработанном на кафедре КТ. При этом студент может либо развить и усложнить задание уже выполненного проекта, либо предложить оригинальную задачу, которая его интересует. Без использования такой библиотеки практически невозможно сформулировать требования к качеству проектов, поскольку эту задачу можно решить эффективно только в результате знакомства с аналогами. Отметим, что в настоящее время отсутствуют другие интернет-библиотеки проектов, которые качественны и доступны по уровню сложности школьникам и студентам младших курсов.

Как отмечалось выше, при выполнении проектов используется автоматное программирование [6]. Применение этого подхода позволяет при разумных трудозатратах студентов качественно выполнять все этапы создания программ. При этом на этапе проектирования предлагается использовать автоматную модель для описания поведения программ. В процессе выполнения заданий студенты: проектируют программу в целом; строят автоматную модель ее поведения; проверяют путем валидации и верификации модель на корректность; по модели вручную или автоматически генерируют код; реализуют функции входных и выходных воздействий; интегрируют эти функции и сгенерированный код; при необходимости отлаживают программу;

разрабатывают проектную документацию.

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

Разработанная по проекту документация, исходные и исполняемые коды программы в обязательном порядке публикуются на сайте http://is.ifmo.ru.

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

Практика показывает, что при соблюдении высоких требований к качеству проектов преподавателю, действующему по традиционной технологии, не удается «справиться» даже с двумя-тремя обучающимися. Если же применять описываемый подход, базирующийся на автоматном программировании и одном из инструментальных средств для его поддержки, то преподаватель может успешно руководить несколькими десятками студентов. Таким образом, удается организовать «конвейерный способ» руководства курсовыми проектами, что позволяет увеличить «производительность труда» преподавателя не менее чем на порядок. В результате работы «конвейера» преподаватель оказывается загруженным полностью, а студенты встречаются с ним, как показывает опыт, в среднем не чаще одного раза в месяц.

«Конвейер» необходим также и для выявления ребят, способных заниматься научной работой, так как позволяет достаточно внимательно «просмотреть» всех студентов одного года приема, обучающихся на кафедре КТ. Это иногда дает неожиданные результаты. Так, например, в 2008 г. среди студентов третьего курса был студент, часто отсутствующий на занятиях из-за спортивных сборов, от которого меньше всего можно было ожидать чего-то неординарного. Несмотря на это, именно он и выполнил такую работу, которую практически сразу можно было публиковать.

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

Изложенный подход во многом совпадает с «системой ИТ-образования», принятой в одном из ведущих в этой области университетов мира – Массачусетском технологическом институте (МТИ), которую называют «академической базой тренировки морских пехотинцев». В учебном процессе этого института есть лекции, но они рассматриваются лишь для пояснения постановки задачи и выбора концепций ее решения. При решении задачи студенты объединяются в группы, и работа в них и является основным элементом обучения. При этом главным инструментом являются так называемые «библии», которые являются своего рода базами знаний – коллекциями решений аналогичных задач, накопленных за годы. Изучая «библии», студенты пополняют их своими результами. Принципиальное отличие этого подхода от используемого на кафедре КТ состоит в доступности наших проектов в сети Интернет. При этом предлагаемый подход позволяет проводить «проектное» обучение не только наших студентов, но и дистанционно неограниченного круга лиц, интересующихся этой тематикой.

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

За время использования проектного подхода на основе автоматного программирования на кафедре КТ студентами в 2002–2010 гг. было реализовано около 150 проектов, опубликованных в разделах «Проекты», «UniMod-проекты» и «Визуализаторы» сайта http://is.ifmo.ru. На сайте опубликованы также лабораторные работы, бакалаврские работы, магистерские и кандидатские диссертации, статьи, книги, отчеты по научно-исследовательским работам. Эта коллекция постоянно пополняется. Более двадцати из указанных проектов и десять студенческих статей опубликованы на дисках, являющихся приложениями к журналу «Мир ПК», тираж которого превышает 50 000 экземпляров, что нетипично для работ студентов, да и мало кого вообще.

Для повышения мотивации студентов к созданию качественно документированных проектов, нами организовано «Движение за открытую проектную документацию» [11], которое дополняет широко известные в мире инициативы в области создания сводного и открытого ПО (Free Software Foundation и Open Source Initiative). Оно может рассматриваться как одна из составляющих «Движения за открытое образование», организованного в мире в начале 2008 г.

(The Cape Town Open Education Declaration).

При использовании описанного подхода, как отмечалось выше, можно решить проблему привлечения молодежи к научным исследованиям в области создания ПО. В настоящее время в эту область (особенно у нас в стране) по указанным выше причинам идут лишь единицы увлеченных молодых людей, а основная масса студентов даже не имеет представления о характере исследовательской работы. Поэтому во время учебы в университете мы стараемся объяснить молодым людям, что «существует лишь один вид наслаждения, который превосходит то, что человеку могут дать другие радости жизни: наслаждение от сознания, что идея хорошо реализована» (академик РАН В.А. Глухих) и что «очарование, сопровождающее науку, может победить свойственное людям отвращение к напряжению ума» (Г. Монж).

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

В результате изложенной организации учебного процесса студенты не только знакомятся с проектированием программ и технологией автоматного программирования, но и учатся писать по-русски [12], что является уникальным явлением для технических вузов страны. Они обучаются созданию проектной документации на ПО, что обычно не вызывает большой радости у двадцатилетних молодых людей. Некоторые из них совершенствуют технологию автоматного программирования и получают научные результаты по программной инженерии, что также не очень характерно для современных российских вузов. Большинство из этих молодых людей после этого продолжают заниматься научной работой и защищают кандидатские диссертации в этой области.

В результате выполнения работ студенты на практике понимают, что был прав Гельвеций, который утверждал, что «для того, чтобы передавать свои мысли, надо гораздо больше ума, чем для того, чтобы их иметь».

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

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

Проектный подход при обучении разработке программ с обязательным выпуском проектной документации в настоящее время становится все более актуальным, так как, по словам академика В.А. Садовничего, «отказ в ряде школ от написания сочинения на выпускном экзамене под предлогом, что больше нет такого вступительного экзамена, может привести к неспособности не только правильно выражать мысли, но и вообще мыслить», и это в условиях, когда «клиповое» мышления и так становится преобладающим.

При реализации описанного подхода преподаватель встречается со студентами каждый день, за исключением воскресений, праздников, непредвиденных обстоятельств и двадцати дней отпуска в августе. Эксперимент в очередной раз показал, что получаемые результаты прямо пропорциональны затрачиваемым усилиям. При этом подтверждается мысль бывшего генерального директора корпорации Нewlett-Рackard Карли Фиорины: «Чем меньше требуешь от человека, тем меньшего он и достигнет». Подтверждается также и другая ее мысль:

«Уверенность руководителя в силах подчиненных является одним из сильнейших мотивирующих факторов», а также высказывание всемирно известного бизнесмена Ли Яккоки: «Все управление, в конечном счете, сводится к стимулированию активности других людей». С возрастом нам стало ясно, что сегодня следует биться не за свою возможность заниматься наукой, а за то, чтобы эту возможность имели наши лучшие ученики, в особенности те, которые работают на постоянной основе на кафедре.

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

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

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

Расширение круга учащихся связано с созданием интернет-практикума [13], который позволяет школьникам освоить проектный подход на основе автоматного программирования [14].

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

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

Для первоначального знакомства с проектированием программ написана книга [15], в которой излагаются основы автоматного программирования.

Опыт внедрения автоматного подхода в лицее «Вторая школа» (Москва) свидетельствует о том, что восьмиклассники могут выполнять такие проекты, качество которых удивляет многих [16].

6. Применение соревновательного подхода в учебном процессе Как отмечалось выше, соревновательный подход (в частности, участие в тренировочных занятиях и соревнованиях) формирует положительные качества, которые не могут быть развиты за счет других видов занятий (например, умение быстро решать задачи на сообразительность). Так, например, такие компании, как Google и Microsoft, которые добились выдающихся результатов в индустрии разработки ПО, широко используют проверку способностей кандидатов при приеме на позиции разработчиков при помощи испытаний, построенных на основе решения олимпиадных задач.

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

При традиционном применении соревновательного подхода необходимой процедурой является просмотр и обсуждение с преподавателем текстов программ. Реализация этой процедуры является дорогостоящей, поскольку требует больших затрат времени высококвалифицированных специалистов, которых, как отмечалось выше, в школах и вузах становится все меньше. В рамках предлагаемого подхода ручная процедура проверки правильности программных решений заменяется автоматической проверкой на системе тестов [17]. На кафедре КТ такой подход одним из первых в стране и мире был использован в 1993 г. при проведении первой в стране командной олимпиады школьников Санкт-Петербурга по информатике и программированию [18]. В дальнейшем развитие соревновательного подхода проходило в направлении совершенствования методики использования автоматического тестирования, развития форм ее применения в учебном процессе и совершенствования программной реализации.

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

Традиционно наиболее широко соревновательный подход реализовывался в форме олимпиад. Поэтому одно из направлений работы было связано с организацией и проведением студентами, аспирантами и сотрудниками кафедры КТ в течение последних почти двадцати лет Санкт-Петербургских (в дальнейшем и Всероссийских) командных олимпиад школьников и студентов по информатике и программированию, четвертьфинальных и полуфинальных соревнований командного студенческого чемпионата мира по программированию. За это время под руководством В.Н. Васильева была создана получившая широкую известность система интернет-поддержки (http://neerc.ifmo.ru) полуфинальных соревнований Северо-Восточного Европейского региона [19], директором которых является В.Г. Парфенов, а также олимпиад школьников, которая сначала выполняла только информационную функцию. Затем ее функциональность была расширена путем добавления доступа к архивам задач, историческим справкам, ссылкам на региональные сайты, персоналиям и т. д. Система интернет-поддержки олимпиад позволяет осуществлять как автоматическую проверку задач, так и автоматическое управление соревнованиями.

Отметим, что в настоящее время требуется совершенно иной масштаб охвата контингента учащихся, так как из-за демографического кризиса и негативных социальных процессов «нельзя потерять ни одного перспективного молодого человека». В последнее десятилетие требования, обусловленные, с одной стороны, расширением масштаба олимпиад, а с другой – формированием у современного молодого человека психологического настроя на использование в учебном процессе современных технологий, привели к применению интернет-технологий [20], вплоть до появления интернет-олимпиад, в которых очные туры отсутствуют полностью.

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

Соревновательный подход позволяет в несколько раз увеличить число обучаемых молодых программистов за счет значительной интенсификации процесса обучения и приближения его к современным требованиям. Силами молодых преподавателей, аспирантов и студентов кафедры КТ создана система Всероссийских личных и командных интернет-олимпиад школьников по информатике и программированию, регулярно проводящихся, начиная с 2003 г. СанктПетербургские интернет-олимпиады проводятся с 2006 г. [21]. Олимпиады предусматривают различные уровни сложности и подведение итогов для каждого уровня в отдельности. Указанные соревнования проводятся через интернет-представительства http://neerc.ifmo.ru/school/io/ и http://olymp.ifmo.ru.

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

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

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

Автоматическое тестирование использовалось и для проверки уровня знаний и компетенций учащихся при составлении программ при компьютерной реализации части «С» единого государственного экзамена по информатике [22].

7. Инновационная система поиска школьников, одаренных в области информатики и программирования, и подготовки высококвалифицированных специалистов в области производства программного обеспечения Как отмечалось выше, построение системы поиска одаренных школьников и подготовки высококвалифицированных специалистов в области производства ПО было начато В.Н. Васильевым и В.Г. Парфеновым в СПбГИТМО в 1991 г. Организационной формой для реализации этой системы стала специально организованная в том году кафедра КТ, которую уже в течение двадцати лет возглавляет В.Н. Васильев. На кафедре практически с самого начала (с 1992 г.) проводилась подготовка бакалавров и магистров по направлению «Прикладная математика и информатика», государственный стандарт для которого в наибольшей степени отвечал целям создаваемой системы.

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

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

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

Студенты, получившие степень бакалавра, могут продолжать свое образование по магистерским программам «Технологии программирования» и «Технологии производства программного обеспечения», разработанным в рамках инновационной программы СПбГУ ИТМО.

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

Высокий уровень научных работ студентов и аспирантов кафедры был, в частности, отмечен такими ведущими специалистами мирового класса в области информатики и программной инженерии как Никлаус Вирт [23], Бертран Мейер [24] и Джон Хопкрофт [25], которые по инициативе факультета информационных технологий и программирования были избраны почетными докторами СПбГУ ИТМО.

Отметим, что применение проектного подхода на младших курсах обеспечивает в дальнейшем качественное выполнение бакалаврских работ и магистерских диссертаций.

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

Для поиска талантливых школьников в Санкт-Петербурге использовалось два основных источника информации. Один из них был связан с установлением контактов практически со всеми учителями математики, физики и информатики ведущих специализированных физикоматематических школ города. В первые годы рекомендации о наиболее способных школьниках собиралась в конце десятого класса и работа с рекомендованными ребятами велась в течение одиннадцатого класса. В последние годы информация стала собираться гораздо раньше, и работа ведется уже в течение нескольких лет – со школьниками восьмого-одиннадцатого классов и даже более младшими ребятами. При ее проведении используются соревновательный и проектный подходы по описанным выше методологиям. При реализации соревновательного подхода для школьников проводятся лекционные и практические занятия по базовым алгоритмам программирования, выдаются домашние задания, которые учащиеся выполняют дистанционно на базе системы автоматического тестирования программных решений, доступной через соответствующее Интернет-представительство (http://neerc.ifmo.ru/freshman/). Примерно один раз в месяц проводится очный соревновательный тур, на котором школьникам предлагаются для решения с использованием автоматического тестирования несколько задач. По результатам этих туров выводится общая оценка школьника по соревновательной части. Одновременно учащиеся выполняют проектную работу, которую защищают перед комиссией с соответствующей оценкой в конце одиннадцатого класса. Сумма оценок по соревновательной и проектной частям дает общую оценку по информатике и программированию, которая учитывается при зачислении абитуриентов на кафедру КТ по результатам ЕГЭ.

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

Для поиска талантливых школьников из регионов используется сочетание соревновательного подхода и дистанционного обучения алгоритмам и методам программирования. Для проведения дистанционного обучения в течение всего учебного года дважды в месяц на сайте http://neerc.ifmo.ru/school/io/ проводятся командные и личные интернет-олимпиады с двумя уровнями сложности, после окончания которых на этом сайте публикуются подробные разборы задач.

Абитуриенты, показавшие хорошие результаты на Всероссийской олимпиаде школьников по информатике, Всероссийской командной олимпиаде школьников по информатике и программированию, учебно-тренировочных сборах и летней компьютерной школе, в проведении которых традиционно принимают активное участие молодые преподаватели, аспиранты и студенты кафедры КТ, получают преимущество при поступлении на кафедру КТ в силу своей лучшей подготовленности к олимпиадам Российского Союза ректоров и ЕГЭ.

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

В результате применения описываемой в данной работе системы на базе кафедры КТ сформировался получивший международное признание центр подготовки одаренных программистов (достижения этого центра приведены в Приложении). Мировую известность принесли университету победы студентов в чемпионатах мира по программированию, которые в настоящее время имеют «вселенский» охват – в 2009 г. на стадии отборочных соревнований участвовало 7109 команд из 1838 университетов 88 стран мира, а в финале – 100 команд победителей полуфинальных соревнований, среди которых команды 27-ми американских и 16-ти китайских университетов. Студенты кафедры КТ семь раз выигрывали полуфинальные соревнования чемпионата мира по программированию (в 1995 году в Амстердаме команда нашего университета не только победила, но и первой из команд российских вузов пробилась в финал чемпионата мира), шесть раз (в 1996, 2001, 2003, 2004, 2007 и 2010 гг.) становились чемпионами России по программированию, и три раза (в 2000, 2005 и 2006 гг.) – вице-чемпионами. В течение многих лет, начиная с 1995 года, студенты университета ИТМО неизменно выходили в финал чемпионата мира, где в 2000 году завоевали серебряные медали, в 1999, 2001, 2003, 2005 и 2007 гг. – золотые, а в 2004, 2008 и 2009 гг. стали чемпионами мира и Европы по программированию. При этом необходимо отметить, что эти выдающиеся результаты на чемпионате мира достигнуты не одной, а семью различными командами университета по три студента в каждой.

На сайте http://snarknews.info о победе СПбГУ ИТМО в 2009 г. сказано следующее:

«СПбГУ ИТМО после этой победы установил или повторил сразу несколько абсолютных достижений чемпионатов мира по программированию. Во-первых, это единственный вуз, становившийся чемпионом мира три раза (также трижды ACM ICPC выигрывал Стэнфордский университет в 1985, 1987 и 1991 гг., но два первых раза это было до того, как турнир был объявлен чемпионатом мира). Во-вторых, СПбГУ ИТМО стал единоличным лидером по числу завоеванных на чемпионатах мира золотых медалей – восемь. В-третьих, СПбГУ ИТМО во второй раз в истории (после побед СПбГУ в 2000 и 2001 гг.) удержал завоеванный титул чемпиона мира, но впервые это сделала команда, не пересекающаяся по составу с предыдущим чемпионом».

Благодаря успехам студентов кафедры КТ университет ИТМО занимает первое место в мировом и российском рейтингах университетов, составленном по результатам выступлений в чемпионате мира по программирования за последние годы. В 2004 г. тренер команд университета ИТМО А.С. Станкевич за выдающиеся успехи был награжден премией ACM как лучший тренер Европы, а в 2008 г. – как один из лучших тренеров мира. Решением оргкомитета чемпионата мира ежегодная премия DeBlasi Award 2009 г. за большой вклад в развитие этих соревнований вручена представителям СПбГУ ИТМО В.Н. Васильеву, В.Г. Парфенову и Р.А.

Елизарову.

Команду университета ИТМО, победившую на чемпионате мира по программированию в 2004 г., принял Президент России В.В. Путин. С командой университета, занявшей третье место на чемпионате мира по программированию 2007 г., встретился первый вице-премьер Правительства РФ Д.А. Медведев, который в ранге Президента РФ принял команду университета, победившую на чемпионате мира в 2009 г. С командами университета, победившими на чемпионатах мира 2004, 2008 и 2009 г.г., встречалась губернатор Санкт-Петербурга В.И. Матвиенко, которая награждала членов и руководителей команды почетными грамотами Правительства Санкт-Петербурга. Достижения команд университета, сформированных из студентов кафедры КТ, в финалах чемпионата мира по программированию, как уже отмечалось, внесли существенный вклад в формирование положительного образа России и Санкт-Петербурга в мировом сообществе.

В 2003 г. за создание системы Всероссийских и Международных олимпиад по информатике и программированию и достигнутые в этих олимпиадах успехи ректору СПбГУ ИТМО, заведующему кафедрой КТ, профессору В.Н. Васильеву, декану факультета «Информационные технологии и программирование», профессору В.Г. Парфенову, старшим преподавателям кафедры КТ Р.А. Елизарову и А.С. Станкевичу была присуждена Премия Президента РФ в области образования.

В последние годы в мире стали также проводиться и индивидуальные соревнования по программированию, которые названы спортивным программированием. Методика подготовки к командным соревнованиям по программированию, разработанная на кафедре, позволила и в этих соревнованиях добиваться выдающихся результатов на международном уровне студентам, аспирантам и выпускникам кафедры КТ [26].

Например, в 2006 г. (см. Приложение) на соревнованиях Google Code Jam Europe (Дублин) представители кафедры КТ заняли третье, шестое и десятое места; на соревнованиях Google Code Jam (Нью-Йорк) в финал вышли пять представителей нашей кафедры, двое из которых заняли третье и седьмое места; на соревнованиях TopCoder Open (Лас-Вегас) в финале участвовали два представителя кафедры, один из которых занял шестое место; на соревнованиях TopCoder Collegiate Challenge (Сан-Диего) в финале принимали участие три студента нашей кафедры, один из которых занял четвертое место.

Представители кафедры КТ добивались успехов и в последующие годы. Так, например, в финале соревнований TopCoder Collegiate Challenge, который проходил в ноябре 2007 г. в Орландо, участвовали два наших студента.

В 2011 г. А.С. Станкевич, участвуя в предварительных соревнованиях, в которых принимало участие более 3000 программистов со всего мира, попал в первую десятку участников очного тура олимпиады, проводимой компанией Facebook.

В результате успехов на соревнованиях TopCoder целый ряд молодых людей, связанных с нашей кафедрой, имеют высокий рейтинг в мировой классификации, что еще больше повышает авторитет кафедры КТ и СПбГУ ИТМО в целом в области подготовки высококвалифицированных программистов, как в стране, так и в мире.

Еще одно международное достижение кафедры КТ состоит в том, что молодые ее сотрудники с 2010 г. тренируют швейцарских школьников в Давосе, а студентов – в Цюрихской высшей политехнической школе (ETH), в которой учились и/или работали 21 Нобелевский лауреат. Эти тренировки привели к тому, что команда ETH впервые в своей истории заняла первое место в своем полуфинале и получила единственную путевку в этом регионе на финал чемпионата мира по программированию. Команду СПбГУ ИТМО на этих соревнованиях «выведет» А.С. Станкевич, а команду ETH – Ф.Н. Царев, причем из-за особенностей названий на английском языке эти команды на соревнованиях будут располагаться рядом.

За последние почти двадцать лет на кафедре КТ сформировался методический, технологический и организационный Центр проведения интернет-олимпиад по информатике и программированию, Всероссийских студенческих и школьных олимпиад, а также четвертьфинальных и полуфинальных соревнований Северо-Восточного Европейского региона чемпионата мира по программированию.

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

одаренных молодых людей на кафедре КТ, в эти годы под руководством В.Н. Васильева удалось организовать молодежную «цепочку», по которой проводилась передача знаний, методологии и технологий проведения олимпиад по информатике и программированию, а также по подготовке их участников.

Эти же молодые люди обеспечивали в то время всю «интеллектуальную» часть городских и районных олимпиад для петербургских школьников, подготовку сборных команд школьников Санкт-Петербурга, сборных команд СПбГУ ИТМО, участвовали в подготовке сборных команд школьников России.

В результате удалось преодолеть трудный период и сохранить указанные методики и технологии до начала существенного улучшения социально-экономического положения страны, позволившего победителям международных олимпиад Р.А. Елизарову, М.А. Казакову, А.С. Станкевичу, Г.А. Корнееву, П.Ю. Маврину, Ф.Н. Цареву и М.В. Буздалову занять ведущие позиции в проведении указанных олимпиад в последние годы.

В 2008 г. за создание инновационной системы подготовки высококвалифицированных программистских кадров, базирующейся на использовании проектного и соревновательного подходов, ректору СПбГУ ИТМО, заведующему кафедрой КТ, профессору В.Н. Васильеву, декану факультета «Информационные технологие и программирование», профессору В.Г. Парфенову, заведующему кафедрой ТП, профессору А.А. Шалыто, доцентам кафедры КТ М.А. Казакову и Г.А. Корнееву была присуждена Премия Правительства России в области образования.

В 2010 г. за разработку учебно-методического обеспечения для подготовки высококвалифицированных программистов доценту кафедры КТ Г.А. Корнееву и старшему преподавателю этой кафедры С.Е. Столяру была присуждена Премия Правительства СанктПетербурга в области образования.

8. Инициатива «Сохраним в университетах лучших!»

Эффективность работы описанной выше системы определяется не только отбором талантливых школьников и их отличной подготовкой при обучении на кафедре, но и за счет инициативы «Сохраним в университетах лучших!», которую поддержал ряд отечественных компаний. Это позволяет оставлять для работы в университете молодых талантливых выпускников и студентов, что было бы невозможно при использовании только бюджетного финансирования. При этом надежда только на молодых совместителей не выдерживает критики, так как «на бегу» нельзя обучать даже бегу. Вот как охарактеризовал образование «на бегу» академик РАН, генеральный конструктор атомных подводных ракетоносцев С.Н. Ковалев: «В этой ситуации еще как-то можно обучать, но нельзя воспитывать».

Последнее замечание является чрезвычайно важным, так как обучение не является единственным результатом образования. В Законе РФ «Об образовании» 1996 г. сказано, что «образование – это целенаправленный процесс воспитания и обучения». При этом, несмотря на то, что после этого было принято более 25 поправок в этот закон, порядок выделенных слов не изменился.

В настоящее время на постоянной основе на кафедре КТ работают:

Андрей Станкевич (год рождения – 1981) – выпускник кафедры КТ 2004 г., лауреат премии Президента РФ 2003 г. в области образования, лауреат премии Правительства СанктПетербурга педагогам-наставникам, подготовившим победителей и призеров Всероссийских олимпиад школьников 2009 г., лауреат Молодежной премии Санкт-Петербурга 2010 г., обладатель серебряной и золотой медалей чемпионатов мира по программированию 2000 и 2001 гг., тренер всех команд университета ИТМО, начиная с 2000 г., доцент кафедры.

Георгий Корнеев (1981 г.) – выпускник кафедры КТ 2004 г., лауреат премий Правительства РФ 2008 г. и Правительства Санкт-Петербурга 2010 г. в области образования, выпускник кафедры КТ 2004 г., обладатель серебряной и золотой медалей чемпионатов мира по программированию 2000 и 2001 гг., кандидат технических наук, доцент кафедры.

Павел Маврин (1984 г.) – выпускник кафедры КТ 2008 г., лауреат премии Президента РФ 2002 г. за успехи на международной школьной олимпиаде по информатике, лауреат Молодежной премии Санкт-Петербурга 2003 г., лауреат премии Правительства Санкт-Петербурга педагогам-наставникам, подготовившим победителей и призеров Всероссийских олимпиад школьников 2009 г., чемпион мира по программированию 2004 г.

Федор Царев (1986 г.) – выпускник кафедры КТ 2009 г., лауреат Молодежной премии Санкт-Петербурга 2007 г. и премии Правительства Санкт-Петербурга в области инноваций 2009 г., чемпион мира по программированию 2008 г.

Максим Буздалов (1987 г.) – чемпион мира по программированию 2009 г., закончил бакалавриат кафедры КТ в 2009 г.

Михаил Царев (1988 г.) – лауреат премии Правительства Санкт-Петербурга в области инноваций 2009 г., закончил бакалавриат кафедры КТ в 2009 г.

6 мая 2009 года на встрече с победителями очередного чемпионата мира студент четвертого курса кафедры КТ М. Буздалов изложил Президенту РФ Д. А. Медведеву идею предлагаемой инициативы, которая была одобрена Президентом: «Это, кстати, хорошая штука. То есть задача заключается в том, чтобы не вытаскивать хорошо подготовленных, одаренных студентов, а просто, чтобы они финансировались за счет компаний и не уходили из университетов, чтобы там эта микросреда сохранялась, как я понимаю. Это хорошая идея. Главное, чтобы к этому были компании готовы». (http://kremlin.ru).

На сегодня нас поддерживают: группа компаний Транзас (президент – Николай Лебедев), ООО Скартел (генеральный директор – Денис Свердлов), компания JetBrains (генеральный директор – Сергей Дмитриев), компания SPB Software (исполнительный директор – Василий Филиппов), компания evelopers (генеральный директор – Андрей Нарвский), компания ДевиноСМС (генеральный директор – Павел Ушанов), компания Одноклассники.ru (президент – Илья Широков), бизнес-центр «Мартышкино» (управляющий – Олег Давыдов). Более подробно с изложенной инициативой можно ознакомиться на сайте http://www.savethebest.ru Выпускники нашей кафедры могут иметь склонность как для работы в промышленности, так и для работы в университете. Естественно, что руководители кафедр факультета информационных технологий и программирования стремятся сохранить в университете молодых людей, ориентированных на университетскую карьеру. Это в основном те, кто хочет и может бесконфликтно работать в коллективе, добился выдающихся достижений в студенческие годы и/или обладают незаурядными способностями, по крайней мере, в двух из четырех областей:

преподавание дискретной математики, информатики и программирования студентам и школьникам;

проведение олимпиад студентов и школьников всех типов и уровней по информатике и программированию в Санкт-Петербурге, России и мире (создание задач, тестов, систем проведения и автоматического тестирования олимпиадных задач, в том числе, и для соревнований, в которых принимают участие сотни и тысячи участников);

подготовка студентов и школьников к соревнованиям по информатике и программированию, как командным, так и личным, всех уровней, включая чемпионаты мира, в том числе и таких молодых людей, которые не связаны с СПбГУ ИТМО (например, в ходе летних компьютерных школ);

проведение научных исследований.

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

Научные исследования, проводимые на кафедре 9.1. Автоматное программирование Основы автоматного программирования, которое также назвается «SWITCHтехнология» или «программирование с явным выделением состояний», были разработаны в 1991 г. [27]. Термин «автоматное программирование» родился в 1997 г. в ходе беседы одного из авторов настоящей статьи с Д.А. Поспеловым на конференции по мультиагентным системам, проходившей в поселке Ольгино под Санкт-Петербургом, и был впервые использован во введении к работе [6]. На английский язык этот термин переводится как «Automata-Based Programming», который был предложен в работе [28].

Автоматное программирование было активно поддержано В.Н. Васильевым, который продолжает внимательно следить за развитием этого направления, оказывая ему всемерную поддержку.

9.1.1. Автоматное программирование как стиль программирования Автоматное программирование является одним из стилей программирования. В работе [29] отмечается: «Термин «автоматное программирование» принадлежит, насколько нам известно, А.А. Шалыто. Во всяком случае, ему принадлежит заслуга в его развитии вопреки моде и мнению большинства».

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

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

В работе [29] подход с использованием автоматов для описания поведения программ был определен как стиль программирования, названный «программирование от состояний». В указанной работе отмечалось, что «это, пожалуй, самый старый стиль программирования, так как на него наталкивает само устройство существующих вычислительных машин, которые представляют собой гигантские конечные автоматы».

На выделение указанного подхода в качестве самостоятельного стиля программирования, на авторов работы [30] повлияла работа [6], на которую они ссылаются, как на современную методику программирования от состояний. В последней было предложено применять автоматы в программировании не от случая к случаю, как одну из моделей дискретной математики, а как универсальный подход, который целесообразно использовать практически во всех случаях, когда программа должна обладать достаточно сложным поведением, и, в особенности, реактивным [31] – реагировать по-разному на события в зависимости от состояний, в которых находится программа.

В заключение раздела отметим, что «программирование с автоматами» нельзя рассматривать как парадигму программирования, так как при этом остается неясным, как с использованием автоматов проектировать и реализовывать программы в целом.

9.1.2. Автоматное программирование как парадигма программирования Очень многие системы, которые для внешнего наблюдателя ведут себя достаточно осмысленно, являются автоматизированными объектами.

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

Задача построения автоматизированных объектов рассматривается в любом курсе теории автоматического управления применительно к объектам различных типов.

Удивительно, что это почти никак не коснулось практики программирования, несмотря на то, что в теории алгоритмов в качестве одной из основных моделей используется машина Тьюринга, которая, по сути, является автоматизированным объектом [32], в котором объект управления – лента (ее ячейки памяти), а система управления – конечный автомат. Сложность программирования на машине Тьюринга [33] определяется тем, что ней используются чрезвычайно простые объекты управления (ячейки памяти), которые могут выполнять только простейшие действия (операции) по записи и стиранию отдельных символов. В этой ситуации вычисления, в некотором смысле, приходится выполнять конечному автомату, который для этой цели не приспособлен, так как его предназначение – управление. Другая особенность машины Тьюринга, которая может резко усложнять программы, это использование только одного автомата, которого достаточно для проведения теоретических исследований, но часто бывает мало для практического применения.

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

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

Учитывая изложенное, в работе [34] была сформулирована основная особенность автоматного программирования – программы предлагается создавать так же, как производится автоматизация технологических (и не только) процессов.

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

Объекты управления могут быть реальными или виртуальными – реализованными программно. В первом случае их логика изменена быть не может, а во втором – она, при необходимости, практически вся может быть вынесена в автоматы.

Парадигма автоматного программирования состоит в представлении и реализации программ как систем автоматизированных объектов управления [34].

В соответствии с этой парадигмой программирования, при проектировании программ предлагается выделять источники информации, систему управления и объекты управления. При этом в качестве системы управления используется система детерминированных конечных автоматов, взаимодействующих между собой, например, за счет вложенности. Автоматы, находясь в определенных состояниях, реагируют на входные воздействия и переходят в новые состояния, формируя при этом выходные воздействия, «указывающие» объектам управления, что они должны делать.

9.1.3. Основные положения автоматного программированиия Основным понятием в автоматном программировании является состояние [6]. При написании автоматных программ предлагается разделять состояния на два класса: управляющие и вычислительные. При этом с помощью небольшого числа управляющих состояний, как и в машине Тьюринга, можно управлять сколь угодно большим числом вычислительных состояний [35]. Во введенной классификации управляющие состояния могут быть названы качественными, а вычислительные – количественными. Поэтому в рамках автоматного программирования основное внимание уделяется управляющим состояниям, которые, если это не оговаривается особо, и рассматриваются в дальнейшем.

При этом справедливо соотношение: «Состояния + входные воздействия = конечный (детерминированный) автомат без выхода». Справедливо также: «Автомат без выхода + выходные воздействия = автомат».

Автоматы могут быть абстрактными (входные и выходные воздействия формируются последовательно) и структурными (входные и выходные воздействия формируются «параллельно»). В автоматном программировании, в отличие, например, от программирования компиляторов, обычно применяются структурные автоматы.

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

Автоматы могут задаваться в различном виде, однако при их проектировании и использовании человеком, они должны обладать когнитивными свойствами [36], что достигается при задании поведения автоматов графами переходов (диаграммами состояний).

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

9.1.4. Достоинства автоматного программирования В рамках автоматного программирования предполагается, что собственно написание (генерация) программы начинается только после ее проектирования. При этом в инженерной практике проект или его этап обязательно завершается выпуском проектной документации. Поэтому при автоматном программировании, основной областью использования которого являются встроенные системы (чисто инженерная область), должна выпускаться проектная документация [11], а не только документацию пользователя, как это обычно принято в программных проектах. При этом для автоматных программ необходимой компонентой, входящей в состав проектной документации, являются графы переходов.

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

При необходимости проведения отладки автоматные программы могут выполняться с применением отладочных протоколов [37], которые отражают поведение программ в терминах автоматов (состояний, переходов, значений входных и выходных воздействий), так как в описываемом подходе к программированию автоматы являются не картинками, как считают многие, а могут быть частью программ, представленных в нетрадиционной для многих программистов визуальной, а не текстовой форме.

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

Создание программ со сложным поведением без использования автоматов приводит к трудностям на всех этапах жизненного цикла. Особенно сложно писать такие программы, так как все особенности их поведения приходится все время держать в голове вместо того, чтобы отобразить их на модели и на время забыть. Еще одним преимуществом автоматных программ является простота внесения изменений в них людьми, для которых автоматный стиль программирования привычен [6].

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

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

9.1.5. Разновидности автоматного программирования С 1991 г. автоматное программирование развивалось в пяти направлениях: логическое управление, программирование с явным выделением состояний, объектно-ориентированное программирование с явным выделением состояний, функциональное программирование с явным выделением состояний и реализация алгоритмов дискретной математики на основе автоматного подхода.

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

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



Pages:     || 2 |


Похожие работы:

«МИНИСТЕРСТВО КУЛЬТУРЫ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное образовательное учреждение высшего профессионального образования Московский государственный университет культуры и искусств Утверждаю: Ректор _Р.Г. Абдулатипов 2011 г. Номер внутривузовской регистрации ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Направление подготовки 030900 Юриспруденция Профили подготовки 1. Государственно-правовой (правовое обеспечение государственного и муниципального...»

«Российская академия наук НАУЧНЫЙ СОВЕТ ПО КЛЕТОЧНОЙ БИОЛОГИИ И ИММУНОЛОГИИ ИНСТИТУТ ЦИТОЛОГИИ ОБЩЕСТВО КЛЕТОЧНОЙ БИОЛОГИИ ПРОГРАММА II Съезда Общества клеточной биологии и Юбилейной конференции, посвященной 50-летию Института цитологии РАН (Санкт-Петербург, 16 - 19 октября 2007 г.) Санкт-Петербург 2007 год Вторник, 16 октября 11.00 – 14.00 Вступительное слово: президент Общества клеточной биологии академик Н.Н.Никольский И.Ф.Жимулёв, Е.С.Беляева, Е.Н.Андреева, О.В.Демакова, Г.В.Похолкова,...»

«Программа краткосрочного повышения квалификации преподавателей и научных работников высшей школы по направлению 150600 Материаловедение и технология новых материалов на базе учебного курса Ультразвуковое и коллекторное компактирование нано- и полидисперсных порошков Цель: Изучение особенностей ультразвукового и коллекторного компактирования нано и полидисперсных порошков. Категория слушателей: преподаватели и научные работники высшей школы Срок обучения: 24 часа Форма обучения: с частичным...»

«2-й Международный книжный форум Москва ПРЕДВАРИТЕЛЬНАЯ ПРОГРАММА ДЕЛОВЫХ МЕРОПРИЯТИЙ ФОРУМА День 1 • пятница • 7 сентября День 2 • суббота • 8 сентября Книжный рынок. Проблемы и решения Books & Digital. Новые технологии для издателей Publishing market. Problems and solutions Books & Digital. New technologies in Publishing Вопросы для обсуждения: Вопросы для обсуждения: КНИЖНЫЙ РЫНОК В 2012-2013 ПЕРЕВОД КОНТЕНТА В НОВЫЕ ФОРМАТЫ И НА НОВЫЕ ПЛАТФОРМЫ БИБЛИОТЕКИ И ИЗДАТЕЛЬСТВА ПРОДВИЖЕНИЕ В...»

«Confrence gnrale rep 30e session Rapport Paris 1999 General Conference 30th Session Report Conferencia General 30a reunin Informe 30 С/REP.2 16 августа 1999 г. Оригинал: английский ДОКЛАД СОВЕТА УПРАВЛЯЮЩИХ МЕЖДУНАРОДНОГО ИНСТИТУТА ПЛАНИРОВАНИЯ ОБРАЗОВАНИЯ О ДЕЯТЕЛЬНОСТИ ИНСТИТУТА (1998-1999 гг.) АННОТАЦИЯ Источник: Статья 4 Устава Международного института планирования образования. История вопроса: В соответствии с указанной выше статьей Совет управляющих Института представляет Генеральной...»

«Информация о ходе выполнения муниципальной целевой программы Жилище на 2012-2015 годы Жилищные проблемы в городском округе Город Комсомольск-на-Амуре являются одними из наиболее социально острых и социально значимых. Постановлением администрации города Комсомольска-на-Амуре от 07 февраля 2012 г. № 348-па утверждена муниципальная целевая программа Жилище на 2012-2015 годы. Основные целевые показатели программы: - Достижение объема ввода жилья за период 2012-2015 годы до 80,5 тыс. квадратных...»

«УТВЕРЖДАЮ Зав. кафедрой. _ 2013 г. РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ТЕХНОЛОГИЯ ИЗГОТОВЛЕНИЯ МСТ-ДАТЧИКОВ (наименование дисциплины (модуля) Направление/специальность подготовки Приборостроение Профиль/специализация подготовки Технология приборостроения Квалификация (степень) выпускника бакалавр (бакалавр, магистр, специалист) Форма обучения очная (очная, очно-заочная) г. Пенза 2013 г. 1. ЦЕЛИ ОСВОЕНИЯ УЧЕБНОЙ ДИСЦИПЛИНЫ Целями освоения учебной дисциплины (модуля) Технология изготовления...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Московский государственный строительный университет (ФГБОУ ВПО МГСУ) УЧЕБНЫЙ ПЛАН Направление подготовки 270800.68 - Строительство Магистерская программа Землеустройство и кадастр недвижимости Квалификация выпускника - магистр Нормативный срок обучения - 2 года Форма обучения - очная I. График учебного процесса II. Сводные данные по бюджету...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ГОРНЫЙ УНИВЕРСИТЕТ ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Направление подготовки: 261400 - Технология художественной обработки материалов Профиль подготовки: Технология художественной обработки материалов Квалификация (степень): Бакалавр Форма обучения: очная Санкт-Петербург, 2013 1 АННОТАЦИЯ 1. ОБЩИЕ ПОЛОЖЕНИЯ 1.1. Основная образовательная программа (ООП) бакалавриата,...»

«ТРЕТИЙ РОССИЙСКИЙ КОНГРЕСС ПО ЭНДОУРОЛОГИИ И НОВЫМ ТЕХНОЛОГИЯМ ПРОГРАММА Ростов-на-Дону 13 – 15 июня 2012 г. Место проведения: г. Ростов-на-Дону, пр. М.Нагибина,30, Вертол-Экспо. Генеральные спонсоры: K. Storz, Olympus Главные спонсоры: Teleflex, Гедеон Рихтер 2 Участники Выставки: 3 Открытие 3 Российского Конгресса по эндоурологии и новым технологиям состоится в 9 ч. 30 мин. 13 июня 2012, г. Ростов-на-Дону, пр. М. Нагибина, 30, Вертол-Экспо Проживание: Порядок работы регистрационной комиссии:...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования Российская академия народного хозяйства и государственной службы при Президенте РФ Воронежский филиал АННОТАЦИЯ РАБОЧЕЙ ПРОГРАММЫ УЧЕБНОЙ ДИСЦИПЛИНЫ Финансовое право Уровень основной образовательной программы: бакалавриат Направление подготовки: 030900.62 Юриспруденция Профиль: Государственно-правовой/Уголовно-правовой/Гражданскоправовой/ Правовое обеспечение...»

«1. Цели освоения дисциплины. Цель изучения дисциплины Расчет и конструирование аппаратов и машин заключается в достижение следующих результатов: ознакомить студентов с современными требованиями, предъявляемыми к оборудованию химических производств, с принципами и правилами конструирования, нормами и методами расчета прочности и долговечности; выработать у студентов практические навыки по расчету прочности и долговечности типовых элементов и узлов химических аппаратов и машин с использование...»

«Отчт о результатах самообследования муниципального бюджетного дошкольного образовательного учреждения детского сада комбинированного вида № 16 Машенька городского округа Тольятти за 2013 – 2014 учебный год I. Общая характеристика образовательного учреждения. Муниципальное бюджетное дошкольное образовательное учреждение детский сад комбинированного вида № 16 Машенька городского округа Тольятти введен в эксплуатацию в 1987 года. Учреждение расположено в Комсомольском районе города Тольятти по...»

«Муниципальное бюджетное образовательное учреждение дополнительного образования детей Детская школа искусств № 3 города Тамбова 2012 г. Рабочая программа дисциплины Ритмика (хореография) Общее эстетическое развитие Программа принята на заседании хореографического отделения ДШИ № 3 г. Тамбова протокол №_от _ _ 2012...»

«Кодекс делового поведения Our pursuit. Life’s potential. Наш Кодекс делового поведения является иллюстрацией руководящих этических принципов, которые используются для обеспечения выполнения обязательств компании Allergan по соблюдению требований. Данный документ является инструментом, который должен использовать каждый из нас в своей работе, для того, чтобы принимать верные решения и действовать с соблюдением профессиональной этики. Но Кодекс делового поведения – это лишь документ. Кодекс...»

«ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет приборостроения, информационных технологий и систем Кафедра Автоматика и телемеханика УТВЕРЖДЕНА Ученым советом факультета приборостроения, информационных технологий и систем _2012 г. Протокол № Декан П.П. Чураков ПРОГРАММА ГОСУДАРСТВЕННОГО ЭКЗАМЕНА, включенного в состав итоговой государственной аттестации ПО СПЕЦИАЛЬНОСТИ 220201 УПРАВЛЕНИЕ И ИНФОРМАТИКА В ТЕХНИЧЕСКИХ СИСТЕМАХ 2012 1. В основу программы положены следующие вузовские дисциплины:...»

«Дистанционная программа MINI-MBA Professional — это сокращенная программа МВА (Мастер Делового Администрирования, англ. Master of Business Administration), которая представляет собой выжимку наиболее важных бизнес-знаний и бизнес-практик. Она актуальна для каждого, кто хочет строить успешную карьеру, нацелен на повышение личной эффективности и ценит свое время. Программа состоит из 6 модулей: Личная эффективность руководителя. Лидерство. Стратегический и операционный менеджмент Управление...»

«АННТОТАЦИИ УЧЕБНЫХ ПРОГРАММ ПО НАПРАВЛЕНИЮ 240100_68Химическая технология Магистерская программа Химическая переработка древесины АННОТАЦИЯ Рабочей программы дисциплины ФИЛОСОФСКИЕ ПРОБЛЕМЫ НАУКИ И ТЕХНИКИ Направление подготовки: 240100.68 Химическая технология Профиль подготовки: Химическая технология переработки древесины Общая трудоемкость дисциплины составляет 3 зачетные единицы (108 часов). Цель и задачи дисциплины Цель изучения дисциплины: Цель данного курса – дать философский анализ...»

«СОДЕРЖАНИЕ ВВЕДЕНИЕ ОБЩИЕ СВЕДЕНИЯ ОБ ОБРАЗОВАТЕЛЬНОЙ ОРГАНИЗАЦИИ Нормативная и организационно - распорядительная документация, регламентирующая образовательную деятельность Филиала Структурные подразделения, обеспечивающие учебный процесс и научно-исследовательскую деятельность. 5 Программа развития филиала до 2016г. ОБРАЗОВАТЕЛЬНАЯ ДЕЯТЕЛЬНОСТЬ Формирование концепции подготовки обучающихся Учебная работа Обобщенная характеристика структуры подготовки обучающихся Довузовская подготовка...»

«ИНФОРМАЦИОННАЯ КАРТА I. Общие сведения Ф.И.О. автора опыта Учреждение, в котором работает Должность Стаж работы в автор опыта (название строго по должности Уставу), адрес с индексом МБОУ Ливенская средняя общеобразовательная школа №2 Красногвардейского района Пузикова Майя Белгородской области Учитель физики и 24 года Николаевна 309900, с. Ливенка информатики и ИКТ Красногвардейского района Белгородской области ул. Советская, 62 II. Сущностные характеристики опыта 1. Тема инновационного...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.