Русский
Русский
English
Статистика
Реклама

Образование в it

Путь поступления и учебы в университете в Калифорнии глазами родителей

30.11.2020 06:12:37 | Автор: admin
image

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

Речь пойдет не о картине Дали Живой натюрморт, а об общей концепции как сложить жизненный пазл поступить и учиться в калифорнийском ВУЗе. Как оказалось задача сама по себе не столь тривиальная и требует детального разбора на каждом этапе процесса подготовки к поступлению в ВУЗ и самой учебе.

Путь поступления в университет в США (вариант нашей семьи)


Поставленная задача: получить максимум образования за минимальные деньги, найти высокооплачиваемую работу сразу после окончания ВУЗа, закончить ВУЗ без долгов.

Условия: средний класс, иммигранты, без связей и legacy, многодетная семья живущая в Калифорнии.

Интересы ребенка в средней школе: роботы, математика, история, экономика, политика

Планирование поступления:

1. Общее планирование с 4-го класса (акцент на программу продвинутой математики), углубленное с 8-го класса.

2. В 8-м определились с специальностью (major). Ребенок хотел major по робототехнике, желательно в MIT. Составили список лучших программ по робототехнике, определились с ценой обучения, сравнили начальный и средне-карьерный заработок в робототехнике и Computer Science (CS), требования по graduate and post graduate образованию для карьерного роста, финансовые возможности родителей.

Анализ легко переубедил ребенка начать изучать CS и при наличие устойчивого интереса к робототехнике по получению степени бакалавра в CS продолжить graduate и post graduate образование в сфере робототехники в Carnegie Melon.

3. Составили список требований для поступления в University California (UC) и пару-тройку топовых частных школ. Составили стратегическое расписание на 4 года в high school, список желательных activities и клубов.

Cost/Benefit Analysis

В 10-м классе составили список конкретных школ для поступления.

Требования: престижная программа по Computer Science (CS), возможность получить второй major по экономике (ребенок оказался в большей степени математиком/гуманитарием, чем инженером с паяльником в руке), возможность получить internships, близость к работодателям, полная стоимость не выше чем в UC, желательно значительно ниже.

1. Составили список из 25 наиболее престижных CS программ (не ВУЗов) в США, пользовались для этого всеми возможными рейтингами.
2. На веб сайте каждого вуза заполнили Net Price Calculator, съездили в Caltech лично поговорить с admission officer, выкинули из списка MIT и Caltech, сократили список до 13.
3. Внимательно посмотрели описание программы в каждом колледже, требования, возможности, стоимость обучения, рекомендуемое расписание, наличие accelerated program или honors program, наличие мастерской программы за 5 лет, возможность получить двойной дигри, наличие scholarships особенно merit-based, интересные open source проекты, почитали отзывы в интернете, глянули rate my professor, как часто проводятся career fairs, как близко и как много потенциальных работодателей поблизости.
4. Прокатились по универам в Калифорнии, поговорили с admission officers лично, с глазу на глаз. Узнали очень много полезного. Определились с вузом 1 (Беркли). Ребенок был в восторге от Беркли, больше чем от Стэнфорда и UCLA, что нас очень удивило.

Подготовка к поступлению

1. Проанализировали требования по тестам. В инжиниринговые школы нужно обязательно сдавать 2 доп. теста: один по математике, один по science. Решили сдавать ACT, SAT Math II, SAT Physics по два раза каждый, так как в одних вузах учитывают лучший результат, а в других суперскорят. SAT решили не сдавать, так как попадали на переходный период со старого формата на новый. Подготовительных материалов по новому SAT еще не было.
2. Расписание экзаменов. ACT в сентябре 11 класса и в феврале 11 класса, preSAT в октябре 11 класса, SAT Physics в октябре 11 класса и июне 11 класса, SAT Math II в декабре 11 класса и мае 11 класса.
3. Ребенок готовился ко всем экзаменам сам. Тьютора по сочинению нанимали на 1 час для экзамена после того, как получил низкую оценку по ACT в сентябре и 2 часа для критики сочинений в вузы. Ставка $125 в час.
4. Летом после 11 класса ребенок писал бесконечные эссе и заполнял анкеты в университеты.

Результаты

Из 13 вузов приняли 7, включая Беркли. Дали один Scholarship 20 тысяч на 4 года как Regent Scholar. По стоимости получалось в пределах нашего максимума в 5-ти вузах, далеко за пределами наших возможностей в одном ВУЗе, и самый дешевый оказался Беркли за счет проживания дома.

Ошибки

  • Не знали, что можно заказать копию результатов по ACT и обжаловать низкую оценку в течение 3-х месяцев. Как оказалось, многие сдававшие ACT в сентябре получили низкие оценки по сочинению из-за ошибки контракторов, проверяющих сочинения. Один мальчик писал, что он смог оспорить оценку и поднять ее с 19 до 32.
  • Подавали Early Decision (ED) в Стэнфорд. Большая ошибка. Как оказалось ED это legacy admission. Как нам объяснил выпускник Колумбийского универа, в этот период набирают детей бывших выпускников, которые ежегодно (!) платили колледжу деньги после его окончания. И чем больше денег заплатили, тем больше шансов у их детей. Также в этот период берут знаменитых, спортсменов, богатых с высокими баллами и тех, у кого связи. В топовые школы лучше подавать Regular Decision (RD). Из этого пула набирают умных и разноцветных до кучи.
  • Не учли важность отношений с директором каунселинга в школе. Как оказалось позже, они играют на одного кандидата от школы в престижный вуз: составляют расписание с классами у учителей, у которых легко получить оценку и, как результат, иметь очень высокий GPA без особых усилий, пишут супер хвалебные рекомендательные письма.
  • Решили не сдавать SAT для финала Presidential Scholar, типо чего там ради $2,500 заморачиваться, ребенок и так уже еле ноги таскает. Оказалось, что некоторые частные школы могут скостить половину обучения финалистам в дополнение к scholarship.


image

Университет


Когда определились с университетом, то необходимо определится с major (специальность). Правила в системе UC таковы, что для специальности надо пройти отбор и доказать, что студент подходит под выбранную специальность и получил пропускной балл по сданным на специальность предметам.

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

Возьмем в качестве примера Беркли Университет специализацию CS. Требования таковы сдать три курса CS 61A, CS 61B, CS 70 со средним баллом выше 3.3 (В+)

По этим ссылка вы можете ознакомиться с курсами:


Лучше брать один курс из списка в семестр, чтобы не снизить общий средний балл, на который влияют много факторов и главное катастрофическая нехватка времени. Задания задаются обычно каждую неделю по всем предметам и время сдачи так же каждую неделю. Очень сложно в этих условиях все спланировать по времени. Студент учится практически в перманентном цейтноте.
Есть стратегии которые могут облегчить этот цейтнот:
  1. Не все классы требуют оценки. Можно на непрофильные предметы заявить pass/no pass т.е попросту зачет
  2. Не все домашние работы нужно сдавать. Часто в курсе предполагается, что можно несколько домашних работ пропустить, обычно две.
  3. Понятно, что надо избегать брать сложные курсы в один семестр. Тяжелые курсы лучше разносить по семестрам.
  4. На каникулах следует ознакомиться с курсами за предыдущие годы. Обычно все задания за предыдущие годы опубликованные и дают представления о материале.
  5. Смотреть рейтинг преподавателей.


Специфика американской школы

В американской школе учатся 12 лет и часто последние три года в школе школьники берут классы уровня колледжа их называют Advance Program (AP). ВУЗ-ы системы UC засчитывают эти АР классы, что часто сокращает срок обучения на целый год если студент взял к примеру 8 или 9 АР классов в школе.

Для того чтоб получить степень бакалавра надо выполнить определенные требования. Кроме положенных курсов по специализации (major) надо также сдать базовые (breadth) курсы навроде Американская история, Английский язык и тп с общим средним баллом выше 2.

Оплата обучения и проживания

Возьмем на примере того же Беркли

CA RESIDENT NONRESIDENT*
Tuition and Fees $14,254 $14,254
Nonresident supplemental tuition - $29,754
Student Health Insurance Plan** $3,286 $3,286
Room and board $17,220 $17,220
Food $1,644 $1,644
Books and supplies $870 $870
Personal $1,876 $1,876
Transportation $400 $400
TOTAL $39,550 $69,304

Для резидентов штата Калифорния плата за обучения в год составляет $14,254 далее идут расходы где основную долю занимает проживание в общежитие. На сайте университета существует калькулятор, который показывает в зависимости от доходов семьи как снижается оплата за обучение.

Все ВУЗы в США имеют что-то подобное где можно подсчитать какая предполагаемая оплата за обучение и как можно получить финансовую помощь обучаясь в данном ВУЗе Вообще как устроена финансовая помощь для студентов в США это просто отдельная тема.

Как выглядит домашнее задание/проект на Computer Science

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

Проект Spark Machine Learning

Сам проект базировался на реальных данных в объеме 4ГБ предоставленный компанией Yelp в рамках их проекта https://www.yelp.com/dataset

Идея была довольно проста используя спарк разработать байесовскую модель по определению оставленных ревью с точки зрения зависимость оценки ревью бизнеса от употребляемых слов в ревью.

Сильно облегчило жизнь тот факт, что дома на тот момент стоял игровой компьютер с 12 core процессорами и каждый прогон на данных компании Yelp занимал порядка 20 минут. В университете были компьютеры послабее и там прогон шел до двух часов. С учетом ограничения на домашнее задание в одну неделю это сильно помогло.

На обычном маке результата было дождаться нереально долго. Надо отметить, что мак это в некотором роде стал учебным стандартом на CS в ВУЗах США.

Проект секьюрити

Проект строился на том, чтоб найти и устранить дыры в оригинальном коде приложения написанного на питоне. Сам код на питоне давался в распоряжение студента. Насколько я помню в проекте присутствовали практически все дыры по классификации OWASP.

Проект Machine Learning

Здесь видимо нужно сказать отдельно на сегодняшний день это самый топовый курс в Беркли. Все домашние задания это микро соревнования на kaggle.com. Курс предполагает более 850 человек если посмотреть по первым домашним заданиям до конца курса дошло порядка 700 человек.

Задание на дом обычно звучало так не используя библиотек и фреймворков написать код на питоне реализующий ML Classification после чего следовало название классификации вроде: Decision Tree, Random Forest и тп.

На что необходимо обращать внимание во время обучения

image

