МГТУ им Н.Э. Баумана

Evrone помогает обучать студентов в Бауманке

Сотрудники Evrone работают не только над коммерческими проектами. Мы активно поддерживаем open-source сообщество и делимся своими инструментами, проводим мероприятия для разработчиков разных уровней, студентов. Ещё мы сотрудничаем с университетами, например МГТУ им.  Н. Э. Баумана пригласил нашего специалиста вести курс «Алгоритмизация и программирование» для студентов факультета биомедицинской техники.

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

Помогаем обучать программистов

В 2018 году на организованном Evrone Ruby-митапе мы познакомились с Романом Самарёвым, доцентом кафедры «Компьютерные сети и системы» МГТУ им.  Н. Э. Баумана. Он преподаёт профильный курс по веб-разработке у программистов. В конце каждого семестра Роман приглашает людей из сферы разработки и устраивает лекцию, которая выходит за рамки учебного плана. Так как курс ведётся на Ruby, Роман предложил нам поучаствовать в этом и рассказать студентам о нашем опыте.

Мы всегда охотно делимся знаниями и на собственных мероприятиях, и на чужих, поэтому согласились. Тем более для такой лекции у нас был подходящий спикер — Павел Аргентов. В Evrone он занимается технической адаптацией и обучением новых специалистов: знакомит с нашим подходом к разработке, помогает актуализировать знания, проверяет их, даёт тестовые задачи. Кроме этого Павел активно выступает на конференциях, так что толпа любопытных слушателей его не напугает.

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

mstu bauman building photo

Лекция очень понравилась студентам и кафедра предложила нам сделать реальный опыт разработки на Ruby частью курса по веб-разработке и присоединиться к ведению лабораторных занятий. Так уже знакомый с кафедрой Павел Аргентов стал послом Evrone в МГТУ им  Н. Э. Баумана и в течение года вёл практические занятия, а потом взял восьмерых студентов на практику, которую мы организовали вместе с нашим товарищем, автором hanami и dry-rb Антоном Давыдовым.

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

Запускаем курс для студентов БМТ

Курс «Алгоритмизация и программирование биомедицинской техники» является фундаментальным. Он знакомит студентов с основами программирования. Знания эти помогут в изучении других дисциплин. Раньше задачу обучения студентов программированию решал базовый курс «Информатика», но он использовал устаревший язык программирования и не давал необходимый объём знаний и навыков для решения современных задач биоинформатики и научных вычислений.

Курс — двухсеместровый. Первый семестр посвящён знакомству с программированием, начиная с самых азов: переменных, условий, циклов, объявления функций. Во втором семестре студенты занимаются прикладными задачами программирования: машинным обучением, матстатистикой, биоинформатическими расчётами (например, анализом последовательностей ДНК).

Вместе с куратором курса, Романом Самарёвым, мы выбрали для курса высокоуровневый мультипарадигмальный язык Julia. Он был создан в MIT для массивных научных вычислений, а все нужные для них базовые инструменты вшиты в язык и не требуют каких-то специальных ухищрений для того, чтобы обеспечить высокую производительность, как, например, делают в Python с numpy. Непосредственно на языке Julia можно реализовывать быстрые алгоритмы машинного обучения, алгоритмы визуализации — например, можно смоделировать поведение потока крови в кровеносном сосуде или развитие биологической популяции в динамических условиях биотопа.

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

Также мы рассматривали языки Python, Ruby и Pascal. Вот почему они не подошли:

  • Язык Python — его легко освоить, но чрезмерная простота не позволяет использовать его в качестве «школьного» языка. Это лёгкий язык интеграций, скриптов. Python отлично применим для быстрого и качественного решения практических задач, но не может в нужном нам объёме дать академическое представление о программировании. Даже если на занятиях рассмотреть, например, реализацию алгоритма обращения матрицы, вряд ли кто-то в реальной жизни будет использовать для него медленный Python. То есть, полученные навыки не будут востребованы. А студентов впереди ждут более сложные дисциплины, например «Введение в операционные системы реального времени» с использованием C, где фундаментальные знания будут исключительно востребованы.
  • Язык Ruby — отлично подходит с фундаментальной точки зрения, но использование в коммерческой разработке сделало его стандартным выбором для веб-приложений. Научные вычисления на нём возможны, но реализуются сложнее и занимают больше времени и вычислительных ресурсов. С ним мы не смогли бы привить студентам должные навыки в оптимизации алгоритмов.
  • Язык Pascal — традиционный и уже архаичный язык Российского школьного образования. Его почти невозможно применять в повседневных научных расчётах. Кроме этого, Pascal — низкоуровневый язык, что хорошо для подготовки системных программистов, но не инженеров-прикладников или учёных. Напомним, одна из наших ключевых задач — научить студентов использовать программирование в науке.

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

Профессиональное и академическое сообщество активно поддерживает этот язык, всё больше университетов мира включают Julia в обязательный базис для магистерских и докторских программ, доступны разнообразные учебные пособия — от справочников по синтаксису до продвинутых руководств по алгоритмам и профессиональной разработке.

Для будущих учёных и инженеров это значит, что можно комфортно углубляться в изучение Julia, не боясь остаться с бесполезным инструментом на руках.

mstu students photomstu lesson photo

Телемедицина — это сфера практического применения биоинформатики. В нашем портфолио есть несколько проектов, связанных как со сложными научными вычислениями, так и с конкретными цифровыми услугами, применением AI в медицине. Мы успешно запускали b2c-сервисы и использовали на практике подходы к обработке биомедицинской информации.

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

Современные технологии быстро меняются. И если фундаментальную подготовку ВУЗ способен обеспечить самостоятельно, то при обучении, например, программистов, просто необходимо участие в учебном процессе именно тех компаний и их технических специалистов, которые обладают реальными знаниями и навыками новейших технологий в отрасли. Привлечение компании Evrone, таким образом, позволило получить взаимную пользу как университету в актуализации учебных курсов, так и самой компании в понимании интересов молодого поколения и том, как оптимизировать собственные процессы.
Роман Самарёв
к.т.н, доцент кафедры «Компьютерные системы и сети» МГТУ им. Н.Э. Баумана
Связаться с нами
Нужна команда?
Давайте обсудим ваш проект
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.