Формирование профессиональных навыков в компьютерных науках: командный и проектный подходы

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

Рубрика Педагогика
Вид статья
Язык русский
Дата добавления 01.02.2019
Размер файла 24,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Формирование профессиональных навыков в компьютерных науках: командный и проектный подходы

Сейдаметова З.С.

Анотації

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

Розглядаються питання, пов'язані з професійною підготовкою студентів комп'ютерних спеціальностей. Викладено дві важливі ідеї командного і проектного підходів. Проаналізовані і зіставлені три технології навчання: лабораторні індивідуальні завдання, учбові групові проекти, комерційні проекти. Обговорюється методика формування командних і проектних навиків.

Problems, related to professional training of the Computer Science students are considered. Two important ideas of the team and project approaches are discussed. Three technologies of training (laboratory individual tasks, educational groups' projects, commercial projects) are analyzed and compared. The method of the team and project skills forming is discussed.

Основний зміст дослідження

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

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

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

В фирменном руководстве Microsoft [3] представлены подходы к работе над крупными проектами, а также описаны механизмы управления работой группы программистов. В работах автора [4-7] предложены важные, по нашему мнению, подходы к преподаванию отдельных дисциплин профессиональной подготовки студентов специальности "Информатика". Работы [8-10] содержат элементы международного опыта подготовки специалистов по разработке программного и аппаратного обеспечения, приведены различные модели подготовки и экспериментальным путем получены компоненты профессиональной компетентности IT-специалистов.

Командный и проектный подходы в обучении: две важные идеи

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

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

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

На старших курсах можно для организации работы в группе использовать классическую схему или модель равноправных групп [3]. Классическую схему можно организовать следующим ролевым набором: менеджер проекта, ведущий программист, ведущий тестировщик, ведущий разработчик документации, программисты. Модель равноправных групп предполагает отсутствие менеджера проекта. За основу можно взять Microsoft Solution Framework (MSF). Согласно [3] работа групп ведется вокруг шести ролевых кластеров: управление программой, разработка, тестирование, управление выпуском, удовлетворение потребителя, управление продуктом. В отличие от классической схемы, эта модель легко подстраивается под проекты различных размеров, тем самым ее несложно адаптировать к учебной работе над проектом. Необходимо подчеркнуть, что эти схемы помогут успешно имитировать работу софтверной фирмы.

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

Весь этот набор требований можно имитировать и в рамках учебных проектов. Однако трудно имитировать жесткость и бескомпромиссность требований заказчика.

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

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

Таблица

Сопоставление трех технологий обучения

Лабораторные индивидуальные задания

Учебные групповые проекты

Коммерческие проекты

Программа создается одним человеком.

Проект создается группой программистов.

Проект создается группой программистов.

Дизайн исходного кода, деление на модули произвольны.

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

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

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

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

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

Работа над программой не имеет продолжения и развития.

Работа над проектом не имеет продолжения и развития.

Программный продукт корректируется и сопровождается.

Исходный код может быть понятен только автору.

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

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

Программа не требует развитого интерфейса и специального оформления.

Проект не требует развитого интерфейса.

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

Программа не требует обработки исключительных случаев.

Проект не требует учета, анализа и обработки исключительных случаев.

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

Анализ таблицы показывает следующее.

1. Работа над лабораторными индивидуальными заданиями:

· дает возможность студенту развивать индивидуальные навыки программирования;

· позволяет изучить практическое применение теоретических аспектов программирования.

2. Работа над учебным групповым проектом, кроме вышеперечисленного в п.1:

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

· знакомит студента со средствами управления исходным кодом;

· прививает студенту навык использования общих нотаций и составления глоссария общей терминологии проекта;

· учит студентов писать самодокументирующий код;

· знакомит студента с методами экстремального программирования;

· позволяет студенту получить навыки анализа текущего состояния проекта, построения графиков возникновения и устранения ошибок;

· дает студенту опыт составления технического задания, использования паттернов проектирования, универсального языка проектирования UML.

3. Работа над коммерческим проектом, кроме вышеперечисленного в пп.1 и 2:

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

· знакомит с современными методиками разработки программных продуктов (постановка технического задания, проектирование, тестирование, документирование, управление кодом);

· позволяет получить навыки распределенной разработки программного продукта;

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

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

Во второй год обучения дисциплина "Программное обеспечение SOHO" способствует развитию у студентов навыков writing (к сожалению, дисциплина Technical Writing как отдельный учебный предмет отсутствует в постсоветском инженерном образовании), оформления проектов, создания инсталляционных пакетов, подготовки документации [6]. Но наиболее важная дисциплина, которая и формирует командное проектное мышления, это "Технология проектирования", изучаемая на старших курсах [7]. В рамках этой дисциплины студенты в команде работают над проектами. Считается, что после окончания изучения этой дисциплины у студентов должны появиться метакогнитивные контрольные механизмы: умение оценивать свою работу, свой прогресс, понимание того, когда необходима дополнительная информация, а когда нужно перейти к следующему шагу в совершенствовании своего профессионального мастерства [8, 9].

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

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

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

студент компьютерная специальность

Выводы и перспективы дальнейших исследований

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

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

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

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

Литература

1. Логвиненко В.Г. Экспериментальное оценивание факторов, формирующих познавательную самостоятельность студентов. // Проблеми інженерно-педагогічної освіти. Збірник наукових праць. № 9. - Харків: УІПА. 2005. - С.155-160.

2. Ашеров А.Т., Логвиненко В.Г. Информативность факторов, формирующих познавательную самостоятельность студентов. // Проблеми інженерно-педагогічної освіти. Збірник наукових праць. № 7. - Харків: УІПА. 2004. - С.57-65.

3. Microsoft Solution Framework. - http://www.microsoft.com/msf/

4. Сейдаметова З.С. Шляхи адаптації до професії студентів першого курсу комп'ютерних спеціальностей. // Комп'ютер у школі та сім'ї, № 6.2002. - С.31-32.

5. Сейдаметова З.С., Темненко В.А. Роль дисципліни "Конкретна математика" в підготовці фахівців по інформатиці і прикладній математиці. // Збірник наукових праць. педагогічні науки. Випуск 39. - Херсон: Видавництво ХДУ. 2005. - С.325-330.

6. Сейдаметова З.С. Формування основних елементів професійної культури у майбутніх вчителів інформатики. // Науковий часопис НПУ ім. М.П. Драгоманова. Серія № 2. Комп'ютерно-орієнтовані системи навчання: Зб. Наук. Праць. - К. НПУ ім. М.П. Драгоманова. № 2 (9). 2005. - С.97-104.

7. Сейдаметова З.С. Зміст, структура й методика викладання технології й стандартів розробки програмного забезпечення. // Збірник наукових праць. педагогічні науки. Випуск 38. - Херсон: Видавництво ХДУ. 2005. С.344-348.

8. Upchurch R.L., Sims-Knight J.E. A Model for the Software Engineering Education Process. - http://www2. umassd.edu/swpi/nsfccd/IEEESWsubmit.html

9. Upchurch R.L., Sims-Knight J.E. Designing Process-Based Software Curriculum. // Proc. Of the 10th ACM IEEE-CS Conf. on Software Engineering Education and Training. - IEEE Computer Society Press. 1997. - pp.28-38.

10. Dingsoyr T., Jaccheri M.L., Wang A.I. Teaching Software Process Improvement through a case Study. - http://www.idi. ntnu. no/grupper/su/publ/pdf/icece99-aiw. pdf

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.