Инженерный подход к подготовке специалистов по программной инженерии

в 13:21, , рубрики: багтрекинг, онтологическое моделирование, Песочница, Системы управления версиями, управление проектами, Учебный процесс в IT, метки: , , ,

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

Введение

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

Вполне очевидно, что необходимо динамически изменять программу с привлечением работодателей от индустрии и научных учреждений. Работодатели дают технологию — то, что апробировано и используется в текущий момент, научные институты — перспективу — то, что нужно в будущем, то, на основе чего можно будет создавать brainware (интеллектуальный продукт) [1]. Чтобы правильно организовать процесс постоянного изменения образовательной программы, достаточно провести аналогию с настраиваемыми бизнес-процессами, для которых на рынке IT-продуктов и услуг уже существует множество решений. К сожалению, наше образование в области IT само не пользуется преимуществами IT. Сапожник без сапог!

Для построения процесса обновления программ необходимо давать возможность компаниям вести прямую и обратную связь с университетами. В Новосибирском государственном университете (НГУ), как и в некоторых других университетах, сложилась хорошая практика, когда сотрудники IT-фирм работают преподавателями. Фактически, они самым непосредственным образом влияют на процесс обучения, вносят в читаемые ими курсы самые последние новинки. Это, так называемые практикующие преподаватели. И, хотя, студенты всегда их с интересом слушают, обнаруживается ряд связанных с этим педагогических и методических трудностей.

Во-первых, IT-специалист — это не всегда хороший методист. Он хорошо знает свою предметную область и может зажигательно о ней рассказывать. Это нравится студентам. Однако из этого не следует, что студенты обучаются соответствующему материалу эффективно. Во-вторых, IT-специалист работает в технологиях, которые применимы на текущий момент, и он хорошо знает их достоинства и недостатки. Вместе с тем, способен ли он абстрагироваться и «возвыситься» над текущими обстоятельствами, чтобы дать студентам перспективу? Вероятно, не всегда, ведь для этого необходимо быть в курсе не только апробированных технологий. Необходимо быть в курсе научных идей и подходов, не всегда нашедших своё широкое применение. Так, например, концепция семантического программирования [2], активно развивавшаяся в 1980-е годы в Институте математики Сибирского отделения Академии наук, только сейчас находит своё практическое применение в виде технологии программирования Ontobox [3] с языком запросов Libretto.

Ещё одним достоинством описанной формы сотрудничества университета и IT-компаний является обратная связь: компании имеют возможность определить ещё на стадии обучения, какого студента они возьмут к себе в будущем.

Принимая во внимание отмеченные выше обстоятельства, хотелось бы перевести отношения университета и индустрии на следующий уровень зрелости. Методология зрелости процессов разработки (Capability Maturity Model, [4]) уже давно применяется в программной инженерии. Она заключается в выделении уровней зрелости бизнес-процессов разработки программного обеспечения и описании некоторых ключевых практик, помогающих перейти от уровня к уровню. Существующему уровню зрелости процессов образования скорее подходит название «повторяемый» (второй уровень в терминологии CMM). Следующий уровень — «определённый», когда чётко определены бизнес-процессы, понятно, откуда идёт управляющее воздействие, где какой результат ожидается, и кто отвечает за каждый подпроцесс. Сейчас образовательный процесс разделён по функциональному признаку: здесь студента алгебре подучили, здесь — объектно-ориентированному программированию, а здесь — компьютерной графике. К сожалению, в этой последовательности нет интегрирующего механизма. При достаточно хорошей внутренней организации определяются зависимости между дисциплинами, что может дать студенту понимание связи между различными курсами. Однако, в конечном итоге неясно, кто отвечает за формирование таких характеристик специалиста, как математическая культура, привычка к рефлексии, способность работать с источниками, умение принимать обоснованные инженерные решения.

В качестве такого интегрирующего инструмента образовательные стандарты 3-го поколения [5] предлагают вместо традиционных «знаний, умений и навыков» использовать понятие «компетенции» и прослеживать наработку этих компетенций у студента сквозным способом через ряд курсов. Следуя методологии процессного подхода необходимо делать и следующий шаг, а именно — вводить лиц, ответственных за весь бизнес-процесс и за отдельные подпроцессы (для формирования каждой компетенции).

