На ФКН НИУ ВШЭ я занимаюсь проработкой программы бакалавриата для ПМИ и курирую проектную работу. Вопрос "стоит ли давать студентам "настоящие" проекты уже с первого года обучения?" стоял перед нами еще на этапе формирования программы. Мы решили, что стоит, и, думаю, не ошиблись. Расскажу о результатах конкурса проектов, который мы провели в конце, и о некоторых проектах участников конкурса. Буду рад, если прокомментируете и расскажете, что происходит в этом направлении в других вузах (в том числе не в России): интересен опыт, который можно применить и у нас.
Всего было примерно 180 студентов, каждый из которых делал один из 53-х предложенных менторами проектов. Каждый из менторов мог по желанию выдвинуть 1-2 лучших работы из своих студентов (обычно 10 человек на ментора) на конкурс, затем кураторы проектного семинара отобрали 12 финалистов. На самом конкурсе у каждого участника было 7 минут, чтобы изложить суть своего проекта, и несколько минут для ответов на вопросы. В жюри вошли преподаватели факультета, не участвовавшие в проектной работе.
Как прошел финал конкурса — можно посмотреть здесь, а новость с подробным описанием некоторых из проектов — на сайте факультета.
Организацию конкурса еще будем улучшать, но результаты студентов нас приятно удивили.
Победитель — Глеб Пособин — начинал делать проект, целью которого было ознакомление с теорией нейронных сетей, а реализовать нужно было персептрон Розенблатта, с возможным последующим развитием. Персептрон у Глеба получился за вечер, так что в итоге он реализовал многослойную (или как сейчас модно говорить глубокую) нейронную сеть и применить ее к реальным данным (известный датасет MNIST) для распознавания рукописных цифр на картинках. Глеб также реализовал сверточные нейронные сети, которые особенно хорошо себя проявили в распознавании изображений и не только. Вообще, сейчас это очень горячая тема в науке, т.к. с 2012-го нейросети побеждают все в распознавании изображений, речи, уже в некоторых задачах распознают лучше человека, а недавно с некоторыми оговорками нейросеть научили делать машинный перевод лучше, чем создававшийся пару десятилетий до этого статистический. Для первокурсника реализовать и применить на практике нечто, что сейчас находится на переднем крае науки,- это огромная победа.
Павел Поляков, разделивший второе место, реализовал приближенное и точное решение задачи коммивояжера. Исходное описание проекта здесь. В итоге у Павла получилось лучше, чем ожидал ментор, и приближенное решение работает на графе из 100 вершин за пол-секунды и давало погрешность сверху порядка 2-3%, а точное решение на 100 вершинах работает за 1-2 минуты. Кроме алгоритмической части реализован также интерфейс и визуализация графов и получаемых решений.
Еще двое ребят должны были реализовать какую-нибудь свою идею для "умного" устройства, и у одного получились гоночки под Oculus VR, а у другого — летающий "дракон", управляемый голосом. Оба смогли продемонстрировать свои программы прямо во время конкурса.
Кроме того, на конкурс попали разного рода веб-сервисы — анализирующие инстаграм, цены на квартиры в Москве, а также дающие возможность написать что-нибудь на эзотерическом языке программирования или поиграть в одну из множества самописных игр; лингвистический проект по очистке текстов от обсценной лексики; реализация удаленного вычислительного агента; питоновский WebDAV сервер и библиотека для работы с ним, а также сервис статистического анализа истории рыночных цен финансовых активов.
Знакомые и коллеги, которым я про это рассказывал, все прониклись: мы в свое время на первом курсе и близко такого не делали.