Так и хочется сказать Граждане будьте бдительны!!!

  1. Так как в американском ВУЗе предполагается, что студент сам себе составляет расписание надо иметь как минимум расписание вперед на два семестра. Очень хорошо понимать какой курс следует за другим, часто бывает, что курсы имеют внутреннюю иерархию и часто, чтоб взять определенный курс надо уже пройти несколько других курсов.
  2. Вы можете попасть на лист ожидания на какой-то курс. Не отчаивайтесь чаще всего по мере учебы вас переведут на курс с листа ожидания. Если уж совсем будет плохо пишете письмо профессору со своими аргументами почему вам так важен этот курс. Обычно действует правил чем длинеее лист ожидания, тем лучше курс.
  3. Из курьезного прямо как по Высоцкому
    Там у них уклад особый
    Нам так сразу не понять...

    • Если делаете домашнюю работу совместно с кем-то или в коллективе обычно это называется home work party, то обязательно надо указать, чтоб вас не обвинил в плагиате.
    • Если нашли готовое решение участка кода в интернете сделайте комментарий и дайте ссылку на источник.
    • Практически любое задание по программированию принимает автогрейдер и тут же идет анализ на плагиат кода.


Заключение


Это статья завершает цикл статей об обучение в США начиная с младшей школы и до окончания университета.
Cистема образования в США: Младшая и Средняя школа чему и как учат? Часть 1
Cистема образования в США: Старшая школа 9-12 классы чему и как учат? Часть 2
Подробнее..

Где учиться программированию в Петербурге программы при поддержке JetBrains

22.06.2020 16:10:43 | Автор: admin
Мы заинтересованы в том, чтобы повышать образовательный уровень в IT-сфере, и готовы строить высшее образование вместе с вузом.

В этом посте мы расскажем об образовательных проектах в Петербурге, которые поддерживает JetBrains: о бакалаврских и магистерских программах в НИУ ВШЭ, ИТМО, СПбГУ и о Computer Science Center.



Бакалаврские программы:
Прикладная математика и информатика в НИУ ВШЭ Санкт-Петербург
Современное программирование в СПбГУ

Магистратура:
Разработка программного обеспечения / Software Engineering на базе Университета ИТМО
Машинное обучение и анализ данных в НИУ ВШЭ Санкт-Петербург
Программирование и анализ данных в НИУ ВШЭ Санкт-Петербург

Дополнительное образование:
Computer Science Center

В чем особенность наших программ?


Участие IT-компаний в обучении


Учебные программы разрабатываются при участии IT-компаний, чтобы давать действительно полезные знания. Курсы читают действующие программисты и учёные. Наши преподаватели: Виталий Брагилевский, Дмитрий Ицыксон, Александр Куликов, Евгений Линский, Денис Москвин, Александр Храбров, Алексей Шпильман.

Индивидуальный подход


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

Практические занятия проходят в небольших группах.

Обратная связь


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

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

Проектная деятельность


Студенты всех программ работают над семестровыми научно-исследовательскими проектами под руководством преподавателей или сотрудников компаний-партнёров. Так они получают опыт разработки в условиях, максимально приближенных к реальным. Задачи, которые они решают в рамках проектной работы, имеют научную или практическую ценность: например, магистранты Машинного обучения и анализа данных работали над плагином для улучшения поддержки естественного языка в IntelliJ IDEA. Смотрите примеры проектов студентов Computer Science Center или студентов Питерской Вышки: здесь, здесь и здесь.

Бакалавриат


Прикладная математика и информатика в НИУ ВШЭ Санкт-Петербург


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

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


Подробнее
Программа состоит из двух больших частей. На первом и втором годах обучения студенты проходят общеобразовательные дисциплины. Сразу начинаются математика, курс алгоритмов и программирование (на первом курсе годовой курс С++, затем годовой курс Java, а также Unix, Python, функциональное программирование и Haskell, операционные системы и так далее). С третьего года обучения у каждого студента появляется индивидуальная образовательная программа. Можно выбирать спецкурсы из нескольких базовых треков: машинное обучение и анализ данных, software engineering, языки программирования, теоретическая информатика, биоинформатика, низкоуровневое программирование.

Проектная деятельность начинается уже на первом курсе (на Хабре можно почитать статью первокурсников об игровом движке, который они написали на С++, другие примеры проектов есть в нашем Instagram). С третьего курса студенты решают практические задачи от компаний JetBrains, Яндекс, Ростелеком и др. Мы рассказали о некоторых проектах в нашем блоге на Хабре: Как учиться с помощью машинного обучения у экспертов в Dota 2, Как я научила робота бегать по видео с YouTube, Mountain Car: решаем классическую задачу при помощи обучения с подкреплением

Стипендии. Все студенты, которые сдают экзамены без троек, получают спонсорскую стипендию от JetBrains. Она составляет 9-15 тыс. рублей в месяц и зависит от среднего балла. Отличники, а также победители и призеры Всероссийской олимпиады школьников могут претендовать на дополнительные стипендии, и в сумме получать 20-25 тыс рублей в месяц.

Место. Все занятия проходят в отдельном корпусе (отремонтирован в 2019 году) по адресу ул. Кантемировская, д.3А.

42 бюджетных места, 40 платных мест

Полезные ссылки:
Чат программы в Telegram
Блог Питерской Вышки на Хабре
Отзывы студентов

Бакалавриат Современное программирование на факультете математики и компьютерных наук СПбГУ


Программа для тех, кому хочется заниматься промышленным программированием и созданием алгоритмов.

На первых курсах студенты изучают необходимые базовые предметы, а на третьем и четвертом составляют себе индивидуальную траекторию обучения, выбирая из ста с лишним математических спецкурсов. Курсы читают ученые из России и из-за рубежа и разработчики IT-компаний. Во время учебы можно посещать открытые научные семинары лаборатории имени П.Л. Чебышева под руководством С.К. Смирнова, лауреата премии Филдса.

Бакалавриат лидер по количеству призёров Всероссийской олимпиады школьников в 2015-2019 г. в России. Учиться сложно и интересно: рассказ студентки об обучении на первом курсе программы.

Подробнее
Что в программе. Алгебра, дискретная математика, математический анализ. Алгоритмы и структуры данных, C++, парадигмы и языки программирования, функциональное программирование, Java, принципы организации и архитектура компьютерных систем и другие курсы по математике и программированию. Смотрите подробный учебный план и список спецкурсов, доступных для выбора на третьем и четвертом годах обучения.

Помимо учёбы можно заниматься спортивным программированием под руководством тренера сборной СПбГУ.

Программа готовит IT-специалистов: бэкенд- и веб-разработчиков, аналитиков и не только.

Преподаватели: Александр Куликов, Виталий Брагилевский, Денис Москвин, Фёдор Бахарев, Дмитрий Ицыксон, Евгений Линский и другие.

Практические проекты. С первого курса ребята работают над проектами под руководством специалистов IT-компаний. Например, в этом году они сделали веб-приложение Big sister, которое отслеживает активность студентов в течение семестра. Другие проекты: ассистент поэта сервис генерации стихотворений на русском языке; игра в жанре 2D-платформер; тренажёр для публичных выступлений; графическая программа под Android.

Стипендии. Студенты, поступившие без вступительных испытаний, получают спонсорские стипендии JetBrains от 10 до 15 тысяч рублей. В дальнейшем спонсорская стипендия платится по результатам успеваемости. Студенты также получают дополнительные стипендии от государства (например, стипендию КНВШ).

Место. Лекции проходят в историческом центре Петербурга на Васильевском острове.

30 бюджетных мест, 8 платных мест

Полезные ссылки:
Статья о программе на РБК
Блог первокурсника СП
Чат с руководителями программы для поступающих в 2020 году

Магистратура


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

На Программировании и анализе данных в Питерской Вышке ждут выпускников бакалаврских программ с углубленным изучением программирования и математики. Здесь учится большинство выпускников Прикладной математики и информатики НИУ ВШЭ Санкт-Петербург.

Разработка программного обеспечения / Software Engineering на базе Университета ИТМО



В магистерской программе Разработка программного обеспечения / Software Engineering много очных занятий и самостоятельной работы над практическими задачами и проектами.

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

Отдельное внимание уделяется работе в команде. В первом и во втором семестре студенты в течение недели участвуют в хакатоне DevDays. Ребята сами придумывают проекты, объединяются в команды, распределяют роли и в конце недели презентуют результаты. Рассказы о проектах от первых лиц читайте здесь и здесь.

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

После первого семестра студенты самостоятельно выбирают одну из следующих образовательных траекторий:

  • промышленная разработка ПО,
  • машинное обучение,
  • теория языков программирования,
  • анализ данных в биоинформатике.

Во втором и третьем семестрах в дополнение к обязательным дисциплинам в учебный план добавляются спецкурсы выбранных траекторий.

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

Место. Почти все занятия проходят в офисе JetBrains у Кантемировского моста (Кантемировская ул., д. 2). В распоряжении студентов есть кухня, где можно отдохнуть между занятиями, выпить чай или кофе и разогреть еду, а также студенческие комнаты для работы над домашними заданиями и проектами.

Стипендии. Студентам магистратуры в зависимости от успехов в учёбе выплачивается дополнительная спонсорская стипендия от 10 000 до 15 000 рублей. Организаторы помогают с поездками на соревнования, конференции и другие образовательные мероприятия.

30 бюджетных мест, 5 платных мест

Полезные ссылки:
Чат программы в Telegram
Интервью со студентами

Машинное обучение и анализ данных в НИУ ВШЭ Санкт-Петербург


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

Подробнее
Программа. На первом году обучения во время осеннего модуля магистранты проходят базовые курсы по алгебре, теории вероятности и математической статистике. Затем базовые курсы по машинному обучению: Основы алгоритмов, Методы оптимизации и др. На втором году начинаются спецкурсы, и каждый студент выбирает те дисциплины, которые ему интересны. Например, магистранты учатся работать с алгоритмами и программным обеспечением для обучения беспилотных автомобилей, изучают Анализ данных на Python в примерах и задачах, проходят курс по нейробайесовским методам, чтобы создавать генеративные модели. В результате за 2 года магистранты постепенно осваивают область машинного обучения и анализа данных от азов до последних достижений науки.

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

Проекты. JetBrains тесно сотрудничает с программой Машинное обучение и анализ данных. Компания предлагает научно-исследовательские проекты для студентов, приглашает на стажировки, а часть ее сотрудников преподаёт дисциплины магистратуры. Ещё работать над проектами можно в Центре анализа данных и машинного обучения НИУ ВШЭ Санкт-Петербург. Им заведует Алексей Александрович Шпильман преподаватель Питерской Вышки и руководитель лабораторий Прикладное машинное обучение и глубинное обучение и Агентные системы и обучение с подкреплением в JetBrains Research. Студенты проходят летние стажировки и выполняют проекты в этих лабораториях или в других партнёрских компаниях программы.

Стипендии. Спонсорскую стипендию JetBrains от 10 000 до 15 000 рублей в месяц получают те, кто учится без троек. Размер стипендии зависит от успеваемости.

Место. Занятия проходят в отдельном корпусе (отремонтирован в 2019 году) по адресу ул. Кантемировская, д.3А

10 бюджетных мест, 10 мест за счет средств НИУ ВШЭ, 5 платных мест

Полезные ссылки:
Чат в Telegram
Статья о программе
Запись вебинара о программе

Программирование и анализ данных


