Ana səhifə

Проф. А. В. Воронин, доц. Ю. А. Богоявленский, доц. Д. Ж. Корзун, мф, ПетрГУ


Yüklə 111.37 Kb.
tarix25.06.2016
ölçüsü111.37 Kb.

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



Проф. А. В. Воронин, доц. Ю. А. Богоявленский, доц. Д. Ж. Корзун, МФ, ПетрГУ


1. Введение

Согласно [1] мы используем термин “Информационные и коммуникационные технологии” (ИКТ) в широком смысле, как аналог принятого в США термина “Computing”.

В [2] обосновано, что в 90-е годы XX века произошла диверсификация деятельности специалистов по ИКТ, которая привела к образованию семейства из пяти дисциплин: “ЭВМ, комплексы, системы и сети” (Computer Engineering), “Информатика” (Computer Science — ИН), “Информационные системы” (Information Systems — ИС), “Информационные технологии” (Information Technology — ИТ) и “Технология разработки программного обеспечения”1 (Software Engineering — ТП). Авторы [2] полагают, что содержанием ИН по-прежнему остается теоретическая информатика, а ИС — проектирование информационных систем, генерирующих, обрабатывающих и распределяющих данные в организации с точки зрения их содержания и деловых процессов для достижения конкурентных преимуществ. Отмечено также, что ТП постепенно выделилась из ИН, а ИТ появилась недавно для подготовки специалистов по управлению, поддержке и планированию сложных сетевых инфраструктур, без которых не могут работать современные организации.

Сравнительный анализ [1] Ядер совокупностей базовых знаний дисциплин ИН, ИС, ТП и ИТ показал, что Ядро ИН практически полностью включено в остальные Ядра. При этом все Ядра содержат большой объем математических курсов. Оказалось также, что Российский стандарт бакалавриата «Прикладная математика и информатика» позволяет свободно разместить в нем Ядра всех четырех дисциплин, обеспечивая одновременно формирование у студента математической культуры и, тем самым — фундаментальность подготовки.

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

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


2. Открытые программные платформы и их преимущества

Существует система лицензий, регулирующих использование ПО с открытым кодом (open source) и свободного (free) ПО [3,4]. В данной статье под термином «открытые программные платформы» (ОПП) мы будем понимать программные системы, имеющее, как правило, открытые исходные коды и бесплатно доступные для использования в ВУЗах.

В настоящее время ОПП, и прежде всего ОС на базе UNIX, реально используются для управления самым широким спектром аппаратных архитектур от грид систем и параллельных кластеров в научных проектах (например [5]) до смартфонов и Интернет планшетов - коммерческих продуктов флагманов индустрии ИКТ (Moblin, Google Android, LiMo, Maemo [6]).

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

Уникальная роль UNIX определяется тем, что ведущие мировые производители активно проектируют и выпускают на рынок системы с новыми все более сложными архитектурами. При этом, за счет продолжающейся миниатюризации растет вычислительная мощность. Так, Интернет планшет N900 корпорации Nokia по мощности сравним с персональной ЭВМ 7 летней давности.

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

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

- прямое использование языков программирования (прежде всего С/С++) без применения визуальных инструментов, необходимое для работы в области системного программирования;

- способность к работе в области разработки операционных систем;

- овладение базовыми классическими инструментами разработки ПО (сборщики проектов, профайлеры, статические анализаторы и т.п.).

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

3. Опыт использования открытых программных платформ

3.1. Схема учебных дисциплин

Предлагаемая нами схема опирается на следующие общие принципы. Вычислительная среда кафедры реализована на ОС Linux (с 1994 г.). При этом естественным представляется использование языка С в качестве основного. Он изучается с первого семестра и выступает базовым инструментом в значительной части учебных дисциплин. Язык С является индустриальным стандартом де-факто, на нем разрабатывается 40% открытого ПО2.

На кафедре создана многосерверная вычислительная система (2000 г.), в которой инструменты для практических работ сосредоточены на студенческой серверной ЭВМ. Доступ к ней легко реализуется с помощью программ ssh (Linux) и Xming/PuTTy (MS Windows). Такая организация позволяет практически полностью элиминировать зависимость студентов от версий ПО, установленного в классах или на домашних ЭВМ.

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