Теперь перейдём к применению методологии IT в образовании. Множество применяемых в программной инженерии инструментов можно использовать и в образовательном процессе — ведь это тоже коллективный процесс, только немного отличается. В чём сходство?

1. Багтрекинг лекций

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

Здесь усматривается знакомый процесс «отлавливания ошибок», только не в коде, хотя, записи в тетради с некоторой натяжкой можно считать кодом. Вместе с тем, хотелось бы заметить, что сам процесс подачи материала с опечатками очень педагогичен (не случайный, а при специальном навыке лектора) — он заставляет студентов задуматься: «А что-то тут не так, надо исправить». Студент попадает в естественную (для него самого) проблемную ситуацию, выходом из которой является нахождение правильного понимания. Студент приходит к нужному понятию через ошибки и внутреннюю мыслительную работу. На самом деле, этот метод «проблемных ситуаций» (о нём далее) даёт хорошие результаты не только в процессе понимания лекционного материала.

Таким образом, предлагается использовать какую-либо систему (JIRA, Trac, Bugzilla, Trello) для фиксации ошибок, опечаток, непонимания (и далее по категориям сообщений, например «запрос функциональности») в лекциях. Здесь тестировщиками выступают студенты, желательно организованные в малые группы, а разработчиком (программистом) – лектор. Система отслеживания ошибок решает важную проблему коммуникации. Такая связь должна быть между студентами и лектором в течение семестра постоянно.

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

2. Коллективная работа при разборе лекций

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

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

В рамках учебного процесса можно организовать работу в коллективе относительно учебных задач и возникающих при этом вопросов. Например, как было отмечено выше, при разборе лекций, при поиске в них ошибок, работу можно построить в малой группе. В ходе разбора лекций, сравнения конспектов, обсуждения тонких моментов («А одинаково ли мы понимаем?») вырабатывается общее понимание, в том числе за счёт индивидуальной мыслительной работы каждого. Кроме того, обнаруживаются пробелы, несовпадения конспектов — кто-то пишет со слов лектора, а кто-то — по собственному пониманию.

При организации работы в малых группах перед студентами возникают трудности организации работы этой малой группы. Всё как у старших товарищей: (1) надо договориться о времени и месте совместной работы; (2) подготовиться к этой работе; (3) устранить мешающие факторы в ходе работы (отвлечения, прерывания и т.п.). Таким образом, у студентов в проблемной ситуации востребуются организаторские навыки, которым научить можно только тогда, когда человек с подобными вопросами уже сталкивался. Такой подход также создаёт мотивацию к эффективной работе, в отличие от работы в одиночестве, которая при отсутствии должной самодисциплины даёт очень низкий эффект. Студент уже не может сказать себе: «А, сегодня что-то не хочется разбирать лекции, завтра разберу», т.к. он договорился с товарищами на определённое время, что они вместе поработают. Взаимные обязательства и контроль «сбоку» делают процесс внеаудиторной работы студента более устойчивым к факторам студенческой среды. В то же время, студенты проходят практику работы в коллективе.

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

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

3. Единый репозиторий всех работ студентов

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

Ещё одно преимущество такого подхода в том, что преподаватель всегда может увидеть – делал студент работу или нет. Можно отследить ход работы, отметить, сколько было версий документа, сколько правок. Кроме того, нерадивые студенты не смогут прибегать к таким аргументам, как: «я забыл флешку», «у меня вирус всё съёл» и т.п. Таким образом, реализуется защита от вирусов, хранение различных версий документов, доступ преподавателей к работам.

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

4. Проблемно-задачный подход

Методологическая основа проблемно-задачного подхода обсуждалась в [6]. Здесь коснемся вопросов его применения к учебно-воспитательному процессу.

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

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

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

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