На этой программе ждут выпускников бакалавриата с углублённым изучением программирования и математики. Это научная магистратура, куда приходят люди с серьёзной подготовкой в области программирования, а также в области машинного обучения и анализа данных. Упор сделан на продвинутые спецкурсы (их не так много: 5-6 занятий в неделю) и научно-исследовательскую работу, которая начинается с первого семестра.

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


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

Учёбу в этой магистратуре можно совмещать с работой при условии, что задачи, которые студент решает на работе, имеют научную или практическую ценность. Партнёры программы компании JetBrains, Яндекс, Ростелеком, Газпромнефть и другие предлагают такие проекты.

Стипендии. Именные стипендии размером до 15 000 рублей выплачивают компании-партнёры.

Место. Занятия проходят в отдельном корпусе (отремонтирован в 2019 году) по адресу ул. Кантемировская, д.3А

15 бюджетных мест, 5 мест за счет средств НИУ ВШЭ, 5 платных мест

Полезные ссылки:
Чат в Telegram
Рассказ студентки о программе
Запись вебинара о программе

Дополнительное образование в CS центре


Computer Science Center это совместная инициатива Computer Science клуба, компании JetBrains и Школы анализа данных Яндекса.

Программа. Центр предлагает двух- или трёхлетние очные вечерние курсы в Санкт-Петербурге и Новосибирске, чтобы талантливые студенты и выпускники вузов развивались в направлениях Computer Science, Data Science или Software Engineering. Программа состоит из базовых курсов по каждому направлению, курсов по выбору и практики или научно-исследовательской работы. Примеры практических проектов наших студентов.

Преподаватели. Учёные, сотрудники JetBrains, Яндекса, выпускники центра. Чтобы познакомиться с программой и преподавателями, смотрите курсы, опубликованные на YouTube.

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

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

Полезные ссылки:
Видео об атмосфере в CS центре
Онлайн-курсы центра на Stepik
Записи открытых лекций центра
Канал для поступающих в 2020 году: там много ответов на вопросы

Набор на бакалаврские и магистерские программы уже начался. Приходите учиться!
Подробнее..

Всё-таки я не зря учился! Как клёвые алгоритмы и школьные формулы помогают создавать инновационные лекарства

21.07.2020 18:12:25 | Автор: admin

image


Введение


Меня зовут Александр Садовников, я выпускник корпоративной магистерской программы ИТМО и JetBrains Разработка программного обеспечения и по совместительству старший разработчик биоинформатического ПО в департаменте вычислительной биологии компании BIOCAD.


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


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


Хочется верить, что данный материал будет интересен и полезен любому читателю, однако, чтобы понять всю техническую сторону вопроса, потребуются некоторые знания в области математики и алгоритмов.


Зачем нужно предсказывать структуру молекулярного комплекса


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


image
Структура антитела


Антитело состоит из нескольких частей. Наиболее значимыми частями в контексте способности антитела взаимодействовать с другими молекулами являются его петли (на рисунке петли помечены как L1, L2, L3 и H1, H2, H3). Название этих частей антитела обусловлено их формой: посмотрите на рисунок действительно же петли какие-то! От структуры петель антитела зависит сила его связывания с поверхностью целевой молекулы и геометрические свойства данного взаимодействия. Поэтому при разработке лекарственных средств на основе антител наибольшее внимание уделяется именно петлям.


image
Пример взаимодействия антитела с мишенью. Зелёным цветом показана молекула антитела, жёлтым молекула мишени. Красным цветом обозначены петли антитела.


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


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


Принцип работы алгоритмов решения задачи докинга


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


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


image
Схема работы алгоритма докинга


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


Докинг на сетках


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


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


Если высокоуровнево описать принцип работы алгоритма докинга на сетках, то получается совсем простой код:


complexes = []# перебираем все возможные вращения второй молекулы относительно первойfor rotation in rotations:     # перебираем все возможные смещения второй молекулы относительно первой    for shift in shifts:         # поворачиваем и сдвигаем вторую молекулы         # с учётом заданных вращения и смещения        moved_mol2 = rotate_and_shift(mol2, rotation, shift)         # создаём из молекул комплекс, в котором вторая         # молекула повёрнута и сдвинута        new_complex = (mol1, moved_mol2)         complexes.append(new_complex)# сортируем все полученные комплексы по их правдоподобиюcomplexes.sort(lambda candidate_complex: score_complex(candidate_complex)) 

Однако тут важны детали. А именно, нас интересует способ оценки правдоподобия молекулярного комплекса, то есть того, насколько вероятно существование этого комплекса в природе. Точное определение правдоподобия даже одного молекулярного комплекса задача достаточно трудоёмкая. Всего у нас получается $R \cdot S$ комплексов, где R число вращений второй молекулы, а S число её смещений. На практике $R \cdot S$ имеет порядок $10^5$. Определить правдоподобие такого большого числа комплексов за разумное с практической точки зрения время и в условиях ограниченности вычислительных ресурсов просто не представляется возможным.


В 1992 году, когда был изобретён алгоритм докинга на сетках, проблема производительности была ещё более актуальна. Поэтому его авторами был предложен следующий подход.


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


$\text{cell}_{ijk} = \begin{cases} 1, & \text{если на поверхности} \\ p, & \text{если внутри} \\ 0, & \text{в другом случае}. \end{cases}$


Значение 1 присваивается ячейкам сетки, которые содержат атомы, находящиеся на поверхности молекулы. Значение $p$, которое находится в промежутке от 0 до 1, присваивается ячейкам, которые содержат только атомы молекулы, не имеющие доступа к её поверхности. Значение 0 присваивается всем остальным ячейкам сетки. Пример построения сеток для двух молекул приведён ниже.


image
Пример построения двумерных корреляционных сеток для двух молекул


Теперь давайте введём понятие корреляции двух сеток. Фактически, корреляция сеток представляет собой их поэлементное перемножение и последующее суммирование результатов перемножения. Давайте посмотрим, как ведёт себя корреляция двух сеток, построенных по описанной выше формуле. Наибольший вклад в корреляцию даёт перемножение ячеек, значения которых равны 1. Это соответствует ситуации, когда и в первой, и во второй сетках в ячейках находятся атомы, принадлежащие поверхностям молекул. Получается, что чем больше корреляция двух сеток, тем более подходящими друг другу с точки зрения геометрии поверхностей являются молекулы.


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


Однако в таком виде данная идея не даёт нам прироста производительности: корреляция двух сеток вычисляется за время $O(N^3)$, где N размер одного измерения сетки, и время работы алгоритма всё ещё будет составлять $O(R \cdot S \cdot N^3)$. Это много. Заметим, что теперь нам не надо искать смещение второй молекулы относительно первой. Смещение молекул мы описываем исключительно в терминах сеток и их корреляции, поэтому достаточно найти смещение сетки второй молекулы относительно сетки первой молекулы. По найденному смещению можно однозначно восстановить сдвиг второй молекулы относительно первой. Теперь можно более точно оценить время работы текущего алгоритма: оно получилось $O(R \cdot N^6)$. Но это очень много, учитывая, что приемлемая точность работы алгоритма достигается при N, имеющем порядок $10^2$.


Тут нам наконец-то приходит на помощь университетская программа курса по алгоритмам. Оттуда мы знаем (или ещё только узнаем), что корреляция двух трёхмерных сеток может быть вычислена за время $O(N^3 \log N)$ для всех циклических сдвигов одной сетки относительно другой. Делается это с помощью алгоритма быстрого преобразования Фурье, более известного как FFT. При таком подходе время работы алгоритма докинга на сетках составляет $O(R \cdot N^3 \cdot \log N)$, что является намного более приемлемым результатом, чем время работы первоначального подхода.


Наконец-то мы можем записать финальную эффективную версию алгоритма докинга на сетках:


complexes = []# строим корреляционную сетку для первой молекулыgrid_for_mol1 = build_grid(mol1) # прямое преобразование Фурье для первой молекулыfft_mol1 = fft_3d(grid_for_mol1) # перебираем все возможные вращения второй молекулы относительно первойfor rotation in rotations:     # поворачиваем вторую молекулу с учётом заданного вращения    rotated_mol2 = rotate(mol2, rotation)     # строим корреляционную сетку для повёрнутой второй молекулы    grid_for_mol2 = build_grid(rotated_mol2)     # прямое преобразование Фурье для второй молекулы    fft_mol2 = fft_3d(rotated_mol2)     # поэлементно перемножаем преобразованные сетки. После этого     # применяем к результату перемножения обратное преобразование     # Фурье. И, казалось бы, магическим образом получаем корреляции     # для всех циклических сдвигов второй сетки относительно первой    correlations = ifft_3d(fft_mol1 * fft_mol2)     # создаём из молекул комплексы, в которых вторая     # молекула повёрнута и сдвинута    rotation_complexes = map(lambda shift_: (mol1, shift(rotated_mol2, shift_)))     # для каждого комплекса мы уже посчитали его правдоподобие     # с помощью быстрого преобразования Фурье    complexes += list(zip(rotation_complexes, correlations)) # сортируем все полученные комплексы по их правдоподобиюcomplexes.sort(lambda (candidate_complex, score): score) 

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


Улучшение докинга на сетках за счёт статистического потенциала


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


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


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


$E_{SP} = \sum_{I \in N} \sum_{j \in M} SP_{ij},$


где $N$ и $M$ множества атомов молекул данного комплекса, а $SP_{ij}$ энергия взаимодействия атомов типов $i$ и $j$ в статистическом потенциале $SP$.


Это выражение можно представить в виде корреляции двух сеток, что позволяет повысить точность работы алгоритма докинга на сетках. Я был бы рад поделиться теоретическими выкладками о том, как это сделать, но хочется успеть рассказать вам о более интересных вещах. Просто поверьте (или проверьте), что для понимания этих выкладок не нужно ничего, кроме пары фактов из курса линейной алгебры.


Создание статистических потенциалов с разными свойствами представляет большой простор для исследований. Например, один только Piper использует два разных потенциала: DARS (Decoys as Reference State) и aADARS (asymmetric Antibody DARS). aADARS используется для докинга антител, а DARS для докинга остальных видов молекул.


В рамках своей магистерской работы я занимался созданием нового статистического потенциала, предназначенного именно для докинга антител. Изначально предполагалось просто обновить aADARS, пересчитав его на новых экспериментальных данных. Однако в ходе работы выяснилось, что сам подход к созданию потенциала может быть существенно улучшен за счёт учёта информации про электростатические взаимодействия атомов и петли антител. Это привело к созданию нового статистического потенциала WAASP (Widely Applicable Antibody Statistical Potential). Использование WAASP существенно увеличило точность алгоритма докинга HEDGE, разрабатываемого в департаменте, в котором я работаю:


image
Сравнение версий алгоритма докинга HEDGE, использующих разные статистические потенциалы


Что важно, прирост точности является существенным не только относительно версии алгоритма, не использующей статистические потенциалы, но и относительно версий, использующих DARS и aADARS.


