Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

OF EXPERIENCE ATTRACTING IT COMPANIES TO THE ORGANIZATION OF RESEARCH ACTIVITY OF STUDENTS

Kudrina E.V. 1 Ogneva M.V. 1
1 Saratov National Research State University named after Chernyshevsky
One of the important tasks facing universities that train IT-specialists today is the formation of readiness of graduates to participate in research activities in the IT – sphere. Cooperation between universities and IT companies plays a special role in solving this problem. National Research Saratov State University named after Chernyshevsky has a long, diverse and fruitful experience of cooperation with IT-companies of both regional and international level in training the students of IT-specialties. In this article we will consider the possibility of involving representatives of IT-companies for the organization of research activity of students of the faculty of computer science and information technology under the joint guidance of course and final qualifying works. Joint management of course and final qualifying works implies that the supervisor of the student work is appointed a teacher of the University, and the consultant is an employee of the IT-company. It is shown that this joint management is very successful, as the University teachers have a huge baggage of theoretical knowledge in the field of mathematics, computer science and programming, theory and methods of teaching computer science, and representatives of IT-companies have extensive practical experience in the development and implementation of IT-projects.
higher education
training of IT-specialists
research activity of students

В ноябре 2013 г. распоряжением Правительства РФ утверждена «Стратегия развития отрасли информационных технологий в Российской Федерации на 2014–2020 гг. и на перспективу до 2025 года». В стратегии отмечается, что информационные технологии (IT) с каждым годом оказывают все большее влияние, как на экономику, так и на повседневную жизнь людей. Качественное развитие большинства отраслей экономики и государственного управления связано с внедрением IT. Вместе с тем развитие самой IT-сферы тормозится дефицитом кадров – стране нужны программисты, инженеры, системные администраторы, разработчики баз данных, учителя информатики, а также специалисты, способные управлять процессом разработки и реализации IT-проектов, руководить научными исследованиями в IT-сфере, реализовывать себя в педагогической деятельности в системе высшего IT-образования [1]. Таким образом, перед педагогическим сообществом поставлена новая задача – формирование готовности выпускников вузов к участию в проектной и научно-исследовательской деятельности в IT-сфере.

Анализируя работы [2; 3], можно сделать вывод о том, что проблема привлечения студентов вузов к научно-исследовательской деятельности (НИД) не является новой.

Разработаны и внедрены в учебный процесс вузов различные элементы НИД студентов, способствующие развитию их творческой активности: использование задач частично-поискового, проектного и исследовательского типа на аудиторных занятиях (семинарах, практических и лабораторных); вовлечение студентов в различные формы внеаудиторной НИД (написание рефератов; подготовка докладов или сообщений; написание научных статей; участие в олимпиадах, конкурсах, проектах, хакатонах, конференциях; подготовка и защита курсовых и выпускных квалификационных работ); использование коллективных форм НИД студентов (привлечение студентов к участию в работе студенческих научно-практических семинаров, научных сообществ студентов и аспирантов, в творческих/ проектно-конструкторских/ научно-исследовательских коллективах) [4-6].

В данной статье мы рассмотрим опыт привлечения представителей компании «Эпам Систэмз» к организации НИД студентов направления 02.03.03 «Математическое обеспечение и администрирование информационных систем» факультета компьютерных наук и информационных технологий (КНиИТ) Саратовского национального исследовательского государственного университета имени Н.Г. Чернышевского (СГУ). Следует отметить, что сотрудничество факультета КНиИТ с данной компанией носит многолетний, разносторонний и плодотворный характер [7].

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

Первым таким проектом стало создание обучающей компьютерной игры «Логические головоломки» для портала обучения информатике и программированию (http://school.sgu.ru) [8]. Данный портал выступает технической площадкой для реализации очно-дистанционных мероприятий Центра непрерывной подготовки IT-специалистов (ЦНИТ).

ЦНИТ работает со школьниками всех возрастов, со студентами и учителями информатики. Для младших и даже для средних школьников очень важно, чтобы занятия вызывали у них интерес. Такие соображения, как «нужно заниматься, чтобы поступить в тот вуз, который я хочу», для них пока не работают. И, конечно, им гораздо интереснее решать задачи, представленные в виде игры. К 2014 г. в ЦНИТ уже были разработаны и активно использовались такие учебные курсы, как «Занимательная информатика для младших школьников», «Теория графов в занимательных историях», «Комбинаторика в занимательных историях», игры-квесты про приключения принца Джавы и про остров сокровищ. На повестке дня стояла задача реализации данных курсов в интерактивной форме. Так родилась идея разработки обучающей компьютерной игры «Логические головоломки», и встраивания её в функционал портала обучения информатике и программирования.

С программной точки зрения игра представляет собой веб-приложение с трехуровневой архитектурой «клиент-сервер». Данная архитектура предполагает наличие следующих компонентов: клиентское приложение, подключенное к серверу приложений, который, в свою очередь, подключен к серверу базы данных. Для разработки клиентской части игры использовались следующие IT-технологии: HTML, CSS, JavaScript. Для разработки серверной части – PHP, MySQL. Для обмена данными между клиентской и серверной частями в приложении используются AJAX-запросы.

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

Еще один проект, который на данный момент внедряется в учебный процесс факультета КНиИТ – это веб-приложение для обучения и контроля знаний по теме «Алгоритмы на графах». Кроме теоретической части и подробного разбора алгоритмов в приложение встроен визуализатор, который дает возможность пошагового наглядного представления работы алгоритмов, а также тестовая система. Функционал приложения позволяет добавлять теоретические материалы, тесты, отслеживать успеваемость обучающихся. Данное приложение разрабатывалось с использованием технологии ASP.NET Core. При создании приложения применялся подход к разработке ПО через тестирование: приложение тестировалось модульными тестами с использованием фреймворка Moq, который позволяет эмулировать поведение объектов; интеграционные тесты использовались для проверки корректности работы всей системы. Данное веб-приложение может быть использовано при подготовке школьников и студентов к олимпиадам по информатике и программированию, а также при проведении таких дисциплин, как «Информатика и программирование», «Структуры данных и алгоритмы», «Теория графов».

Следует отметить, что во время прохождения производственных практик в IT-компаниях студенты создают веб-приложения, которые могут использоваться для решения серьезных прикладных задач, связанных с теорией графов. Однако «внутри» таких приложений заложены только самые простые алгоритмы на графах, например обход в глубину или в ширину. А в ходе изучения дисциплины «Теория графов» студенты изучают различные, в том числе и достаточно сложные алгоритмы для решения практико-ориентированных задач, учатся проводить анализ их времени выполнения, выполнять сравнительную характеристику алгоритмов, но реализуют данные алгоритмы в виде консольных приложений, входными данными для которых являются небольшие учебные примеры графов. Чтобы объединить разработку веб-приложений с использованием «сложных» алгоритмов, появилась целая серия курсовых работ, руководителем каждой из которых являлся сотрудник кафедры информатики и программирования, а консультантом – сотрудник компании «Эпам Системз». В качестве примера приведем постановку задачи одной из таких работ:

«Имеется сеть городов, связанных различными маршрутами транспортировки грузов (доставки). Каждый маршрут однонаправлен, между каждой парой городов может быть множество вариантов доставки. По каждому маршруту можно получить информацию о пропускной способности и о стоимости доставки через него. Вся информация о числе городов, о маршрутах между ними, об их пропускной способности и стоимости должна быть получена через REST-сервис. Необходимо: построить максимальный поток минимальной стоимости между двумя любыми городами. Задачу выполнить несколькими способами, реализовав различные алгоритмы и выполнив их сравнительный анализ. В качестве средства визуализации задачи создать веб-приложение».

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

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

Важно отметить, что при выполнении курсовых и выпускных квалификационных работ используется не только индивидуальная, но и командная работа над проектом. Так при разработке обучающей компьютерной игры «Логические головоломки» были задействованы две студентки 4 курса – С.Е. Дроздова и К.И. Макарова При этом первая отвечала за разработку клиентской части приложения, вторая – за разработку серверной части приложения и встраивания игры в функционал портала обучения информатики и программирования.

В следующем проекте – разработка веб-приложения «Система учета товаров на складе строительного магазина» – были задействованы студент 4 курса В.В. Артемов и студентка 3 курса М.А. Лукашова [9]. Реализация данного проекта велась по всем правилам промышленной разработки ПО с распределением ролей и зон ответственности: заказчик проекта – директора магазина «Мир дерева» в г. Саратове; руководитель проекта – Е.В. Кудрина, доцент кафедры информатики и программирования; технический консультант – И.А. Борзов, ведущий инженер по качеству компании «Эпам Систэмз», доцент базовой кафедры математического обеспечения вычислительных комплексов и информационных систем; менеджер проекта и разработчик – В.В. Артемов, тестировщик – М.А. Лукашова. Рассмотрим этапы работы над проектом.

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

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

После обсуждения требований к проекту разработчик приступил к непосредственной реализации клиент-серверного приложения с трёхслойной архитектурой. Для разработки был выбран язык программирования Java и среда разработки IntelliJ IDEA. В качестве базы данных использовалась PostgreSQL, для автоматизации сборки проектов – фреймворк Maven. В качестве веб-сервера для запуска веб-приложения был выбран контейнер сервлетов Tomcat. Также был использован фреймворк Spring, в частности такие его модули, как Spring DAO, Spring Web, Spring MVC, Spring Data JPA, Spring Security. Для разработки клиентской части приложения были использованы такие технологии, как HTML5, CSS3, jQuery и фреймворк Bootstrap. Пользовательский интерфейс создавался на основе технология JSP. Для динамической обработки данных, полученных от контроллера, использовалась технология JSTL.

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

Существуют проекты, которые выполняются на протяжении нескольких лет: в ходе обучения студента в магистратуре, а затем и при обучении в аспирантуре [10; 11]. В рамках одного из таких проектов проводится исследование и оптимизация алгоритмов кластеризации больших разреженных графов для анализа данных, представленных в социальных сетях [12].

В данной статье мы рассказали лишь о немногих проектах, выполненных при совместном руководстве курсовыми и выпускными квалификационными работами студентов по направлению 02.03.03 «Математическое обеспечение и администрирование информационных систем» преподавателями кафедры информатики и программирования факультета КНиИТ СГУ и представителями компании «Эпам Системз». Аналогичная практика существует и на других кафедрах факультета. Так, на кафедре математической кибернетики и компьютерных наук, отвечающих за подготовку студентов по направлениям 02.03.02 «Фундаментальная информатика и информационные технологии», 09.03.04 «Программная инженерия», в роли консультантов с производства привлекаются ведущие специалисты компаний «Мирантис-ИТ» и «ГридДинамикс» [13], на кафедре теоретические основы компьютерной безопасности и криптографии, отвечающую за подготовку студентов по специальности 10.05.01 «Компьютерная безопасность», – ведущие специалисты «Национального центра по борьбе с преступлениями в сфере высоких технологий» [14].

В заключение следует отметить, что привлечение представителей IT-компаний к организации НИД студентов на факультете КНиИТ позволило решить ряд задач: объединить усилия педагогов факультета КНиИТ СГУ и представителей ведущих IT-компаний региона в подготовке высококвалифицированных IT-специалистов, готовых к участию в НИД в IT-сфере, и, как следствие, повысить уровень курсовых и выпускных квалификационных работ на факультете; сформировать у выпускников факультета КНиИТ навыки командной работы над IT-проектами, так необходимые в их будущей профессиональной деятельности, и, как следствие, повысить конкурентоспособность выпускников факультета КНиИТ на рынке труда.

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