3.2. Годовая дисциплина «Технология разработки ПО»

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

Таблица 1. Схема учебных дисциплин

Семестр 1

Семестр 2

  • Алгоритмы и структуры данных (С++)

  • Разработка интерфейсов (gtk)

  • Введение в процессоры (gas)

Семестр 3

Семестр 4

  • Компьютерные сети

  • Комбинаторные алгоритмы

  • Программирование в UNIX

  • ООП в среде Java

  • Основы взаимодействующих параллельных (concurrent) систем

  • Операционные системы

  • Комбинаторные алгоритмы

  • Базы данных

  • ООП в среде .NET

  • Разработка приложений для платформы Maemo

Семестр 5

Семестр 6

  • Языки программирования и методы трансляции

  • Технология разработки ПО

  • Web технологии: Введение

  • Сетевые инструменты разработки ПО

  • Разработка приложений для платформы Symbian

  • Трехмерная визуализация

  • Web технологии: Java

  • Командный программный проект

  • Web технологии: PHP

  • Управление качеством ПО

  • Архитектура сетевых ЭВМ

Семестр 7

Семестр 8

  • Подготовка научных текстов

  • Web технологии. Xslt

  • Технологии мультимедиа

  • Введение в параллельные вычисления

  • Распределенные системы

  • Web технологии: Ajax

  • Адаптивное управление данными

  • Методы эффективной маршрутизации

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

Рассмотрим организационные и методические аспекты дисциплины ТП для 3-го года обучения [8]. Цель — формирование у студентов компетенции программирования в большом. Дисциплина обеспечивает закрепление полученных ранее базовых знаний инструментов ОПП и формирование навыков работы в команде и с заказчиком, управления проектом, реализации жизненного цикла ПО, представления и защиты разработки.

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

В семестре 6 студенты выполняют разработку более сложных программных проектов (заказчик, 4-6 разработчиков, 8 часов на человека в неделю). Проекты приближены к промышленным условиям. Заказчиками выступают сотрудники вуза и представители промышленности. По их заявкам формируется набор тем проектов.

3.3 Проекты на платформе Maemo

Полученный нами опыт позволил организовать в рамках учебного процесса разработку прототипов промышленных приложений в ОПП Maemo. Платформа Maemo основана на ОС Linux и разрабатывается корпорацией Nokia для Интернет планшетов N8xx, N900. Развитие ИТ-парка ПетрГУ предполагает создание подразделения разработки в среде Maemo. Работа по подготовке разработчиков была начата весной 2008 г. при поддержке Программы университетского сотрудничества в России и СНГ Исследовательского центра Nokia (NRC, Хельсинки).

Для проведения предварительного отбора студентов разработан интенсивный шестидневный курс в среде Moodle по программированию для платформы Maemo. Сформирован коллектив преподавателей.

В вычислительную систему кафедры добавлена серверная ЭВМ и установлены следующие системы поддержки. 1) терминальный сервер с набором инструментов Scratchbox для кросс-компиляции maemo приложений. 2) web-сервер для доступа к учебным и техническим материалам. 3) репозиторий SVN и система wiki для взаимодействия разработчиков. Обеспечивается параллельная работа нескольких десятков разработчиков. Реализована версия серверной ЭВМ на ноутбуке для проведения выездных тренингов.

В августе проведена летняя школа «Интернет-планшет 2008», на которой инициировано 23 минипроекта. Работа над ними продолжена в осеннем семестре на лабораторных и факультативных занятиях. Для привлечения новых студентов разработан двухдневный интенсивный курс в среде Moodle, который опробован на зимней школе «Интернет-планшет 2009» для студентов ПетрГУ и на выездных тренингах 5-го семинара FRUCT в апреле 2009 г. [9] и для сотрудников компании "Тэлма Софт" (Нижний Новгород) в сентябре 2009 г.