Если вам интересно узнать побольше про применение статистических потенциалов в контексте задачи докинга, то на сайте нашей магистратуры есть запись моей защиты (вообще говоря, не только моей). Всего 7 минут, и ваш кругозор расширится необратимым образом!


Кластеризация


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


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


Разбиение множества элементов на группы по принципу сходства элементов называется кластеризацией. Каждая полученная группа называется кластером. В нашем случае в качестве разбиваемого на группы множества выступает множество результатов работы алгоритма докинга на сетках. В качестве метрики сходства элементов множества выбирается классическая для задач структурной биоинформатики метрика RMSD (Root-Mean-Square Deviation). RMSD между двумя молекулярными комплексами вычисляется как среднеквадратичное отклонение координат атомов одного комплекса от координат атомов другого.


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


После кластеризации отбирается порядка 250 кластеров, имеющих наибольший размер. Для каждого полученного таким образом кластера вычисляется центроид представитель кластера, наименее удалённый от остальных его элементов. Таким образом, мы смогли уменьшить количество кандидатов на правильный ответ с 10000 до 250, однако это всё ещё довольно много. Улучшить данный результат нам поможет следующий этап работы алгоритма докинга.


Минимизация


image
Минимизация структуры молекулярного комплекса


Заключительным этапом работы алгоритма докинга является этап минимизации. Давайте разбираться, почему он так называется и как он работает!


Сначала давайте поймём, что такое энергия комплекса с точки зрения структурной биоинформатики. Возьмём две молекулы, которые формируют данный комплекс, и разведём их на бесконечное расстояние друг от друга. После этого давайте отпустим эти молекулы и понаблюдаем за нашей системой. Если молекулы слиплись в комплекс сами собой, то это значит, что его образование им выгодно. Если молекулы так и остались болтаться, никак друг с другом не взаимодействуя, то можно прицепить их друг к другу, используя внешнее воздействие (например, наши руки, которыми мы уже умудрились раздвинуть молекулы на бесконечное расстояние друг от друга!). Однако это означает, что в природных условиях данные молекулы в комплекс не объединятся.


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


Отсюда следует вывод, что чем меньше значение энергии комплекса, тем наиболее вероятно его существование в природе: мы так определили энергию. Из этого вывода мы можем почерпнуть две простые, но важные идеи.


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


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


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


Процесс поиска минимума функции называется минимизацией. Отсюда и название данного этапа работы докинга!


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


Для решения задачи минимизации многопараметрической функции энергии в биоинформатике принято применять градиентные методы. Если совсем просто, то градиент функции многомерный аналог производной. Градиент представляет из себя вектор, направление которого показывает направление наискорейшего роста функции. В точке минимума функции модуль вектора градиента близок к нулю аналогично тому, когда в точке минимума однопараметрической функции её производная равняется нулю.


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


image
Пример ситуации, когда локальный минимум функции энергии не является глобальным


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


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


Всё, процесс работы всего алгоритма докинга завершён!


Заключение


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


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


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


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

Подробнее..

Как IT-гиганты помогают образованию? Часть 3 Amazon Web Services

13.07.2020 12:11:27 | Автор: admin
За 25 лет Amazon вырос из онлайн-магазина книг до одного из лидеров сразу в нескольких сферах. Около трети рынка облачных услуг принадлежит ему. Ещё один интересный факт: благодаря использованию микросервисов и continuous deployment сотрудники компании задеплоили что-то в прод 192 миллиона (!) раз за 2019 год. Вот уж у кого есть чему поучиться.

В этом году AWS запустила пилотный проект AWS Educate Student Ambassador, и мне выпала честь стать одним из амбассадоров. Так что написание этой части мне доставило особое удовольствие.



Если Вы читали предыдущие две части, то знаете, что возможности рассмотренных в них Google и Microsoft ограничены по географии. Если не читали рекомендую ознакомиться.

Программой AWS Educate пользуются в более чем 200 странах мира (в сравнении с несколькими десятками Google for Education и чуть больше 140 в Azure для учащихся). Amazon не предлагает никаких бесплатных вспомогательных услуг для образования, однако есть у них одно уникальное предложение, о котором я расскажу ниже. В самом конце будет ссылка на регистрацию.

Примечательно, что программа AWS Educate, судя по всему, мало известна и недооценена в пост-советском пространстве (во всяком случае если судить по географии участников Cloud Ambassador и Student Ambassador). Надеюсь, этот пост позволит хоть как-то изменить ситуацию.

AWS Educate для студентов


Студенты могут зарегистрировать аккаунт AWS Educate Starter. В зависимости от того, принимает ли Ваше образовательное учреждение в программе, Вы получите разные суммы на счёт:

  • студенты системы высшего образования получат $100, если их учебное заведение принимает участие в программе, и $30, если нет;
  • ученики старших школ получат $75 и $30 соответственно.

Сумма предоставляется на 12 месяцев. Набор услуг несколько ограничен, однако большинство доступно. Если по их истечении Вы всё ещё являетесь учеником или студентом данного учебного заведения, Вы сможете получить ещё столько же. Для регистрации необходимо указать e-mail, предоставленный учебным заведением.

Личный кабинет AWS Educate Starter отличается от обычной консоли AWS. Это скорее небольшой портал для тех, кто хочет связать свою карьеру с технологиями, предлагаемыми AWS. Тут есть обучающие материалы, объединённые в карьерные пути и бэджи. Каждый карьерный путь это от 25 до 45 часов учебных материалов и практических заданий по определённой теме.



Бэджи в свою очередь это курсы, посвященные одной или нескольким конкретным технологиям, предоставляемым Amazon. Продолжительность такого курса 10-15 часов.

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



Начиная с 2020 года, Amazon запустила программу AWS Educate Student Ambassador. Её цель отобрать наиболее активных студентов, которые в дальнейшем бы продвигали программу AWS Educate в своих учебных заведениях. Взамен отобранные участники получат дополнительный кредит на свой аккаунт, доступ к обучению и мероприятиям от Amazon, закрытому тестированию продуктов и сувенирке. Плюс резюме участников уходит в базу компании, и наиболее активных и полезных участников вполне могут пригласить на работу.

AWS Educate для преподавателей


Преподаватели также могут получить некоторую сумму на услуги AWS. Однако, в отличие от студентов, преподаватели могут не только создать аккаунт AWS Educate Starter, но и применить кредит к обычному аккаунту. Сумма при этом несколько отличается:

  • $200 для учебных заведений, участвующих в программе, и $75 для остальных, если используется обычный аккаунт AWS;
  • $150 и $50 соответственно, если используется аккаунт AWS Educate Starter.

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

Очень полезная возможность для преподавателей Classroom (классная комната). Она позволяет создать виртуальную среду для практических занятий Ваших студентов совершенно бесплатно. Вы можете пригласить своих студентов в виртуальный класс, и они при этом получат отдельную сумму на аккаунте AWS Educate Starter для прохождения Ваших заданий. В рамках классов предоставляются шаблоны, соответствующие определённой сфере (big data, машинное обучение, искусственный интеллект и другие).

Как и для студентов, для преподавателей предоставляются различные возможности для обучения и сертификации. У меня не было возможности увидеть аккаунт для преподавателей изнутри, но, насколько я вижу из описания, преподавателям доступны материалы, созданные как AWS, так и другими преподавателями, а также экспорт материалов для дальшейшей публикации в LMS. Плюс доступны скидки на некоторые тренинги и сертификации.

По аналогии с программой Student Ambassador, для преподавателей существует созданная на год раньше AWS Educate Cloud Ambassador. Если Вы опытный пользователь или преподаватель AWS, обязательно попробуйте податься в наступном цикле. Вы также получите эксклюзивный доступ к материалам, скидки и плюшки.

AWS Educate для образовательных учреждений


Как я уже упоминал, одно из основных преимуществ регистрации учебного заведения в программе более высокая сумма кредитов для студентов и преподавателей. Регистрация бесплатна, ссылка будет приведена ниже.

Есть ещё одно уникальное предложение программа AWS Educate Cloud Degree. Её цель помочь учебным заведениям привести свою программу в соответствие с рыночными требованиями. Фраза забудьте всё, что вы учили в университете, думаю, знакома многим. Кому-то, возможно, даже из личного опыта. Amazon совместно с работодателями подготовили набор рекомендаций, позволяющих студентам выходить готовыми к рынку труда специалистами начального уровня, и помогают их внедрять.

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

AWS Activate


Помимо образовательных программ, Amazon предлагает поддержку стартапам, возникающим на базе образовательных учреждений и не только. В рамках помощи предлагается $1000 промо-кредитов на Ваш счёт AWS (действительны 2 года) и $350 кредитов на AWS Developer Support (действительны 1 год). Проект должен быть действующим, у него должен быть либо свой сайт, либо страничка на LinkedIn или платформе с бизнес-информацией о стартапе (Crunchbase, AngelList и т.п.). Официальная регистрация компании не требуется. К участию не допускаются проекты, получавшие ранее какие-либо бонусы от AWS напрямую или через различные акселераторы.

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

Ещё по теме:Часть 1: Google>Часть 2: Microsoft>Часть 3: Amazon Web Services

Вместо заключения


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

От себя хотим также предложить всем студентам скидку 50% на первый год использования наших услуг хостинга и облачных VPS, а также VPS с выделенными накопителями. Для этого Вам необходимо зарегистрироваться у нас, сделать заказ и, не оплачивая его, написать тикет в отдел продаж, предоставив фото себя со своим студенческим. Сотрудник отдела продаж скорректирует Вам стоимость заказа в соответствии с условиями акции.
Подробнее..

Финтех на карантине студенты и преподаватели Тинькофф Финтеха рассказывают о переходе в онлайн

16.07.2020 20:13:21 | Автор: admin
В Тинькофф есть собственные образовательные проекты, один из которых Тинькофф Финтех. У нас учатся аналитике, разработке и тестированию молодые специалисты из разных городов России, где есть Тинькофф Центры разработки.



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

Евгений, преподаватель Python


Я всегда читал лекции перед живыми людьми, а тут был черный экран



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

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

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

Евгений Булыгин, студент курса Бэкэнд-разработка на Python (Екатеринбург)


Я писал копию Инстаграма



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

На середине курса из-за самоизоляции мы перешли в Зум, слушали лекции онлайн, но расписание осталось прежним. Лично я не заметил большой разницы в подаче материала, качество обучения не снизилось.

Домашки и до карантина мы делали самостоятельно, пересылали преподавателям и получали отзывы. У меня уходило много времени на них: каждый день на выполнение домашнего задания тратил около шести часов. Например, было домашнее задание написать асинхронный чат, или написать сервис оценки фильмов типа Кинопоиска, или сервис по обработке картинок. Потом каждый писал курсовой проект: я делал копию Инстаграма, окончил курс на первом месте по баллам.

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

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

Маша, преподаватель курса QA Engineer


Во время лекций приходилось спрашивать ребят: Вы там живы?



