Кто Вы?
 
Студентам – обучение в реальных/дипломных проектах

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

С целью разрешения этих противоречий мы предлагаем студентам 3-4 курса МФТИ участие в проектах, имеющих реальных заказчиков и пользователей, но при этом не настолько ответственных, чтобы студенты в них могли выполнять лишь вспомогательные функции. Конечно, «малоответственные» проекты обычно являются «малооплачиваемыми», но зато они не диктуют жестких требований к срокам (которые мешали бы академической успеваемости студентов) и допускают возможность учиться на собственных ошибках проектирования (т.к. будет время переделать на новом уровне понимания). Причем студенты участвуют в наиболее творческих частях процесса – общении с пользователями, определении требований, проектировании конкретных программ т.п. Более того, программная реализация подобных проектов обычно более «чистая» и более «красивая» (система пишется не впопыхах по принципам «нужен только результат» и «за комментарии в коде денег не платят», а с дополнительными целями типа «сделать в соответствии с шаблонами проектирования»); эта особенность позволяет использовать программную реализацию как пример для следующих поколений разработчиков – в частности, как образец использования принципов ООП.

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

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

Поскольку разрабатываемые программные продукты являются весьма наукоемкими, многим студентам разумно выполнять НИР и защищать дипломы по близкой тематике (например, это можно делать с целью экономии усилий – один и тот же код используется и в продукте, и для получения результатов диплома). Такая возможность на данный момент есть у студентов факультетов ФАКИ (гр. 31а), ФУПМ (гр. 71в), ФРТК (гр. 17б). Кроме того, есть возможность перевестись с любого факультета (и даже из другого вуза) в магистратуру ФАКИ или ФУПМ, а также возможность договориться о выполнении с некоторыми кафедрами ФМБФ и ФФКЭ о выполнении их студентом НИРа под руководством сотрудника другой кафедры.

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

Joomla Templates by Joomlashack