home Преподавание Информационных Технологий в России
Открытая всероссийская конференция

Конференция

Информационное сообщение

Место проведения

Программа конференции

Участники

Комитеты

Программный комитет

Организационный комитет

Спонсоры

IBM


Intel

Microsoft

Лаборатория Касперского
1C

SAP
Инф. спонсоры

Открытые Системы



PC Week


Орг. поддержка

АПКИТ


ЛАНИТ-ТЕРКОМ


Форт-Росс


Аспекты технологической подготовки современных инженеров-разработчиков программного обеспечения

Синицын С.В. – к.т.н., доц., зав. каф. “Кибернетика”
Налютин Н.Ю. – ассистент каф. “Кибернетика”
Петухова Е.А. – ст. преп., зам. декана фак. “Кибернетика”
Садчиков С.М. – ст. преп., зам. зав. каф. “Кибернетика”
Московский инженерно-физический институт (государственный университет)

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

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

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

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

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

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

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

Рассмотрим подробнее данный аспект подготовки студентов. Сейчас существуют несколько точек зрения на пути подготовки выпускников ВУЗов. Один подразумевает упор на фундаментальную естественнонаучную составляющую обучения, которое проводится в учебном заведении, а более “профильное” образование человек получает уже непосредственно на своем рабочем месте. У нас на кафедре много лет практикуется подход, включающий в себя создания на кафедре базовыми предприятиями учебно-лабораторных комплексов. В этих лабораториях студенты под руководством преподавателей кафедры и сотрудников предприятий, которые, в большинстве, являются также выпускниками нашей кафедры, проходят обучение по профилю конкретного предприятия, изучают конкретные программные продукты, технологии и подходы. Также, в рамках данных лабораторий, студенты выполняют проекты, позволяющие им на практике применить полученные в ходе обучения знания. Данный подход позволяет к моменту выхода студента на преддипломную практику и дипломное проектирование иметь подготовку, которая даст ему возможность более легко освоиться на предприятии.

В процессе своей работы ИТ-компании часто сталкиваются с серьезной проблемой поиска сотрудников. При достаточно большом рынке рабочей силы оказывается, что кадров с подходящей квалификацией и опытом работы недостаточно. В то же время кафедра “Кибернетики”, готовя специалистов подобного профиля, заинтересована в том, чтобы студенты получили за время обучения достаточные навыки работы в реальных действующих проектах. В результате, администрацией кафедры и заинтересованными предприятиями (ДС БАРС, ИнтерСистемз, Банковский производственный центр, АйТи, Логос, КБ МАРС) были созданы совместные лаборатории, еще с двумя десятками предприятий были заключены договора о базовых предприятиях, которые сотрудничают с научными группами кафедры и с другими лабораториями. В рамках этого сотрудничества предприятия и кафедра предоставляли свои площади и оборудование для проведения лабораторных работ по специальным курсам, в чтении которых принимали участие специалисты, как кафедры, так и предприятия.

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

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

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

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

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

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

 

В начало :: О конференции :: Программа :: Доклады :: Контакты

Техническая поддержка сайта:
Copyright © АП КИТ, 2005
hosted by TERCOM
webmasters: perez&helga