Обучение технологии разработки программного обеспечения в Петрозаводском Государственном Университете
Воронин Анатолий Викторович, д.т.н. (voronin@psu.karelia.ru);
Богоявленский Юрий Анатольевич, к.т.н., заведующий кафедрой информатики и математического обеспечения (ybgv@cs.karelia.ru);
Корзун Дмитрий Жоржевич, к.ф.-м.н. (dkorzun@cs.karelia.ru);
Шабаев Антон Игоревич, к.т.н., директор Центра ПетрГУ-Метсо Систем Автоматизации, (Anton.Shabaev@metsopartners.com)
Государственное образовательное учреждение высшего профессионального образования ПЕТРОЗАВОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ (ПетрГУ), Петрозаводск
Аннотация
Мировые тенденции в информационных и коммуникационных технологиях требуют инновационного развития современной образовательной среды для подготовки кадров в этой области. В Республике Карелия и прилегающих регионах эту задачу решает Петрозаводский государственный университет, накопивший богатый опыт подготовки специалистов по разработке программного обеспечения. В докладе обсуждается опыт организации соответствующей системы подготовки.
Мотивация
Республика Карелия входит в Северо-Западный федеральный округ, имеет благоприятное геоэкономическое положение, запасы природных ресурсов, добывающие и перерабатывающие отрасли промышленности, быстро развивающиеся отрасли сервиса и туризма. Отличительной особенностью Карелии является географическая близость как к центральным индустриально-высокоразвитым районам России так и к странам Северной Европы и ЕС.
Стратегия развития республики предполагает, что эффективное использование приграничного положения со странами ЕС позволит стать Карелии территорией взаимодействия экономики и культуры России и стран Северной Европы на основе взаимовыгодного партнерства и системы международного разделения труда в информационной, научно-технической и инновационной сферах. Решение этой задачи требует современной образовательной среды для подготовки высококвалифицированных кадров в области информационных и коммуникационных технологий (ИКТ). Ответственность за решение этой задачи несет Петрозаводский государственный университет (ПетрГУ) - региональный многопрофильный классический университет, созданный в 1940 г. Он играет ведущую роль в научном и кадровом обеспечении социально-экономического развития региона, развитии инновационно-производственной деятельности и международного сотрудничества Карелии и Европейского Севера России.
Будем понимать термин ИКТ в широком смысле, как аналог принятого в США термина "Computing". В 90-е годы XX века произошла диверсификация деятельности специалистов по ИКТ, которая привела к образованию семейства из пяти дисциплин [1]: "ЭВМ, комплексы, системы и сети" (Computer Engineering - СЕ), "Информатика" (Computer Science - ИН), "Информационные системы" (Information Systems - ИС), "Информационные технологии" (Information Technology - ИТ) и "Технология разработки программного обеспечения (ПО)" (Software Engineering - ТП).
К настоящему времени в ПетрГУ накоплен богатый опыт по созданию, апробации и внедрению в учебный процесс разнообразных элементов, формирующих образовательную среду по ИКТ. В данном докладе представлена сквозная наследуемая система, ориентированная на подготовку ИКТ-специалистов по дисциплине ТП (система ИКТ-ТП).
С точки зрения инновационно-производственной деятельности и международного сотрудничества именно ТП является ключевой дисциплиной для подготовки требуемых региону ИКТ-специалистов. Во-первых, она существенно опирается на методы других четырех дисциплин и, следовательно, требует от подготавливаемых специалистов соответствующих широких знаний и навыков. Во-вторых, наличие у специалистов знаний и навыков по разработке специализированного наукоемкого ПО отвечает потребностям региона как ориентированного на инновационную стратегию развития.
Требования к системе подготовки ИКТ ТП
Анализ современных методов подготовки ИКТ-специалистов и рынка соответствующей рабочей силы приводит нас к выделению следующих компетенций, которыми должны обладать такие специалисты.
- Компетенция программирования (программирование в малом). Определяет владение современными методами построения алгоритмов и программ. Эти знания являются частью дисциплины ИН. Необходимость вызывана тем, что экономике РК требуется наукоемкое ПО, разработка и аттестация которого невозможна без методов теоретической информатики и прикладной математики.
- Сетевая компетенция. Определяет владение современными сетевыми технологиями. Этот раздел знаний (код NC) включен в дисциплину ИН в 2001 г. [2]. Его необходимость вызвана тем, что современное ПО практически всегда является сетевым.
- Прикладная ИТ-компетенция. Определяет владение современными информационными технологиями с точки зрения их приложений в промышленности Эти знания являются частью дисциплины ИС.
- Компетенция программных проектов (программирование в большом). Определяет умение работать в команде (проектная работа по разработке программного обеспечения). Эти знания непосредственно попадают в дисциплину ТП. Их необходимость вызывана тем, что создание коммерческого ПО является одним из центральных секторов инновационной экономики.
- Управленческая компетенция. Определяет умение управлять командными проектами. Эти знания находятся на стыке дисциплины ТП и проектного менеджмента. Необходимость вызвана тем, что успешность командных проектов во многом определяется качеством управления.
- Мультикультурность. Определяет знание национальных, в том числе и родных, культурных ценностей и традиций. Эти знания не являются частью ИКТ, однако исключительно необходимы при работе в международной среде.
Таким образом, требуемая система ИКТ-ТП должна быть ориентирована на обучение перечисленным компетенциям.
Российский и мировой опыт показывает, что для обеспечения высокого качества образования система подготовки должна быть сквозной и наследуемой. В случае ИКТ-ТП это означает следующее.
Сквозная система. Задана единая концепция обучения дисциплин ИКТ. Преподавание различных дисциплин использует единые методики и инструментарий. Явным образом определяются междисциплинарные связи, в первую очередь связи между ИКТ и другими дисциплинами, в которых ИКТ находит приложения.
Наследуемая система. Особое внимание уделяется использованию знаний и навыков, полученных на предыдущих этапах обучения. Закрепление и усиление на очередном шаге достигнутого ранее уровня подготовки специалиста.
Опыт ПетрГУ
В настоящее время ПетрГУ ведет подготовку ИКТ-специалистов по следующим семи специальностям и направлениям, определяемых государственными образовательными стандартами.
- Прикладная математика и информатика.
- Информационные системы и технологии.
- Бизнес-информатика.
- Автоматизированные системы обработки информации и управления.
- Информатика и вычислительная техника.
- Информационно-измерительная техника и технологии.
- Системы автоматизированного проектирования.
Общее число студентов составляет 2300 человек, что приводит к ежегодному выпуску порядка 400-500 специалистов.
В соответствии с образовательными стандартами дисциплина ТП является наиболее значимой для первых трех из перечисленных специальностей. В ПетрГУ подготовка по ним ведется на математическом факультете. Начало разработки системы ИКТ-ТП относится к 1993 г., когда была открыта специальность "прикладная математика и информатика" (ПМИ). Подготовка по ней идет по двум схемам: традиционное пятилетнее обучение специалиста и схема "бакалавр - магистр" [3, 4, 5]. Учебный план был разработан с учетом рекомендаций Computing Curricula 1991, 2001 и 2005. За тринадцать лет факультет выпустил 269 бакалавров, 191 специалиста и 73 магистра.
В 2001 г. было открыто направление "информационные системы и технологии" по пятилетней схеме обучения. В 2006 г. был открыт бакалавриат по направлению "бизнес-информатика".
Система ИКТ-ТП
Для всех трех специальностей, подготовка по которым ведется на математическом факультете ПетрГУ, фундаментальные основы ИКТ сходны. Тем самым, ядро системы подготовки ИКТ-ТП используется независимо от специальности. В первую очередь это касается обучения на 1-3 курсах. Общепрофессиональные и специальные дисциплины, учитывающие особенности конкретной специальности, читаются, в основном, на старших курсах (3-5 курсы). Таким образом, на факультете новые специальности во многом наследуют разрабатываемую изначально для ПМИ систему подготовки ИКТ-ТП.
Этап 0. Клуб творчества программистов. Обучение ИКТ-ТП начинается с самых ранних этапов обучения. ПетрГУ накопил богатый опыт по проведению и участию в олимпиадах по программированию. При этом специализированная подготовка по программированию, алгоритмике и математике начинается в школе.
При ПетрГУ создан Клуб творчества программистов, целью которого является подготовка школьников и студентов младших курсов (1-3 курсы) алгоритмике и программированию [3-4]. В клубе занимается ежегодно порядка 100 человек. Еженедельно проводится 3-4 занятия и одно соревнование. Клуб организует командные и индивидуальные олимпиады по программированию (вузовские, городские, республиканские). Регулярно проводятся зимние и летние сборы сильнейших команд России по программированию. Подготавливаемые студенческие и школьные команды участвуют в командном чемпионате мира по программированию, проходящем ежегодно под эгидой АСМ (см. таблицу 1). Ответственной за клуб является кафедра прикладной математики и кибернетики.
Таблица 1. Участие ПетрГУ в Чемпионате мира по программированию среди студенческих команд
Сезон | Полуфинал (СНГ и Прибалтика) | Финал |
2001-2002 г. | 5-е место | 18-е место (Гонолулу) |
2003-2004 г. | 13-е место | 27-е место (Прага) |
2005-2006 г. | 8-е место | 19-е место (Сан-Антонио, США) |
2006-2007 г. | 5-е место | 13-е место, бронзовая медаль чемпионата (Токио) |
Таким образом, клуб является эффективным инструментом для обучения компетенции программирования, являющейся фундаментальной компонентой ИКТ. В процесс такого обучения включаются и вводные элементы других компетенций в соответствии с требованиями сквозного наследуемого характера системы подготовки.
Активное использование сетевой инфраструктуры соревнований неявно привлекает сетевую компетенцию. Решаемые задачи по программированию, несмотря на их математический и зачастую абстрактный характер, возникают из научно-практических исследований ученых ПетрГУ и, тем самым, происходит введение в прикладную компетенцию. Большинство соревнований по программированию, являясь командными, затрагивают компетенции программных проектов и управления. Участие в российских и международных мероприятиях необходимо требует мультикультурных знаний и навыков.
Этап 1. Базовое обучение. Начальные этапы обучения (1-2 курсы) предназначены для освоения студентами фундаментальных понятий указанных выше ИКТ-компетенций. Система ИКТ-ТП использует последовательность вводных учебных дисциплин по ИКТ, представленную в таблице 2 (математические курсы не представлены). Эта последовательность сходна для всех трех ИКТ-ориентированных специальностей математического факультета.
Таблица 2. Вводные учебные дисциплины по основам ИКТ (этап 1)
1-й семестр | 2-й семестр |
Введение в ИКТ | Язык процессов shell |
Введение в процессоры (язык ASM) |
Введение в программирование и алгоритмы (язык С) | Алгоритмы, структуры данных и введение в ООП (язык С++) |
Дискретная математика | Математическая логика |
|
3-й семестр | 4-й семестр |
Комбинаторные алгоритмы |
Компьютерные сети | Операционные системы |
|
ООП в среде Java ООП в среде .NET |
Базы данных | |
Идея этой последовательности - параллельное ознакомление с архитектурой процессора и основными стандартными приемами процедурного программирования на языке С. При этом используется разработанная нами методика преподавания курса "Введение в процессоры" для первокурсников с разработкой простых программ на языке ассемблера для реальных процессоров. Такой подход, в частности, позволяет избежать серьезных трудностей, возникающих при использовании во вводном курсе по программированию объектных языков (например, Java).
Мы опираемся на языки С и С++, поскольку они являются прародителями большинства современных языков, активно используются в индустрии ПО и, по сути, являются основой современной культуры программирования и средством общения в профессиональных сообществах. На базе культуры C легко строить курсы по методам ООП, операционным системам, сетевым технологиям, методам трансляции и другим базовым курсам ИКТ.
Дисциплины из таблицы 2 обеспечивают базовую подготовку по компетенции программирования и, частично, сетевой компетенции. В силу особой важности сетевой компетенции в 2001 г. было открыто специализированное направление подготовки "Системные сетевые технологии". Студенты здесь получают дополнительные знания и навыки в рамках дисциплин по выбору и факультативных дисциплин: "Программирование в среде Unix", "Основы взаимодействующих систем (Concurrent Systems)", "Сетевое программирование".
Ответственными за этот этап подготовки выступают кафедра прикладной математики и кибернетики и кафедра информатики и математического обеспечения. При этом первая отвечает за прикладную ИТ-компетенцию, а вторая - за сетевую компетенцию, включающую специализированное направление подготовки "Системные сетевые технологии". Компетенция программирования существенно затрагивается в рамках учебных дисциплин обеих кафедр.
Этап 2. Технология разработки ПО. Освоив дисциплины базового блока студенты к 3 курсу получают необходимые навыки и осваивают ключевые инструменты, требуемые для создания современного ПО. Следующий этап обучения (3 курс) предназначен для получения навыков проектной деятельности в ИКТ. В системе ИКТ-ТП для этого предусмотрена последовательность учебных дисциплин, представленная в таблице 3 (математические и специальные дисциплины не представлены).
Таблица 3. Учебные дисциплины по базовым методам разработки современного ПО (этап 2)
5-й семестр | 6-й семестр |
Технология производства программного обеспечения. Групповой программный проект. |
Языки программирования и методы трансляции | Архитектура ЭВМ |
Методы оптимизации |
Проектирование информационных систем | Методы вычислительной математики. Алгоритмы анализа данных |
Годовой курс "Технология производства ПО" включает как теоретический материал, так и учебную практику, выполняемую в виде групповых проектов. В 5-м семестре выполняется "минипроект", когда студенты параллельно с освоением теории пытаются применять ее на практике в рамках очень простого проекта по разработке ПО.
В конце 5-го семестра студентам предлагаются более сложные программные проекты, которые они будут разрабатывать в 6-м семестре. В настоящий момент в качестве заказчиков выступают, как правило, сотрудники университета, по заявкам которых формируется набор тем проектов (размещается на web, см. http://www.cs.karelia.ru). По завершению лекционного курса студенты выбирают проект и формируют группы разработчиков (4-6 человек). Проекты в силу учебного характера сохраняют простоту, но существенно приближены к реальным промышленным условиям (планирование, анализ требований, полноценный набор документации, процедуры обеспечения качества, выбор и следование стандартам, тестирование, аттестация и т.п.). нами разработаны методические указания для заказчиков, инструкторов и студентов, а также шаблоны документации проектов.
Реализация проектов дает студентам базовые знания и навыки, как по компетенции проектов, так и по компетенции управления. Параллельно с этой дисциплиной идет курс "Проектирование информационных систем", усиливающий подготовку по соответствующим компетенциям. Дополнительно на этом этапе мы внедряем соответствующие методы выполнения групповых проектов и в курсовые работы, когда студенты подключаются к исследованиям, ведущимся на факультете, входя разработчиками в команду соответствующих проектов.
Остальные учебные дисциплины из таблицы 3 ориентированы на то, чтобы наследуемым образом продолжить освоение прикладной ИТ-компетенции. В первую очередь, мы ориентируемся на методы, применяемые при создании наукоемкого ПО, а значит требующие существенной математической подготовки.
Дополнительно в виде дисциплин по выбору читаются курсы "Инструментальные средства разработки ПО", "Обеспечение качества ПО" и "Генерация лексических и синтаксических анализаторов". Эти дисциплины ориентированы, в первую очередь, на специализированное направление подготовки "Системные сетевые технологии", поскольку наследуют материал, ранее читаемый для этого направления.
Таким образом, на этом этапе основное внимание уделяется базовым методам разработки современного ПО. Ответственными кафедрами здесь являются кафедра информатики и математического обеспечения и кафедра прикладной математики и кибернетики. Кроме того, часть учебного материала по прикладной ИТ-компетенции предоставляется кафедрой математического моделирования и систем управления.
Эффективность такого обучения подтверждается апробацией студенческих программных проектов на российском и международном уровне. Так в 2002/03 учебном году на кафедре информатики и математического обеспечения был начат проект Web-SynDic [7,8], который в марте 2004 г. получил диплом I степени на ежегодном открытом конкурсе-конференции теоретических и практических работ "Технологии Microsoft в теории и практике программирования". В 2003/04 учебном году ПетрГУ совместно с Хельсинкским университетом (Финляндия) был реализован совместный студенческий проект DaCoPAn [5,6]. В марте 2005 г. этот проект также был представлен на открытом конкурсе-конференции теоретических и практических работ "Технологии Microsoft в теории и практике программирования" и получил диплом I степени. В марте 2007 г. на этом же конкурсе-конференции от ПетрГУ были представлены два студенческих проекта, которые получили дипломы II и III степени.
Этап 3. Исследовательские и промышленные проекты
По завершении этапа 1 студенты осваивают базовые теоретические и практические знания по разработке ПО в условиях приближенных к промышленным. После этого по системе ИКТ-ТП мы переходим к внедрению подготавливаемых специалистов в реальные научные исследования и промышленную деятельность.
Это внедрение происходит, в первую очередь, на кафедрах (если студент ориентируется на научно-исследовательскую карьеру) и на Центре ПетрГУ-Метсо Систем Автоматизации (если студент ориентируется на карьеру в наукоемкой промышленности).
Центр создан при ПетрГУ в 2001 г. в результате сотрудничества с компанией Метсо Систем Автоматизации, идущего с 1993 г. Миссией Центра является оказание услуг в сфере информационных технологий и разработка автоматизированных систем управления предприятиями и технологическими процессами. Направления деятельности Центра включают решение сложных оптимизационных и информационно-аналитических задач в области управления производством; разработку математических моделей, алгоритмов решений и программных комплексов для решения оптимизационных задач; обучение специалистов с сфере информационных технологий.
Основной отличительной чертой Центра является автоматизация нестандартных и сложных бизнес-процессов с применением математического аппарата для решения таких сложных задач, как оптимальное планирование, распределение ресурсов, задачи оптимального размещения, раскроя, комплектования.
Статус Центра как структурного подразделения ПетрГУ дает уникальную возможность формировать для реализации проектов группы разработчиков, состоящие из опытных докторов и кандидатов наук, аспирантов и студентов старших курсов. Разработки Центра успешно внедряются на промышленных предприятиях и других организациях не только Карелии и России, но и Северной Европы. Реализованные на практике проекты составили основу 2 докторских и 6 кандидатских диссертаций.
Этап 4. Трансграничное обучение
В результате обучения на предыдущих этапах формируются специалисты, способные работать в реальных условиях передовых научных исследований или комплексных наукоемких промышленных разработок. Однако для формирования специалистов международного уровня требуется дополнительная подготовка по мультикультурной ИКТ-компетенции.
В рассматриваемой системе ИКТ-ТП это реализуется в рамках совместного сотрудничества с университетами и промышленными компаниями стран Северной Европы и ЕС, в первую очередь, Финляндии. Упомянем лишь два наиболее ярких примера.
- Сотрудничество с кафедрой информатики Хельсинкского университета (с 1993 г.).
- Сотрудничество с компанией Метсо Систем Автоматизации (с 1993 г.).
В рамках первого происходят совместные научные исследования и методические разработки. Важными вехами здесь являются разработка общего ядра учебных планов [12] и реализация совместного студенческого распределенного проекта по разработке ПО [8, 9]. Таким образом, студенты старших курсов подключаются к международным научным исследованиям по ИКТ, в которых Хельсинкский университет занимает лидирующие позиции в ЕС.
В рамках второго выполняются промышленные разработки международного уровня с активным участием студентов, а также ранее подготовленных по системе ИКТ-ТП специалистов. При этом имеется крайне удачно сочетание сильной математической и алгоритмической подготовки, традиционной для Российской школы, и лидирующего положения компании Метсо Систем Автоматизации в ИТ- и АСУ- промышленности ЕС.
В настоящее время нами ведутся дальнейшие работы по усилению этого этапа подготовки за счет создания Трансграничного Российско-Финляндского университета, в состав которого по направлению ИКТ входят три российских университета (Санкт-Петербургский государственный университет, Санкт-Петербургский государственный политехнический университет, Петрозаводский государственный университет) и четыре финских университета (Хельсинкский университет, Лаппеенрантский технологический университет, Университет г. Куопио, Университет г. Йоенсуу). В рамках этого университета ПетрГУ будет готовить магистров по ИКТ-ТП (пока только по направлению "Прикладная математика и информатика"). Разработан соответствующий рабочий учебный план. Набор первых студентов планируется в 2007/08 учебном году.
Заключение
Почти четырнадцатилетний опыт ПетрГУ по созданию и внедрению в учебный процесс системы подготовки ИКТ-специалистов, ориентированных на разработку наукоемкого ПО показывает, что разработанная система эффективна. Предложенная схема обучения постепенного выведения студента на работу в реальных проектах позволяет за несколько лет подготовить высококвалифицированного специалиста международного уровня. Соответствующие выпускники достаточно легко находят работу по специальности, причем не только в пределах Республики Карелия и Европейского Севера России, но и в таких высококонкурентных регионах как г. Санкт-Петербург, Москва, также страны Северной Европы и ЕС.
Литература:
- IEEE/AIS/ACM Joint Task Force on Computing Curricula. Computing Curricula 2005. The Overview Report covering undergraduate degree programs in Computer Engineering, Computer Science, Information Systems, Information Technology, Software Engineering. 2005 (http://www.computer.org/curriculum или http://www.acm.org/education/curricula.html).
- Рекомендации по преподаванию информатики в университетах / Ред. В. Л. Павлов, А. А. Терехов. СПб.: Изд-во СПбГУ, 2002. С. 367.
- Воронин А. В. Профессионально-образовательная программа для подготовки бакалавров по направлению Е02 "Прикладная математика и информатика" / А. В. Воронин, Ю. А. Богоявленский, В. А. Кузнецов, В. В. Поляков, Г. С. Сиговцев // Тезисы докладов Всероссийской научно-методической конференции "Методические основы функционирования и развития системы многоуровневого образования". Саратов: Изд-во Саратовского гос. тех. ун-та, 1993.
- Voronin Anatoly. Using of Computing Curricula 1991 for Transition from "Mathematics" to "Applied Mathematics and Computer Science" Baccalaureate Program / I. Bogoiavlenski, A. Pechnikov, G. Sigovtsev, A. Voronin // Abstracts of Conference ITiCSE'97. Uppsala: University of Uppsala, 1997. P. 8.
- Богоявленский Ю.А. Подготовка специалистов по информа-ционным и коммуникационным технологиям на базе семейства стандартов "Прикладная математика и информатика". Материалы международной конференции "Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы". Петрозаводск: Изд-во ПетрГУ, 2006. Ч. 1. С. 33-45 http://www.cs.karelia.ru/news/2006/files/sorucom-ybgv-ru.pdf
- Воронин А. В., Кузнецов В. А. Корзун Д. Ж. Командные олимпиады по программированию: организация, задачи и решения. Петрозаводск: Изд-во ПетрГУ, 2001. 268 с.
- Командные олимпиады по программированию: Материалы летней школы ПетрГУ. Петрозаводск: Изд-во ПетрГУ, 2004. 92 с. Под ред. В.А.Кузнецова и А.М.Смолий.
- Веркамо И., Тайна Ю., Богоявленский Ю. А., Корзун Д. Ж., Туохиниеми Т. Distributed Cross-Cultural Student Software Project: A Case Study. Proceedings of the 18th Conference on Software Engineering Education & Training (CSEET'05), 2005, pp. 207-214.
- Проект DaCoPAn. Электронный ресурс разработки. http://dacopan.cs.karelia.ru/
- Богоявленский Ю.А., Корзун Д.Ж., Кулаков К.А., Крышень М.А. Проект Web-SynDic: Система удаленного решения линейных диофантовых уравнений в неотрицательных целых числах. Материалы международной конференции "Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы". Петрозаводск, Изд-во ПетрГУ, 2006. Ч. 1. С. 136-145.
- Проект Web-SynDic. Электронный ресурс разработки. http://websyndic.cs.karelia.ru/
- Bogoyavlenskiy Yury, Alanko Timo. Common Core of Working Sudy Program in Computer Science. http://www.cs.karelia.ru/fdpw/2003/YBGV/IOuri_Common-Core.pdf
|