Модель проблемных ситуаций построена на исследовательском интересе студентов и развивает его. Когда студент сталкивается с такой ситуацией — он ставит перед собой вопрос: «Что я лично могу сделать для решения этой проблемы, что мне нужно, какие знания, навыки и умения»? Только при таком подходе мы можем говорить, что человек научился, буквально «научил себя». Данный подход востребует исследовательские способности студентов. Сталкиваясь с проблемной ситуацией, студент воспринимает её как свою личную проблему. Проявляя исследовательские способности, он вынужден научиться формулировать из проблемы задачу.

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

Наряду с самостоятельной работой, у студентов должна быть возможность задать назревшие вопросы и получить на них ответы. В случае хорошей организации методических комплексов с использованием, например, технологий Semantic Web – студент мог бы формулировать вопросы на языке OWL/DL, допускающем машинную обработку.

5. Онтологический инжиниринг – интегрирование знаний студентов в единую систему

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

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

Следует отметить, что, как правило, онтология изучаемой дисциплины очень хорошо поддаётся формализации. Наряду с иерархией понятий преподавателю рекомендуется использовать онтологии верхнего уровня, такие как «познание», «учебная дисциплина», «исследование». Данный подход был предложен автором в секционном докладе на конференции «Мальцевские чтения-2010», и изложен в тезисах конференции «Преподавание ИТ в России 2010» [7].

6. Уважать – значит требовать

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

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

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

7. Использование проектной методологии при решении проблемы/задачи

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

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

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

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

8. Система обратных связей, контроля и управления образовательным процессом

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

В систему закладывается следующий функционал.

  1. Управление задачами: возможность ставить себе задачи и отслеживать их выполнение; формы отчётности (для отчётов, прежде всего, перед собой), система напоминаний.
  2. Коммуникации: система отслеживания ошибок в лекциях; форум.
  3. Средства коллективной работы студентов (система контроля версий, гипертекстовая база знаний, пополняемая студентами и модерируемая преподавателями, полуформализованная с помощью OWL).
  4. Аналитика: сбор статистических данных о выполнении заданий; проектов; прогнозирование проблемных ситуаций.
  5. Социальная сеть: игровая форма рейтинга студентов; рейтинг преподавателей (по количеству и качеству ответов на вопросы студентов).
  6. Доступ к учебным программам для студентов и работодателей.
  7. Инструменты планирования учебных программ во времени (диаграммы Гантта).

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

Заключение

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

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

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

Автор выражает благодарность Д.Е. Пальчунову, В.В. Мухортову, В.А. Васенину, О.Е. Грачёву за полезные обсуждения, способствовавшие формулированию описанных подходов.

Литература

[1] Магистральный интерфейс — сближение началось (беседа с академиком Ю.Л.Ершовым) // Наука в Сибири. — 2002. — №42-43 от 01.11.2002. — URL:.

[2] Гончаров С.С., Свириденко Д.И. ∑-программирование // Логико-математические основы проблемы МОЗ. — Новосибирск, 1985. — Вып.107: Вычислительные системы. — С. 3–29.

[3] Малых А.А., Манцивода А.В. Онтобокс: онтологии для объектов // Известия ИГУ. — Иркутск, 2009. — №2. С. 94–104.

[4] Паук М., Куртис Б., Хриссис М. Б. Модель зрелости процессов разработки программного обеспечения / Пер. под ред. В.Рябикина. – М.: Интерфейс-Пресс, 2002. — URL: ryabikin.narod.ru/sw-cmm/index.htm.

[5] Федеральные государственные образовательные стандарты // Министерство образования и науки РФ. — URL: mon.gov.ru/pro/fgos/.

[6] Проблемно-ориентированный подход к науке: Философия математики как концептуальный прагматизм / Под. ред. В.В.Целищева, Ю.Л.Ершова и др. — Новосибирск: Наука, 2001. — 154 с.

[7] Павловский Е.Н. Онтологический инжиниринг в процессе согласования программ учебных дисциплин // Тезисы доклада на Восьмой открытой всероссийской конференции под эгидой АП КИТ «Преподавание информационных технологий в Российской Федерации»-2010. — URL: it-education.ru/2010/persons/conferee.php (дата обращения: 24.05.2010).

Автор: EuXsun

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js