Еще до карантина мы думали о том, чтобы снимать лекции на видео и потом выкладывать их для участников курса. Пришла самоизоляция, мы стали вести лекции в Зуме, а там записать видео лекции проще.

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

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

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

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

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

К сожалению, онлайн-формат не всегда дает представление об участнике как о человеке: насколько он деятельный, какой у него характер. Но мы, как преподаватели Финтеха, должны дать свои отзывы о лучших участниках для HR-отдела. И тут, конечно, качество наших отзывов пострадало. Ведь без личного взаимодействия мы не могли сказать, подходит ли этот человек команде по духу или нет.

Михаил Волков, студент курса QA Engineer


На одной из первых лекций преподаватель предложил протестировать стул



Я работаю, и учебу в Финтехе совмещал с полноценным рабочим днем. Чтобы приехать вовремя на лекцию, приходил на работу пораньше, а вечером пораньше уходил. В онлайн-формате я не тратил время на то, чтобы добраться до офиса.

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

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

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

Антон, преподаватель курса Системный и бизнес-анализ (Рязань)


В аудитории всегда видно, кого нужно разбудить, кто хочет спросить, но стесняется



Мне, как преподавателю, перестало хватать обратной связи от студентов.

Я аналитик, и по роду деятельности у меня много контактов. Мне привычно, когда все друг с другом общаются, активно слушают.

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

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

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

Артем, студент курса Системный и бизнес-анализ (Рязань)


На время лекции я обычно закрывался в отдельной комнате, чтобы максимально сконцентрироваться на материале



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

Офис Тинькофф в центре, я живу недалеко и тратил на дорогу до офиса 15 минут на машине. Да, когда мы перешли в онлайн, не нужно было тратить время на дорогу. Но для Рязани время в дороге не является таким критичным, как, например, в Москве. Хотя кто-то иногда после работы или учебы опаздывал, иногда мы ждали минут 1520 начала лекции. В онлайн-формате все начинали вовремя.

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

По рейтингу я закончил вторым на курсе. На домашние задания тратил немного времени час-полтора, так как я уже знаком со сферой бизнес-анализа.

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

Азамат, преподаватель курса QA Automation (Екатеринбург)


В онлайне не мучают вопросами и ты всегда можешь подглядеть в рядом лежащем айпаде



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

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

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

Хотя тут есть и плюс для преподавателя: не мучают вопросами и ты всегда можешь подглядеть в рядом лежащем айпаде. В офлайне ты должен быть готов на 100%, чтобы не забыть материал.
Важный момент: когда ты приходишь на лекцию в офис или другое специальное место, ты сконцентрирован, твое внимание активно. Когда ты слушаешь онлайн-лекцию, ты можешь это делать в нижнем белье, тебя могут отвлекать дети, кошки. Так что, думаю, концентрация внимания у студентов была ниже. Хотя мне как преподавателю это было в плюс.

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

Эвелина Яметова, студентка курса QA Automation (Екатеринбург)


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



Лично для меня переход в онлайн это здорово. Я сама по себе человек стеснительный, мне было некомфортно находиться на лекции в окружении новых для меня людей. Плюс экономия времени на дорогу: 40 минут только в одну сторону.

Еще на обычной лекции преподаватели рассказывали материал быстро, физически невозможно было успевать за ними записывать.

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

Сергей, преподаватель курса разработки на Golang


Ребята не жаловались и камеры включали



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

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

А вот рубежный (проверочный) контроль был более удачным. Мы сразу ввели правила игры: обозначили время, когда студент должен подключиться к звонку с преподавателем, включенная веб-камера стала обязательным условием для прохождения контроля. На удивление, ребята не жаловались и камеры включали.

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

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

Софья Михайлова, студентка курса разработки на Golang


Здорово, что преподаватели всегда отвечали на вопросы по лекции и домашнему заданию, могли ответить и в час ночи

Лично мне переход в онлайн сэкономил время в дороге от университета до офиса и от офиса до дома. Это где-то четыре часа.

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

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

Но в целом переход в онлайн никак не повлиял на качество знаний, которые ты получаешь на курсе. Я учусь на третьем курсе МАИ, на факультете Информационные технологии и прикладная информатика, и целенаправленно шла на Golang как на один из перспективных языков.

Боли и радости онлайна


И преподаватели, и студенты сошлись в одном: учиться в онлайне можно, но лучше встречаться вживую.

Плюсы онлайн-обучения:
  • экономия времени на дорогу;
  • комфортные условия дома;
  • есть записи лекций;
  • можно демонстрировать студентам сам процесс работы и инструменты.

Минусы онлайн-обучения:
  • дома комфортно, но постоянно отвлекаешься;
  • хуже обратная связь;
  • не найти новых друзей, не видна атмосфера в коллективе компании.
Подробнее..

Бесплатные образовательные курсы бэкенд-разработка

24.08.2020 16:22:46 | Автор: admin
image

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

Сегодня мы отобрали 19 бесплатных курсов из раздела Образование на Хабр Карьере. Они дадут вам базовые знания о языках и технологиях, которые используются в бэкенде, и помогут определиться, нужно оно вам или нет. При выборе мы смотрели на содержание, количество выпускников и репутацию школ.

Introduction to Java Programming: Starting to code in Java edX

Здесь вас познакомят с функциональной абстракцией, парадигмой объектно-ориентированного программирования (ООП) и АПИ. В программу заложено много интересных примеров, разбор кейсов и общение с наставниками.

Пройти курс


Java. Базовый курс Stepik

Курс для тех, кто начинает изучать Java, но уже знаком с такими понятиями, как переменная, цикл, подпрограмма и хоть немного разбирается в императивных языках программирования. В программе 23 урока, на которых вы узнаете о компиляции и запуске Java-программ, синтаксисе языка, системе типов и основах ООП. Для закрепления знаний заготовлены тесты и задачи.

Записаться


Java для начинающих Code Basics

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

Поступить


JavaRush JavaRush

1200 практических задач возрастающей сложности как раз тот минимум, выполнив который, вы получите опыт необходимый для трудоустройства. Для поддержания спортивного интереса программа курса разбита на 40 левелов: вы сможете перейти на следующий, только если решили большую часть задач текущего.

Прокачаться до 40 lvl


PHP для начинающих Code Basics

Самая простая и короткая часть в пути изучения языка программирования это изучение его синтаксиса. Этот курс посвящен азам разработки программ на PHP. Он поможет заложить хороший фундамент для написания осмысленных программ.

Научиться азам PHP


Web-программирование на PHP 5.2 ИНТУИТ

Компактный курс, который будет полезен для получения базовых представлений о разработке веб-приложений на языке PHP. Здесь вас познакомят с основными понятиями языка, структурным построением приложений и работой с файлами.

Записаться на курс


Python 3 Tutorial SoloLearn

Изучите Python самым увлекательным способом смотрите короткие уроки, соревнуйтесь и сотрудничайте с другими учениками, и проходите веселые викторины. За каждое достижение вы будете получать игровые очки, а в конце вас ждет трофейный сертификат.

Хочу скорее начать


Программирование на Python Stepik

28 уроков и 70+ проверочных заданий этого курса помогут вам освоить базовые понятия программирования на Питоне. Кстати, все решения проверяются автоматически и вы получаете мгновенный фидбек и рекомендации, что ценно.

Пройти курс


Погружение в Python Coursera

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

Погрузиться в Python


Python для начинающих Code Basics

Базовый курс об основах разработки на Питоне. Девять компактных модулей охватывают основные темы для изучения этого языка программирования, а практические упражнения по каждой из тем позволят закрепить полученные знания.

Записаться


Как стать Python-разработчиком Яндекс.Практикум

Даже на бесплатной вводной части этого курса вы сможете обучиться азам программирования на Питоне и оценить свои возможности и мотивацию. Вводная часть дает доступ к тренажеру, 20 часов лекций и один готовый проект. А дальше платно.

Пройти вводную часть


Racket для начинающих Code Basics

Racket относится к семейству лисп-языков, которые настолько не похожи на все остальное, что даже опытным программистам приходится изучать их с самых основ. Курс состоит из трех модулей с теорией и практическими заданиями по основам синтаксиса этого языка.

Изучить основы рэкета


SQL Fundamentals SoloLearn

Этот компактный курс будет полезен для получения базовых представлений о разработке веб-приложений на PHP. Здесь вас познакомят с основами языка, структурным построением приложений и работой с файлами.

Сыграть в SQL


Алгоритмы и структуры данных ИНТУИТ

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

Записаться на курс


C Programming: Language Foundations edX

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

Изучить основы Си


C Programming: Getting Started edX

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

Поступить на курс


Программирование на языке C++ Stepik

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

Узнать основы C++


Introduction to C++ edX

Цель этого курса познакомить вас с языком C++, который упрощает написание программ и делает этот процесс более приятным. На C++ создаются приложения, которые будут работать на самых разных платформах, таких какWindows, Linux, UNIX и Mac OS X, а также на устройствах IoT.

Записаться


Основы разработки на C++: белый пояс Coursera

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

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

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

07.09.2020 20:15:27 | Автор: admin
image

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

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

image

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

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

Как пройти конкурс в IT-университетах


Ещё одна из причин нехватки айтишников высокий входной порог для обучения IT-специальностям после школы.

В Университете Иннополис жёсткий отбор: бакалаврам требуются высокие баллы по ЕГЭ, надо хорошо сдать экзамены по информатике или физике, математике и русскому языку. Тому, кто долго занимался ИЗО и после школы решил пойти в айтишники, попасть к нам будет сложно. Скорее всего, такой человек просто не сдаст экзамены. Но если этот порог снизить и принимать больше студентов, они не справятся с программой.

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

В 2019 году нам подали 16 210 заявок на обучение. В итоге 253 человека стали бакалаврами и магистрантами, ещё 14 прошли в аспирантуру.

На корпоративном обучении у нас 181 студент и ещё 671 человек из государственного сектора. Это люди, которые повышают квалификацию или получают допобразование.

Кто может стать айтишником


До нашего университета я 16 лет проработал в IKEA, где одно время руководил отделом по управлению персоналом и корпоративной культуре, такой нехватки специалистов там не ощущалось. Кадровый голод, который я увидел в IT-сфере, был для меня в новинку.

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



В IT-сфере очень много специальностей. Есть очень сложные, как аналитика и архитектура, а есть и такие, где диплом о высшем образовании необязателен, например тестировщик. В таких случаях достаточно дополнительных курсов. В нашем вузе их много и для джуниоров, и для мидлов, и для сеньоров. Человек должен понимать: вряд ли через 3 месяца он разработает что-то сложное, если пришёл с нуля. Чтобы стать, например, хорошим java-специалистом, нужно сначала пройти обучение для начинающих, потом стать мидлом, пережить несколько стажировок и через 23 года практики можно будет добиться уровня сеньора.

Звучит сложно, но дополнительные курсы хороший способ получить базу и понять, подходит ли студенту сфера, которую он выбрал.

Почему Университет Иннополис обучает медиков и строителей


Специалисты из IT это открытые творческие люди. Они много общаются, профессионально развиваются, занимаются спортом.
Чем больше мы об этом говорим, ломая представления об айтишниках как о ботаниках, тем больше людей разного возраста и профессий задумываются о том, чтобы перейти в нашу сферу.

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

Благодаря этому медики и инженеры смогут применять новые цифровые инструменты в своей работе. Сейчас рынок не всегда готов пользоваться какой-то сложной программой или оборудованием.

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

Где брать преподавателей


Главный ресурс университета академическое сообщество. Наши профессора (среди них много иностранцев) знакомы с коллегами из других вузов отечественных и зарубежных. Иногда они даже ведут совместные проекты.

Когда мы ищем преподавателей по запросу компании, наш первый канал спросить у своих. Нужно провести такой-то курс, дать такую-то компетенцию. Вы знаете людей, которые могут это сделать?

image

Второй канал наши аспиранты, магистры. Эти ребята готовы и учиться, и работать в университете. Академическая среда это позволяет, при каждом факультете есть лаборатории: 15 научно-исследовательских и 8 центров разработки, а ещё на базе университета работает Центр компетенций Национальной технологической инициативы по направлению Технологии компонентов робототехники и мехатроники.

Периодически у нас проводят занятия звёзды рынка. Например, математик из Яндекса Андрей Райгородский, Евгений Касперский, стратегический директор Intel Энди Триб, президент Тинькофф-банка Оливер Хьюз, американский учёный Тони Вассерман, итальянский учёный Фабрицио Капобианко и др. Все они в разное время бывали в нашем университете.

Как сделать, чтобы выпускники были востребованы


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



Чтобы такого не происходило, мы общаемся с индустрией. Узнаём, какие навыки и умения нужны работодателям. Университет должен знать, как компании видят будущее индустрии, какие специальности будут востребованы в ближайшие годы. Это помогает корректировать программы и курсы, делать так, чтобы выпускник и его способности были применимы и полезны рынку.

Зачем компании выращивают сотрудников


Сейчас наш вуз изучает, сколько кадров и ресурсов ему нужно, чтобы обработать требуемый рынку объём людей.

Поэтому мы работаем по запросу: к нам обращается компания, мы оцениваем, что она хочет получить, и сообщаем сроки и количество человек, которых сможем подобрать или обучить.

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

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

Все мечтают о лояльном персонале. Когда работодатель вкладывается в людей, помогает им получать знания, повышать уровень, он инвестирует и в отношение к себе. Такой сотрудник лояльнее нанятого на рынке.
Подробнее..

Генератор жанровых постеров для фильмов и перенос стиля картинки проекты студентов курса Нейронные сети Техносфера

05.08.2020 16:23:28 | Автор: admin


Мы рассказали про выпускные проекты выпускников семестровых курсов по мобильной разработке Технопарка (МГТУ им. Баумана) (предыдущие публикации: Разработка приложений на iOS, Разработка приложений на Android). Сегодня делимся интересными проектами студентов второго семестра Техносферы совместного с МГУ образовательного проекта с годовой программой обучения в области анализа и работы с большими объемами данных. Студенты проходят курсы по машинному обучению, инфопоиску, нейронным сетям и другим дисциплинам. В обучении применён проектный метод, поэтому итоги семестра мы подводим на защитах студенческих проектов.

В образовательном процессе большую роль играют эксперименты. Студенческие проекты без них не обходятся: ребята пробуют разные подходы, методы, архитектуры, инструменты. Часто после эксперимента студенты отказываются от выбора технологии и алгоритма в пользу нового подхода. Это большая часть опыта и обучения. Ниже мы расскажем о таких этапах в разработке двух студенческих проектах.

  • Проект Movie posters GAN/embed.
  • Проект Cyrclegan on cartoon series.

CycleGAN on cartoon series


Авторы этого проекта решили использовать технику CycleGAN для перевода картинок из одного анимационного фильма в другой. GAN (Generative adversarial network) методика обучения моделей image-to-image. Обучаются две нейронные сети: дискриминатор и генератор, которые находятся в соперничающих отношениях. Генератор пытается увеличить ошибку классификации, дискриминатор уменьшить. А CycleGAN методика передачи обучения imag-to-image в режиме без учителя.

Допустим, есть два домена картинок A и В. Создаются два генератора и два дискриминатора: gen_A2B, gen_B2A, disc_A, disc_B. Нужно, чтобы по картинке из A генератор gen_A2B создавал эту же картинку, но так, чтобы она была в домене B. Для этого вводят cycle consistency loss:

l1loss(gen_b2a(gen_a2b(a)), a)

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

Архитектура решения:

Генератор:


Resnet-блоки позволяют запоминать изначальную картинку. Также использовались instance normalization вместо batch normalization, потому что последний добавляет шумы из других картинок.

Дискриминатор:


Готового набора изображений не нашлось, поэтому выбрали картинки из ключевых кадров анимешных полнометражек: для А использовали Унесенные призраками Хаяо Миядзаки, а для B Твоё имя Макото Синкая. Поскольку CycleGAN не очень подходят для кардинальных изменений (например, формы), авторы взяли оба домена из аниме.

В качестве функции потерь использовали сначала LSGAN, а потом WGAN GP, потому что LSGAN в процессе обучения создавал странные артефакты и терял цвета.

Для обучения использовали предобученную на horse2zebra модель (веса найдены лишь для генераторов). Она уже имеет понимание, что ей надо сохранять содержимое картинки, поэтому авторы в самом начале получили неплохой autoencoder, который оставалось только научить обманывать дискриминатор.

В самом начале обучения выставляли большое значение для cycle loss identity loss и gradient clipping, но когда прошло достаточно эпох, решили понемногу уменьшать эти значения, чтобы генератор стал чуть больше пытаться обманывать дискриминатор.

Также пытались в качестве дискриминатора использовать большие предобученные сети (VGG, RESNET, Inception), но они очень большие и обучение сильно замедлялось.

В результате работе удалось достичь того, что, стиль переносится близко к оригиналу, с сохранением общей цветовой гаммы (сверху оригиналы, снизу сгенерированные картинки):





Код проекта: https://github.com/IlyasKharunov/Cyclegan_project

Команда проекта: Ильяс Харунов, Олег Вербин.

Видео с защитой проекта.

Movie posters GAN/embed


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

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

С сайта IMDB автор взял 41 тыс. постеров для фильмов в двадцати жанрах за период 1970-2020. Позднее выяснилось, что для некоторых жанров изображений слишком мало, поэтому Дмитрий сбалансировал набор по жанрам, и в итоге осталось 32 тыс. постеров.

Затем для безжанрового генерирования картинок студент применил нейросеть с архитектурой DCGAN. Она работала с постерами размера 64x128.


Результаты получились криповатые:


Затем автор попробовал архитектуру CVAE+DCGAN:


А также VAE без GAN и GAN с классификатором. Пришел к заключению, что собранный набор постеров слишком сложен для этих методов. Тогда автор применил conditional GAN: это то же самое, что и DCGAN, только жанры теперь подавались и в генератор, и в дискриминатор. Латентный вектор z был взят длиной 100, жанры в hot-формате длиной 20, в результате получился вектор длиной 120. К ответу был добавлен жанр и выполнялся дополнительный прогон по одному линейному слою.

Удалось добиться такого результата:


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

Процесс обучения сети:


Команда проекта: Дмитрий Питеркин.

Видео с защитой проекта.



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

Перевод Data Science курсы для продолжающих обучение

12.10.2020 14:18:52 | Автор: admin


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



Бенджамин Оби Тайоизвестный физик и преподаватель Data Science,в одном из своих постов про массовые открытые онлайн-курсы (МООК) написал: Большинство массовых открытых онлайн-курсов носят характер вводных. Они хороши для тех, кто имеет солидный опыт в смежных областях физика, компьютерные науки, математика, инженерия, бухгалтерское дело,и пытается вникнуть в Data Science.

И он прав. Множество вводных курсов конкурируют между собой за тех, кто только начинает изучать Data Science. Это хорошо, когда вы ищете именно это. Но что, если вы уже достаточно продвинулись вперед? Какие у вас есть варианты. Существуют ли вообще МООК для продолжающих?

Первая причина: есть предположение о том, что каждый, кто проходит курс Data Science, не имеет абсолютно никакого предшествующего опыта или образования, и связанное с этим предположение: люди считают, что могут стать Data Scientist всего за 4 недели.

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

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

С этой мыслью я писал пост, который вы читаете. Посмотрим на несколько продвинутых курсов Data Science для тех, у кого есть четкое представление о фундаментальных навыках в Data Science. Что значит продвинутых? Договоримся, что это субъективно. Но я делаю всё возможное, чтобы подобрать релевантные курсы. Что значит фундаментальные навыки Data Science? Это тоже субъективное понятие и оно может меняться в зависимости от конкретного курса. Чтобы сузить широкий спектр предложений, я придумал критерии отбора:

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

Примечательно, что первый пункт отсеивает Udacity и смежные платные платформы. Второй пункт отсеивает подобные Udemy платформы, где создать курс может каждый. Третий пункт в теории разрешает цепочки, чтобы с течением времени выстраивать углубленное понимание.

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


Специализация Продвинутое машинное обучение от НИУ ВШЭ на Coursera по целому ряду тем машинного обучения.

Эта специализация введение в глубокое обучение, обучение с подкреплением, понимание естественного языка, компьютерное зрение и байесовские методы. Лучшие практики машинного обучения Kaggle и ученые ЦЕРНа поделятся своим опытом решения реальных проблем и помогут заполнить пробелы между теорией и практикой. По окончании семи курсов вы сможете применять современные методы машинного обучения на предприятии и понимать подводные камни реальных данных и настроек.

Курсы этой специализации включают:

  1. Введение в глубокое обучение.
  2. Как выиграть соревнование в науке о данных: учитесь у лучших на Kaggle.
  3. Байесовские методы машинного обучения.
  4. Обучение с подкреплением на практике.
  5. Глубокое обучение в области компьютерного зрения.
  6. Обработка естественного языка.
  7. Решение проблем Большого Адронного Коллайдера с помощью машинного обучения.



Специализация Вероятностное графическое моделирование это три курса от профессора Стенфорда Дафны Коллер на Coursera.

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

Специализация состоит из этих курсов:

  • Вероятностные графические модели. Представление
  • Вероятностные графические модели. Вывод
  • Вероятностные графические модели. Обучение



Программа MicroMasters в области искусственного интеллекта из Колумбийского университета и edX состоит из 4 курсов и дает глубокое погружение в искусственный интеллект.

Приобретите опыт в одной из самых увлекательных и быстрорастущих областей информатики с помощью инновационной онлайн-программы, которая охватывает захватывающие темы в области искусственного интеллекта и его приложений. Эта программа от Колумбийского университета даст строгую, продвинутую, профессиональную, аспирантскую основу в области искусственного интеллекта. Программа представляет собой 25% курсовой работы по направлению к магистерской степени в области компьютерных наук в Колумбийском университете.

Вот 4 курса, которые составляют программу:

  1. Искусственный интеллект
  2. Машинное обучение
  3. Робототехника
  4. Анимация и движение CGI



Специализация по обучению с подкреплением из Университета Альберты на Coursera представляет собой сборник из 4 курсов, охватывающих использование подкрепляющего обучения для решения реальных проблем.

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

Курсы включают:

  1. Основы обучения с подкреплением
  2. Основанные на выборках методы обучения
  3. Прогнозирование и управление с помощью приближения функций
  4. Завершенная система обучения с подкреплением (финальный проект)

Это всё на сегодня. Надеемся, что подборка будет вам полезной.

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

image




Читать еще


Подробнее..

Лаборатория Тинькофф как студенты разрабатывают визуального робота

22.09.2020 20:11:13 | Автор: admin

image


В Тинькофф есть образовательный проект Лаборатория Финансовые технологии. Мы отбираем студентов и магистров московских технических вузов, которые хотят работать с ИТ-проектами банка. Оформляем их на работу в штат на 20, 30 или 40 часов в неделю, даем задачи, ментора и помогаем расти профессионально. Мы работаем в партнерстве с МФТИ: преподаватели и старшекурсники вуза выступают менторами для студентов.


Лаборант может выбрать, в какой из пяти команд работать:


  • Computer Vision;
  • Speech-to-Tech;
  • Аналитика;
  • Обработка естественного языка;
  • Рекомендательные системы.

У каждой команды свои задачи и специфика. Но принцип общий: учим решать сложные академические задачи на реальных кейсах.


Рассказываем о внутренней кухне Лаборатории на примере работы команды Computer Vision весной-летом 2020 года.


Проект команды Computer Vision: Говорящие головы


Куратор проекта: Константин Осминин, Тинькофф
Ментор: Аркадий Ильин, Лаборатория гибридных интеллектуальных систем МФТИ
Лаборанты: Кирилл Рыжиков (2 курс) и Дмитрий Гадецкий (1 курс магистратуры)


В Лаборатории мы решаем наукоемкие задачи, которые в перспективе можно применить на практике в работе банка. В команде Computer Vision в этом году работали над задачей audio-to-video. Это генерация реалистичного видео с человеком на основе его речи на русском языке.
Изначально тут был не только бизнес, но в значительной степени исследовательский интерес. Если кратко: нужно было обучить компьютерную модель генерировать видеоизображение на основе только фото человека и аудиодорожки. То есть мы даем модели аудио и картинку, а на выходе получаем видео с говорящим человеком.


Такая технология впервые появилась в Китае, а в России представлена сервисом по генерации виртуальных ведущих в Мейл.ру. У Сбербанка робот-ведущий Елена читает 30-секундные новости.


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


Константин Осминин, куратор команды Computer Vision в Тинькофф
Область виртуальных аватаров сейчас очень востребована в индустрии. Лаборатория это больше образовательный проект, для нас важно поработать с самой технологией, проверить уже существующие решения и придумать что-то свое.
Сначала мы работали над исследовательской частью, а потом поняли, как можно применить технологию в бизнесе. Теперь мы разрабатываем свой прототип ориентированного на бизнес сервиса, визуально общающегося с пользователем.

Задача: разработать говорящую голову


У нас было два этапа работы. Первый провести исследование в области Neural Voice Puppetry, выяснить, что уже сделано другими исследователями и разработчиками. Потом реализация.
Работа над ней делилась на два больших блока:


  • создание правдоподобной мимики лица на основе аудио (сгенерировать движение глаз, губ, бровей);
  • рендеринг видео.

Первый челлендж: исследовать чужие наработки


Сначала нам нужно было глубоко разобраться в области. Некоторые компании уже работали над этой задачей, например Samsung AI Center, Сбербанк. Но код у них закрытый и получить доступ к нему нельзя. Поэтому мы работали с открытыми источниками, они все в основном на английском. Больше всего информации нашли на агрегаторе Arxiv.


image
Пример статьи c arxiv.org


Это не научный журнал, а агрегатор статей в открытом доступе. Поэтому каждую статью и все, что там написано, нужно проверять. То есть посмотреть, насколько рабочий код приложен в статье.
Обычно код к статьям выкладывают на Гитхабе. Если авторы не выложили код, команда искала имплементации на том же Гитхабе, но уже от простых пользователей-энтузиастов.


image
Пример неофициальной имплементации архитектуры генератора говорящих голов из статьи Few-Shot Adversarial Learning of Realistic Neural Talking Head Models (Egor Zakharov et al.)


Дмитрий Гадецкий, лаборант Тинькофф, студент 1 курса магистратуры
В первый месяц мы почти все время читали статьи на Arxiv и проверяли разные подходы. По опыту скажу: чтобы разобраться в вопросе, нужно вдумчиво изучить около десяти статей и проверить их код на работоспособность. Только когда понимаешь архитектуру кода, появляется возможность применить описанные принципы к конкретным задачам.
У нас был случай, когда мы проверяли подход к генерации из статьи китайских коллег. Мы не могли запустить код несколько дней. Пришлось писать авторам статьи с просьбой о помощи. В итоге они ответили, дописали код, чтобы все заработало.

Второй челлендж: датасет, лэндмарки и моргание


Дальше мы перешли к поиску собственных решений, как сгенерировать реалистичное видео говорящего человека только по фото и аудио.


Теоретически можно было использовать наработки зарубежных разработчиков и код их нейронной сети, как, например, на Гитхабе.


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


Встал вопрос, на каких данных обучать свой комплекс нейросетей. Готовых данных у нас не было. В сети датасетов с видео на английском языке тысячи часов (например, voxceleb, voxceleb2), а на русском их просто нет.


Нужно было собрать свой датасет:


  • видео на русском языке;
  • где четко видно лицо;
  • без шумов.

Изначально для парсинга мы выбрали лекции на Курсере. У них есть API, которая позволяет скачивать видео. Мы скачали видео с ресурса и приступили к его обработке.


Для этого написали программный модуль: он нарезал видео на отдельные кусочки, проверял, что на этом кусочке речь одного человека. Еще он искал в кадре того человека, кто говорил. Вырезанные куски с головой говорящего человека в кадре складывали в датасет.


С Курсеры мы собрали 20 часов видео. Но качество видео этого датасета было не очень. Лицо получалось в плохом разрешении. Поэтому нам пришлось собирать второй датасет уже с Ютуба. Оттуда скачали видео, которые больше соответствовали нашим требованиям: лицо говорящего человека занимало не меньше 40% экрана, смотрело в камеру. Этот датасет был в 60 часов.


image
Параметры датасета


На собранной базе видео мы запустили работу модели по разметке лиц. Мы прогнали одну модель (FaceAlign), которая искала на лице определенные ключевые точки лэндмарки. Всего их 68.


image
Сеть извлекает на каждом кадре видео эти точки и переводит их вот в такое представление:


image


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


На этих данных о ключевых точках обучался пререндер, построенный и обученный нами с оглядкой на архитектуру, предложенную Захаровым (a.k.a. Samsung)). Ему подавалась входная аудиодорожка, а он должен был сгенерировать видео. Сначала модуль генерировал абсолютное положение точек, но модель на таком подходе генерировала неправдоподобное изображение.


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


Кирилл Рыжиков, лаборант
Чтобы наша сеть генерировала правдоподобное изображение, мы искали другой подход. Попробовали генерировать не абсолютное положение ключевых точек, а отклонение от их положения на нейтральном лице, когда человек смотрит на вас прямо с закрытым ртом и спокойными бровями. И эврика! сеть сгенерировала правдоподобную мимику. Мы поняли, что идем в правильном направлении, и начали работать именно с этим подходом.
Отдельно мы решали задачу генерации моргания, чтобы лицо на видео выглядело реалистично. Без моргания говорящее лицо смотрится жутко. Выяснилось, что моргание не синхронизировано с речью. Поэтому наша модель его просто сэмплировала.

Третий челлендж: пререндеринг и рендеринг


Когда мы обучили сеть генерить правдоподобную мимику, пришла очередь работать над пререндером и рендером, то есть переводом данных в видео. Лаборанты использовали технологии First Order Modu и Samsung. После двух-трех этапов рендера получилось сгенерировать более проработанную мимику, более качественное изображение и приятную текстуру лица.


В качестве пострендера использовали LipGAN, чтобы уточнить движение губ.



Где готовый продукт


Ребята показали результат в июле этого года. На общей презентации было 60 сотрудников Тинькофф, что необычно для Лаборатории. Как правило, проекты защищаются перед меньшей аудиторией.


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


Готовый результат ждем к концу этого года. Скорее всего, это будет 3D-модель, как тут:



Встречались вживую только один раз


Лаборанты с ментором и куратором встречались вживую только один раз, на собеседовании. Остальное время общались в Телеграме и Зуме. Это принцип Лаборатории: удаленная работа в удобное участникам время.


Аркадий Ильин, ментор
Каждый работает в комфортное ему время, в комфортной для себя обстановке. Например, вчера Кирилл прислал мне ответ в час ночи и, пока он спал до обеда, я его прочитал. Думаю, такой подход только повышает эффективность работы.

Три раза в неделю рабочие созвоны, где обсуждают текущие задачи, гипотезы, методы решений.


Два раза в месяц отчетные созвоны с куратором Тинькофф, на которых лаборанты рассказывают о проделанной работе.


image
Обычный рабочий созвон с обсуждением найденной архитектуры генератора мимики


Лаборанты готовые R&D-специалисты


Так как работа в Лаборатории идет на стыке науки и практики, ее результаты публикуют и в академических кругах. Например, первые результаты работы в проекте Говорящие головы ментор и студенты готовят для доклада на 63-ю научную конференцию в МФТИ в ноябре этого года.


Аркадий Ильин, ментор
То, что делаем мы, мало кто делает в бизнес-сообществе. Поэтому хотим донести результаты и до академической среды.

До 27 сентября открыт прием заявок в лабораторию, подробнее об открытых проектах и сроках

Подробнее..

Бесплатные образовательные курсы тестирование

26.06.2020 12:10:59 | Автор: admin
image

Ошибки и баги могут возникнуть в любых программах, поэтому тестировщиков нанимают многие крупные компании, которые разрабатывают программное обеспечение. А еще небольшие фирмы, которые предоставляют услуги тестирования на аутсорс. Сегодня мы публикуем подборку из 14 бесплатных курсов по тестированию из нашего раздела Образование. Да, они, скорее, помогут вам получить базовые знания или освежить то, что вы уже и так знали, чем прокачаться до уровня синьора или лида. Но это не умаляет их полезности! Если вы видели что-то интересное, чего нет в этом выпуске делитесь ссылками в комментариях.

QA Start Академия IT

Семь уроков этого курса познакомят вас с методологиями разработки и их влиянием на качество, с фреймворками гибкой разработки, видами, техниками и уровнями тестирования, с тестовой документацией, а также с работой с дефектами ПО.

Пройти курс



Интенсив по тестированию ПО GeekBrains

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

Поступить



Видеокурс по тестированию ПО Академия IT

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

Пройти курс



Верификация программного обеспечения ИНТУИТ

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

Пройти обучение



Профессия Инженер по тестированию Яндекс.Практикум

На этом курсе вы освоите тест-дизайн и овладеете инструментами Postman, Charles, Яндекс.Трекер, а также познакомитесь с Javascript и Puppeteer. Обратите внимание, Яндекс.Практикум предлагает бесплатно пройти только вводную часть курса, состоящую из 10 часов теории и 84 заданий. Это поможет определиться, хотите ли вы двигаться дальше в этом направлении.

Пройти вводную часть



Автоматизация тестирования с помощью Selenium и Python Stepik

Это базовый курс для начинающих тестировщиков, на котором вас научат писать автоматизированные UI-тесты на Python с помощью библиотеки Selenium. А еще в программе популярные фреймворки и лучшие практики написания автотестов.

Пройти курс



Software Debugging Udacity

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

Поступить



Основы тестирования Академия IT

Еще один базовый курс от Академии, на котором вам расскажут о QA, как таковом, и расскажут о тестовых артефактах, жизненном цикле тестирования, типах приложений, клиент-серверной архитектуре и других полезных вещах.

Пройти обучение



Software Testing Udacity

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

Записаться



Основы тестирования программного обеспечения ИНТУИТ

За 14 с небольшим часов этого курса вы не только получите хорошую теоретическую базу знаний о тестировании ПО, но и потренируетесь в нем, выполняя практические задания. В конце курса предусмотрен экзамен по пройденному материалу, так что готовьте зачетки.

Поступить на курс



Software Testing QA Академия IT

Курс, на котором вас познакомят не столько с QA, сколько с тем, как начать свой путь в этой специальности. Уроки посвящены прохождению собеседований, лайфхакам и советам для новичков, а также разбору структуры QA команд в IT-компаниях.

Пройти обучение



Курсы тестировщиков онлайн Академия IT

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

Записаться



Тестирование ПО: базовый уровень Stepik

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

Пройти обучение



Unit-тестирование С# Академия IT

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

Записаться на курс

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

Из студентов в преподаватели интервью с выпускниками магистерской программы JetBrains ИТМО. Часть первая

23.11.2020 18:14:08 | Автор: admin

Преподавательский состав магистерской программы JetBrains и ИТМО Разработка программного обеспечения на четверть (!) состоит из выпускников этой же программы. Пожалуй, это хороший повод для гордости. Мы решили сделать большое интервью с ребятами. Возможно, их истории помогут кому-то решиться начать преподавательскую карьеру, а кому-то поступить к нам на программу.

В первой части наши выпускники и преподаватели Владислав Танков, Дмитрий Новожилов, Дмитрий Халанский, Алексей Зубаков, Артем Хорошев, Александр Садовников, Владислав Кораблинов и Роман Голышев рассказывают о выборе магистратуры, впечатлениях от обучения и отличиях от других программ.

Почему вы поступили на эту программу? Оправдались ли ожидания?

Влад Т.: Я поступал на программу, ориентируясь на качество обучения в Computer Science центре. Я знал некоторых преподавателей и представлял, что будет, безусловно, сложно, но интересно. Относительно ожиданий думаю, оправдались. Я узнал много нового, попробовал заняться неизвестными ранее вещами, а продукт, который мы сделали на хакатоне в магистратуре, в итоге стал моей основной работой. Тогда мы за два дня написали штуку, вокруг которой в итоге выросла команда из восьми человек, а продуктом воспользовались несколько миллионов человек.

Дима Х.: Во время учебы в бакалавриате я случайно повстречался с преподававшим у параллельных групп бывшим студентом этой магистратуры Игорем Жирковым. Он впечатлил меня казавшимся тогда недоступным уровнем всестороннего понимания программирования. Особенно меня поразило, как он оперировал математическими инструментами. А я, надо признаться, в то время был убежден, что математика это про решение уравнений и неадекватных головоломок в духе правда ли, что 10 в степени 1999, если от него отнять 1999, делится на 9 и совсем меня не касается.

Это меня так впечатлило, что я решил бросить все силы на обретение этой мощи. Самостоятельное чтение книжек давалось с трудом, и я решил, что надо получить полноценное образование, где меня бы научили математически мыслить, желательно с привязкой к программированию. Я спросил у Игоря, где можно найти что-то подобное, и был готов ехать куда угодно. Каково же было мое удивление, когда Игорь сказал, что никуда ехать не надо: в СПбАУ есть такая учебная программа. (Ранее программа реализовывалась в СПбАУ. Прим. ред.)

Я увлекаюсь довольно нишевыми вещами, и в этой магистратуре мне удалось найти для себя много познавательного. Здесь каждый найдет что-то по душе. Любите машинное обучение? Пожалуйста! Хотите просто зарабатывать программированием на Java? Для этого здесь тоже все есть, и в довольно интенсивной форме. Компьютерное зрение? Алгоритмы на графах? Интерфейсы для Android-приложений? Сколько хотите. Почти любые связанные с программированием интересы тут поощряются и, скорее всего, вы найдете себе ментора. А если ваши интересы настолько особенные, что связанных с ними специалистов тут нет есть смысл подумать, а не стать ли первым соответствующим экспертом-преподавателем в этой магистратуре. Некоторые предметы начинали преподаваться именно так.

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

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

Артем: В бакалавриате я учился на физическом факультете СПбГУ, но со 2-3 курса увлекся программированием. Ближе к выпуску я успел освоить основы разработки на C++ и поработать в одной компании, но у меня было чувство, что я многого не знаю в отличие от ребят, которые учились на программистских специальностях. Пришло время задуматься о магистратуре. Внимательно изучив сайт программы и поинтересовавшись у знакомых, я понял, что это именно то место, где могут дать всю необходимую базу в короткий срок. Я пришел сюда за знаниями и опытом и могу с уверенностью сказать, что получил и то и другое в полном объеме.

Влад К.: Я заканчивал 4-й курс в своем любимом УдГУ и раздумывал, чем заниматься дальше. Друг собрался поступать в физическую магистратуру СПбАУ и позвал меня туда же на информатику. Я справедливо возразил, что это невозможно, потому что туда поступают только минимум желтенькие на Codeforces. Он не менее справедливо возразил, что ну и пофиг. Я подумал месяцок и решил отправить заявку. Съездил на собеседование, и меня взяли.

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

Какие впечатления у вас остались от обучения на программе? Стоит ли что-то в ней изменить?

Влад Т.: С одной стороны, было довольно сложно, особенно первый и второй семестр. С другой стороны крайне увлекательно. Я нашел новых друзей настоящих единомышленников, увлеченных своим делом, познакомился с новыми областями и просто попробовал что-то новое.

Артем: Только положительные впечатления, особенно запомнился первый семестр. Дело ведь даже не в том, что у студентов данной программы огромное количество заданий и практики (хотя это немаловажная черта программы), а в том, что они получают постоянный фидбек от преподавателей, могут почти в любой момент получить ответ на любой вопрос. В свое время для меня было шоком, что можно просто взять и написать вопрос по теме (и не только) в чат курса с преподавателем и максимально быстро получить ответ.

Саша: Впечатлений много! Наверное, большинство из них связаны с первым курсом. Было очень сложно. Пятичасовой сон, отмененные поездки за границу с друзьями, отсутствие свободного времени типичные атрибуты жизни студента первого семестра нашей магистратуры! Сейчас, конечно, понимаешь, что это было не зря. Но повторять, если честно, не очень хочется. А вот что хотелось бы повторить это второй семестр. Там ты уже научился балансировать между учебой и личной жизнью. И прямо ощущаешь себя сверхразумом, который успевает получать от жизни все и знания, и эмоции.

Иногда казалось, что учеба настолько сложная, потому что есть какие-то организационные затыки: то преподаватель не выложил/не проверил домашку вовремя, то сообщил о контрольной накануне ее проведения. Такие моменты, естественно, хотелось исправить! Как мне кажется, это одна из главных причин, почему так много ребят с моего курса в итоге вызвались стать преподавателями в нашей магистратуре.

Влад К.: За два года впечатления самые разнообразные, но скажу, что такая же крутая учеба в моей жизни была до этого только в ЛМШ. Здесь невероятная атмосфера и люди, после обычного университета ты просто испытываешь эйфорию: а что, так можно было?!.. Но конечно, ничто не бывает идеальным, и изменить можно много чего как глобально, так и по каждому курсу в отдельности. Но это больше вопрос для обсуждения с кураторами, мне кажется.

Рома: Сложность прохождения программы целиком зависит от подготовленности студента. У меня были проблемы с теорией (алгоритмы, дискретка), но при этом сравнительно большой практический опыт программирования, что сильно упрощало прохождение практических курсов (Bash, Python, C++, Java). Думаю, тем, у кого не было предварительной подготовки ни в теории, ни в практике, программа дается значительно труднее. Кажется, это важно учитывать при составлении заданий, чтобы не создавать порочный круг я не могу даже понять текущее задание (потому что этот материал совершенно новый для меня) <-> я пропущу его и наверстаю потом.

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

Что, по-вашему, отличает эту программу от других магистратур? Как вы пытаетесь реализовать эти отличия в преподавании?

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

Дима Н.: Я бы отметил углубленное изучение сложных тем, отсутствие воды в материале. В этой магистратуре действительно учат понимать, что за код ты пишешь, как он работает и зачем это нужно. Я и сам стараюсь следовать этим принципам и, например, при рассказе про какую-нибудь возможность языка не просто показываю, как ею пользоваться, но и объясняю, как она работает под капотом, какие ограничения и возможности имеет. Благодаря этому студенты гораздо лучше понимают суть программ и языковых конструкций, а не просто относятся к ним, как к какой-то магии.

Леша: Я думаю, основное отличие в соучастии и компетентности. У нас есть специальные люди кураторы, которые сопровождают студентов в процессе обучения: помогают решать проблемы, готовят к защите диплома, по многу раз выслушивая докладчиков, регулярно встречаются со студентами (сейчас через Zoom), чтобы собрать обратную связь, и делают еще много всего, что сильно упрощает жизнь студентам и преподавателям все могут сосредоточиться на процессе обучения и не думать о лишнем.

Саша: Нашу программу отличает системность. Ты знаешь, что каждую неделю почти по каждому предмету у тебя будет домашка. Ее надо сделать вовремя, чтобы преподаватель проверил все к следующей паре. Не сделал домашку вовремя недополучил баллы и знания. И так домашка за домашкой! Такой подход хорош тем, что знания с лекций подкрепляются достаточным количеством практического материала и, соответственно, лучше усваиваются. По себе могу сказать: если не потрогать материал с лекции руками, в голове он не отложится.

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

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

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

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

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

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

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

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

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru