СОЗДАНИЕ КОНТЕКСТНОЙ СРЕДЫ ДЛЯ ПОДГОТОВКИ ИТ-СПЕЦИАЛИСТОВ
Петренко Ольга Леонидовна (o-l-petrenko@yandex.ru)
к.т.н., доцент
Московский институт открытого образования, г. Москва
Хорошилов Алексей Владимирович (khoroshilov@ispras.ru)
Институт системного программирования РАН, г. Москва
Аннотация В статье рассматриваются вопросы реализации принципов контекстного обучения для повышения качества подготовки ИТ-специалистов. Показывается привлекательность использования проектов по разработке свободного программного обеспечения для построения богатой контекстной образовательной среды. Приводится пример модернизации практикума для курса «Методы формальной спецификации и верификации программ» в соответствии с предложенными принципами.
  |
«Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный» М. Монтень |
Несмотря на предпринимаемые усилия в современном обществе четко стало проявляться несоответствие между уровнем подготовки выпускников вузов и потребностями рынка труда. Более четверти выпускников высшего профессионального образования и более 30% выпускников среднего профессионального образования не трудоустраивается по полученной в учебном заведении специальности. Окончание хорошего вуза является не единственным критерием, который используется при отборе кандидатов. Работодателю нужен не объем знаний, а умение в нужный момент ими оптимально воспользоваться. Именно на такое сочетание обращают внимание при приеме на работу. Важную роль играют навыки планирования собственной деятельности, умение организовать грамотно работу подчиненных. Сегодня работодатель отдает предпочтение стратегическому мышлению, пониманию сотрудниками экономических задач, владению технологиями оптимизации затрат, регулирования численности и качества персонала, комплексного подхода к управлению.
Необходимо подумать над тем, как приблизить качество подготовки специалистов в вузах к требованиям рынка труда. Даже выпускники элитных вузов испытывают трудности в работе, связанные прежде всего с социальными навыками и ориентацией в общей политике организации. Однако этой стороне подготовки будущих специалистов по-прежнему уделяется крайне мало внимания, совершенствование программ в первую очередь идет за счет введения новых профильных курсов и модернизации профильного содержания старых.
Одним из перспективных подходов, который позволяет приблизить подготовку выпускников вузов к требованиям реальных производственных процессов является контекстный подход к обучению. Он моделирует в процессе обучения предметное и социальное содержание деятельности.
По определению А.А.Вербицкого [1], контекстным является такое обучение, в котором в формах организации образовательной деятельности динамически моделируется общекультурное, духовное, предметное, социальное и образовательное содержание жизнедеятельности учащегося осуществляется трансформация его учебно-познавательной деятельности в социально-практическую.
В соответствии с контекстным подходом учебная деятельность состоит из двух взаимосвязанных частей: предметной и социальной [2]. К предметной относится содержательная часть деятельности, основанная на знаниях и способах их использования. Социальная часть отражает социокультурную и нравственную сущность человека.
Управление процессом обучения включает в себя создание определенной образовательной среды, которая способствует развитию перечисленных выше сторон образования. Такая среда в контекстном обучении состоит из пяти составляющих: информационной, общекультурной, социальной, предметно-профессиональной и собственно образовательной, задающих смыслообразующие контексты деятельности субъектов образовательного процесса. Эффективность обучения зависит от качества созданной образовательной среды.
Общая схема контекстного обучения ИТ-специалистов заключается в переходе от одной контекстной ситуации к другой. Контекстная среда строится вокруг понятия «проблема». Цепочка «проблем» должна строиться таким образом, чтобы для разрешения каждой следующей нужно было использовать как можно больше навыков, полученных при решении уже «пройденных» проблем.
Проекты по разработке Свободного Программного Обеспечения (СПО) являются хорошей базой для построения образовательного контекста для студентов ИТ-специальностей. СПО проекты предоставляют разработчикам учебного курса готовый учебный материал практически для любой темы в области программной инженерии: требования к ПО, спецификации его архитектуры, исходный код, работающее ПО, уже решенные и все еще актуальные проблемы и дефекты, возникшие в ходе его разработки. Помимо предметного контекста в СПО проектах доступен также и социальный контекст проектов:
- Ретроспективный анализ возможен через изучение журналов, хранящих обсуждения различных вопрос, которые ведутся участниками разработки через Интернет в электронной форме; они сохраняются в виде публично доступных архивов списков рассылок и IRC каналов и т.д.
- Диалог с участниками проекта в ходе учебной деятельности
- Большая степень самостоятельности при принятии решений
Конечно, СПО проекты — это лишь удобный материал, но никак не готовая образовательная среда, для создания который требуются дополнительные усилия.
Для квазипрофессиональной и учебно-профессиональной деятельности [1] можно брать проблемы (возможно, уже решенные) из СПО проектов и дополнять их социальным контекстом в рамках учебной среды. Также возможно ставить собственные исследовательские задачи, связанные с СПО проектами. Все это обеспечит студентов богатым предметным и социальным контекстом. Каждая следующая контекстная ситуация для решения поставленной проблемы требует приобретенные ранее навыки плюс формирование новых. Таким образом к концу курса обучения будут достигнуты необходимые навыки, а также освоены способы их применения.
В то же время непосредственное вовлечение студентов в социальную среду СПО проектов сопровождается некоторыми трудностями. Участники проектов далеко не всегда рады выступать в качестве учебного полигона для «роя» студентов. Они были бы рады видеть будущих коллег (пусть даже начинающих и малоопытных), но не студентов принуждаемых к взаимодействию с ними на короткий период времени. Поэтому взаимодействие студентов с участниками проекта не должно быть обязательным элементом учебного курса, а скорее опциональной возможностью для наиболее мотивированных студентов.
Рассмотрим пример применения контекстного подхода на основе СПО при модернизации практикума [3] для курса «Методы формальной спецификации и верификации программ», который проводится на факультете ВМиК Московского Государственного Университета имени М.В. Ломоносова под руководством профессора, д.ф.-м.н. А.К. Петренко.
В рамках этого курса рассматриваются вопросы формальной спецификации программ на примере специализированного языка спецификаций RSL [4] и нотации PVS Definition Language [5], а также вопросы верификации программ на примерах классических методов Флойда/Хоара [6, 7], методе RAISE и системы автоматизированного доказательства теорем PVS. До последнего времени практикум к курсу состоял из изучения языка спецификаций RSL и выполнения ряда учебных задач по спецификации систем средней сложности на языке RSL.
Следуя принципам контекстного подхода, во-первых, был построен мостик между классической теорией верификации последовательных программ методами Флойда/Хоара и опытом студентов по разработке последовательных алгоритмов на языке программирования Си. Для реализации этой идеи мы использовали семейство инструментов верификации why [8], которое позволяет доказывать корректность последовательных программ, написанных на языке программирования Си. Спецификация требований к программе при этом описывается при помощи предусловия и постусловия, оформленных в виде обычных комментариев языка Си, но в соответствии с синтаксисом языка ACSL (ANSI/ISO C Specification Language) [9]. Для решения задачи студент должен приписать к каждому циклу программы инвариант и вариант цикла как этого требуют методы Флойда/Хоара и доказать полученные условия верификации в системе PVS.
В такой постановке задачи нет никаких существенно новых понятий, тем не менее она дает студентам возможность увидеть один из сценариев применения методов верификации в уже привычном контексте и осознать ряд сложностей, возникающих на этом пути. В результате у студентов складывается более глубокое понимание материала по сравнению с вариантом проведения практики исключительно на специализированных языках спецификации.
Во-вторых, учебный процесс практики был расширен за счет выведения работы за рамки семинарских занятий. В дополнение к очным занятиям было организовано взаимодействие между студентами и преподавателями через Интернет, во многом близкое традициям СПО проектов:
- список рассылки для публичного обсуждения выполняемых задач, изучаемых методов и инструментов
- общая система конфигурационного управления исходным кодом студенческих работ
- периодическая отчетность студентов о ходе выполнения практических заданий в виде электронных писем с заданной структурой
Это позволило студентам развить навыки как технологического плана (работа с системой управления исходным кодом), так и социального (написание отчетов о выполненной работе, взаимодействие с заказчиком работы, планирование времени выполнения работы, оценка рисков выполняемой работы).
В-третьих, реализации алгоритмов для формальной верификации стали подбираться из исходного кода хорошо известных СПО проектов. Это придало студентам осознание небесполезности выполняемой работы и даже некоторую долю здорового спортивного азарта.
Поэтому развитием учебного курса является включение в него не только части содержания, которую нужно усвоить, но и средства для усвоения содержания студентами.
Литература
- А.А.Вербицкий. Компетентностный подход и теория контекстного обучения. Москва, 2004. Материалы к четвертому заседанию методологического семинара 16 ноября 2004 г.
- О.Л.Петренко. Создание образовательной среды учебного учреждения при контекстном подходе к обучению . В сб. «Управление профессиональным образованием: опыт, проблемы, перспективы», Омск, 2009.
- А.В.Хорошилов. Практикум по аналитической верификации программного обеспечения. Четвертая конференция "Свободное программное обеспечение в высшей школе" 30 января -1 февраля 2009г. Переславль, стр. 29-32.
- Кузьменкова Е. А., Петренко А. К. Практикум по формальной спецификации программ на языке RSL – М.: Издательский отдел факультета ВМК МГУ, 2008.
- Cистема автоматизированного доказательства PVS, http://pvs.csl.sri.com/
- R. W. Floyd, Assigning meanings to programs, 1967
- C. A. R. Hoare, An axiomatic basis for computer programming, Communications of the ACM, 12, pp. 576-580, 1969
- Семейство инструментов верификации Why, http://why.lri.fr/
- ACSL: ANSI/ISO C Specification Language, http://frama-c.cea.fr/download/acsl_1.4.pdf
|