На подготовительном этапе отобрано 28 студентов. Проекты, приближенные к производственным условиям, организуются в весеннем семестре. В начале 2009 г. определяются и согласуются с NRC технические задания на четыре проекта. Три из них ориентированы на сервисы социальных сетей (Vkontakte (My-Socials), Google calendar (Kimi), Livejournal (Scribo), а четвертый — на web-сервисы торговых бизнес систем. Некоторые метрики разработки представлены в табл. 2 (см. текущее состояние и детали проектов в [10]).


Таблица 2. Метрики студенческих проектов Maemo (итерация II, сентябрь 2009)

Проект

Метрики


My-Socials

Kimi

Scribo

Mobile Trade

Строк кода: всего / комментариев

ANSI C: 10913 / 3081

ANSI C:

5746 / 1141



ANSI C:

11140 / 3273

Python:

707 / 88


C++:

4625 / 1435



Системное тестирование: тестов / проверок / запусков

9 / 20 / 221

13 / 73 / 282

8 / 79 / 189

10 / 27 / 47

Человеко-часов: всего / человек / на разработчика

691 / 5 / 138

555 / 3 / 185

778 / 4 / 195

969 / 4 / 194

На итерации I (февраль – май, 16 недель) разрабатываются концептуальные прототипы приложений, которые представляются на 5-м семинаре FRUCT [9]. Команды разработчиков состоят из 5-7 человек, каждый тратит до 16-18 часов в неделю. Менеджеры проектов — преподаватели кафедры. Особое внимание уделяется специфике Maemo программирования и взаимодействию в команде.

В июне 2009 г. выполняется анализ достигнутых результатов и планируется итерация II, которая начинается в июле-августе 2009 г. как учебная практика студентов в ИТ-парке ПетрГУ. Концептуальный прототип приложения доводится до демонстрационного на основе сценариев использования. Команды разработчиков состоят из 4-5 человек, каждый тратит в среднем 4-6 часов в день. Особое внимание уделяется качеству производимого кода и тестированию. Результаты проектов представляются на 6-м семинаре FRUCT [11].

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


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

Авторы искренне благодарят доцента О. Ю. Богоявленскую, которая в течение восьми лет читала лекции по дисциплине «Введение в программирование на языке С», администратора вычислительной системы кафедры информатики и математического обеспечения старшего преподавателя В. А. Пономарева, автора курсов по Maemo в среде Moodle и менеджера проекта старшего преподавателя А. В. Бородина, инструкторов по практике и менеджеров проектов, старших преподавателей А. С. Колосова и М. А. Крышеня, а также инструкторов по практике, преподавателя В. М. Димитрова и магистранта В. Н. Ковалева. Все они также являются преподавателям значительной части дисциплин, представленных в табл. 1. Без их высококвалифици­рованного и заинтересованного участия получение представленных в статье результатов было бы невозможно.


Литература

1. Богоявленский Ю. А. Подготовка специалистов по информационным и коммуникационным технологиям на базе семейства стандартов «Прикладная математика и информатика». Материалы межд. конф. «Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы». Петрозаводск, 2006, ч. 1, с. 33–45.

http://www.cs.karelia.ru/news/2006/files/sorucom-ybgv-ru.pdf

2. 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.

3. http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licences

4. http://en.wikipedia.org/wiki/List_of_OSI_approved_software_licences#



OSI_approved_licenses

5. http://software.intel.com/en-us/intel-cluster-toolkit-compiler/

6. http://maemo.org/

7. Клавдиев В.Е., Штурц И. В. Модель партнерства университета и промышленности ИТ при подготовке кадров. Сб. докл. 5-й открытой всеросс. конф. «Преподавание информационных технологий в Российской Федерации». М.: АП КИТ, 2007, с. 78–80.

8. Богоявленский Ю.А., Воронин А.В., Корзун Д.Ж. Организация годового курса «технология разработки программного обеспечения». Материалы Всеросс. науч.-практ. конф. «Информационная среда вуза XXI века». Петрозаводск, 2007, с. 37–39.

9. Пятый семинар программы FRUCT, СПб., ГУАП, 27–30.4.2009. http://www.fruct.org/index.php?morus_itemid=65

10. Wiki-ресурс разработки проектов Maemo. ПетрГУ. http://maemo.cs.karelia.ru/wiki/

11. Шестой семинар программы FRUCT, Хельсинки, HUT и NRC, 3–6.11.2009. http://www.fruct.org/index.php?morus_itemid=78



1Используется также термин «Программная инженерия»

2www.blackducksoftware.com/oss/projects#languageos


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət