Секция 4: «Взаимодействие вузов и ИТ-компаний» 23 октября 12:35 – 13:15

 

Доклад «ИТ образование на матмехе СПбГУ»

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

Аннотация: 

Уже много лет во всем мире существует острая необходимость в качественных IT специалистах. Россия также активно готовит специалистов для IT индустрии и, кроме того, российское университетское IT образование имеет достаточно высокий уровень, что признано международным сообществом. Заметим, что многие российские университеты следуют международным стандартам, которые, к тому же, переведены на русский язык. В СПбГУ накоплен большой опыт привлечения IT компаний к подготовке специалистов, также проводится сравнение усилий по подготовке кадров совместными силами IT компаний и университета и поиском кадров силами HR службы с обязательной многомесячной доводкой на рабочем месте. Кроме того, в нашем университете реализован набор инструментальных средств, разработанных нами специально для целей образования, обеспечивающий существенно лучший контроль ошибок пользователей, как статических, так и динамических.

 

Запись доклада

Презентация доклада

Резюме: 

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

Существует международный стандарт Computing Curricula 2005, в который входят пять наук: Компьютерные науки, Вычислительная техника, Информационные системы, Информационные технологии, Программная инженерия. Наша кафедра приняла активное участие в переводе на русский язык двух из этих пяти стандартов – Компьютерные науки и Программная инженерия. Главный тезис, которого мы придерживаемся, – невозможно научиться программированию “с мелом у доски”. Есть требования индустрии, которые обычно в университетскую программу подготовки специалистов не входят. Это работа в команде, управление конфигурацией программного обеспечения, обеспечение качества, soft skills и т.д. 

Университет в принципе не может успевать за технологиями IT-индустрии, поскольку они быстро обновляются и меняются. В IT-компаниях обычно тратится 2-3 месяца чтобы нового сотрудника довести до уровня этой компания. Чтобы он мог в ней работать, знать технологию, средства обеспечения качества. Более 15 лет назад мы начали внедрять другой подход. Мы приглашаем IT-компании, расположенные в нашем городе. Они должны предлагать темы, выделять тьюторов среди своих сотрудников для руководства студенческими проектами. Тема проекта должна быть интересна предприятию, но одновременно должна быть достаточно наукоемкой, чтобы послужить темой курсовой или дипломной работы. При этом материальных взаимоотношений между вузом и компанией нет. Компании заинтересованы в получении выпускников высокого уровня, которых не нужно будет доучивать. Практически у каждого IT-предприятия есть интерес к апробации новых технологий, каких-то исследований, на которые не хватает ни времени, ни денег. Еще один важный вопрос – удержание кадров. Сотрудники пришедшие в компанию через HR службу работают в ней в среднем 2-3 года, сотрудники, которые пришли через студенческие проекты – 6-7 лет. 

Вечная проблема – каким языкам программирования обучить студентов, с чего начинать. Важную роль во время обучения студентов программированию играют инструментальные средства с максимально возможным контролем ошибок. Мы когда-то начинали с языка Algol 68, но он оказался слишком сложным для рядовых программистов, хотя сотрудники университета отнеслись к нему положительно. Мы решили 5-6 лет назад сделать другой шаг и взяли за основу классический язык Си, поскольку он очень массовый и довольно простой. В языке Си около полутора десятков черт, заимствованных напрямую из Algol 68. Многие авторы пытались “улучшить” классический Си (D, Cyclone). Все эти языки и системы программирования пытаются предотвратить проникновение вредоносного кода в программы, написанные на языке Си. 

Мы же ставим перед собой несколько более скромную задачу – по мере возможности не давать программисту совершать многие типичные ошибки и облегчить локализацию и исправление тех, которые ему все же удалось сделать. В РуСи нет арифметики указателей, отказ от union в структурах. Массив РуСи – это нормальный языковый объект. При размещении в памяти перед нулевым элементом массива по каждому измерению хранится число элементов массива по данному измерению. Это дает возможность динамической проверки выхода индекса за границы массива, обычно трансляторы этим пренебрегают, а это одна из самых трудно обнаруживаемых ошибок пользователей. Было потрачено много усилий, чтобы обеспечить подробную и понятную систему выдачи ошибок с привязкой к месту возникновения ошибки.