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

Jetbrains research

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

01.03.2021 18:19:29 | Автор: admin
Продолжаем знакомить вас с выпускниками магистратуры JetBrains и ИТМО Разработка программного обеспечения, которые по завершении обучения пополнили преподавательский состав программы. Во второй части интервью ребята рассказывают подробнее о своих задачах, подходах к преподаванию и дают советы абитуриентам. Первая часть интервью.



Есть ли что-нибудь, что вас раздражает в работе преподавателя?

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

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

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

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

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

Рома: Пожалуй, отчетность была самым раздражающим фактором. Заполнение табличек редко приносит радость. Еще мне тяжело давалось составление задач, это было для меня своеобразным творческим стрессом.

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

Не нравятся студенты, которые не стараются (по моим субъективным ощущениям). Это не вызывает раздражения, скорее просто отбивает охоту с ними взаимодействовать. Не стараться значит не проявлять активность на занятиях, не сдавать задачи или сдавать в последний момент, делать абы как, не исправлять замечаний.

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

А что радует и мотивирует больше всего?

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

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

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

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

Расскажите, как именно вы участвуете в преподавании?

Влад Т.: Я проверяю работы на нескольких практических курсах и веду практику на курсе Software Engineering. Раньше я участвовал в собеседованиях приемной комиссии и в оценке научно-исследовательских работ.

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

Дима Н.: Веду семинары и проверяю домашние задания в курсе по программированию на Java и других JVM-языках.

Леша: Основная моя деятельность в магистратуре лекции и практики по Python, практики по Java и домашние задания по Software Engineering. Еще я периодически читаю аналогичные курсы, но на других, обычно непрофильных программах.

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

Саша: Проверяю у ребят домашние задания по Python. Но если мне наконец предложат прочитать курс лекций по Haskell, я с радостью переключусь на эту деятельность.

Влад К.: Я принимаю участие в проведении двух курсов Алгоритмы и структуры данных и Дискретная математика. И там и там веду практические занятия и проверяю домашние задания. Дополнительно я отвечаю за информационное взаимодействие со студентами и стараюсь отвечать на все возникающие вопросы.

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

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

Сколько времени в неделю у тебя уходит на преподавание?

Влад Т.: Сейчас где-то 5 часов. Вероятно, будет больше.

Дима Н.: Полтора часа непосредственно на пару, часов пять-восемь на проверки, еще пара часов на подготовку к занятиям.

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

Саша: На проверку домашек у половины группы уходит примерно один рабочий день.

Осенний семестр в магистратуре проходил полностью онлайн. Как вы относитесь к этому формату?

Влад Т.: Вполне хорошо. На мой взгляд, это очень подходящий формат для IT-программ. Возможно, даже более подходящий, чем очное обучение.

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

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

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

Что бы вы посоветовали ребятам, которые планируют поступать на программу?

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

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

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

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

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

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

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

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

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

Ну и дерзкий совет: не планируйте поступать просто берите и поступайте!
Подробнее..

Научно-исследовательские инициативы JetBrains

03.03.2021 14:04:54 | Автор: admin
Develop with pleasure, The drive to develop об этом вы наверняка от нас слышали. Но наши интересы далеко не ограничиваются разработкой и созданием мощных инструментов для повышения продуктивности. Мы верим, что можем многое изменить и сделать мир лучше. Один из верных способов проведение исследований в области передовых технологий и образования. Совместно с ведущими научными учреждениями мира мы занимается прикладными исследованиями, способными влиять на жизни людей и двигать нас всех вперед.

Наши научные исследования объединены в рамках направления JetBrains Research.

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

Наука сегодня для технологий будущего



JetBrains Research объединяет более 150 исследователей, участвующих в проектах более 19 лабораторий и групп. Лаборатории и группы ведут работу в самых разных направлениях от физики элементарных частиц до разработки ПО.


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



Исследовательские группы



BioLabs


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


Задача BioLabs раскрыть механизмы эпигенетической регуляции у людей и животных и понять, какое значение эти механизмы играют в процессах дифференцировки и старения клеток. Самым крупным является проект старения, реализуемый BioLabs совместно с Университетом Вашингтона в Сент-Луисе. Другие исследовательские проекты посвящены различным темам, включая новые алгоритмы анализа данных, эффективные инструменты обработки данных для секвенирования нового поколения (Next Generation Sequencing), масштабируемые конвейеры данных, подходы к визуализации и мета-анализу существующих баз данных с информацией о механизмах эпигенетической регуляции. BioLabs также отвечает за PubTrends новый сервис для анализа научных публикаций, позволяющий быстрее анализировать тренды и находить значимые работы. Такой сервис необходим, поскольку число работ, публикуемых каждый год, неуклонно растет, и уследить за всеми публикациями по выбранной теме практически невозможно.


Вернуться к списку исследовательских групп


Группа биоинформатики


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

Группа биоинформатики занимается разработкой эффективных вычислительных методов для решения важных проблем в области биологии и медицины. Группа базируется на кафедре компьютерных технологий Университета ИТМО. Группа активно взаимодействует с лабораторией Максима Артемова (Университет Вашингтона в Сент-Луисе). Проекты лаборатории охватывают широкий спектр тем от анализа данных метагеномного секвенирования до анализа экспрессии генов и метаболомики. Фундаментальные знания в области алгоритмов и компьютерных наук позволяют группе заниматься решением задач биологии, сводя их к известным вычислительным задачам и создавая инструменты визуализации и анализа данных для биологов.


Вернуться к списку исследовательских групп


Лаборатория нейробиологии и физиологии развития


Нейробиология и физиология развития прошли долгий путь и накопили фундаментальную базу исследований. И тем не менее многое в этой науке по-прежнему остается неизведанным. А ведь эти науки таят в себе огромный потенциал к пониманию человеческого мозга.
Задача лаборатории нейробиологии и физиологии развития разработать вычислительный фреймворк для создания динамических пространственных моделей структуры нервных тканей и динамики базовых стимулов. Проект Biological Cellular Neural Network Modeling (BCNNM) использует последовательности биохимических реакций для запуска сложных моделей нейронных сетей при формировании исходных стволовых клеток. Фреймворк можно использовать для in silico репликации экспериментов, проведенных in vitro, чтобы получать измерения с ключевых компонентов, а также выполнять предварительную вычислительную проверку новых гипотез.


Вернуться к списку исследовательских групп



Лаборатория прикладного машинного обучения и глубокого обучения
и
Лаборатория агентных систем и обучения с подкреплением


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


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


Вернуться к списку исследовательских групп


Исследовательская группа Paper-Analyzer


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


Задача исследовательской группы Paper-Analyzer упростить извлечение знаний из научных работ, посвященных биомедицине, используя модели глубокого обучения для обработки естественных языков. Основой Paper-Analyzer служит языковая модель на основе архитектуры Transformer, оптимизированная под работу с научными статьями. Задача языковой модели на основе имеющегося контекста предсказывать следующее слово. Используя языковую модель, можно строить другие модели и обучать их решению таких задач, как, например, распознавание именованных сущностей, извлечение отношений, поиск ответов на вопросы. Группа также проводит эксперименты с генеративными моделями для обобщения и перефразирования предложений. Общая цель всех этих разработок возможность автоматического извлечения знаний из научных публикаций.


Вернуться к списку исследовательских групп


Лаборатория криптографии


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


Лаборатория криптографии занимается исследованиями современных задач в области криптографии и информационной безопасности. Она сотрудничает с COSIC исследовательской группой компьютерной безопасности и промышленной криптографии в Левене (Бельгия), Selmer Center в Университете Бергена (Норвегия) и INRIA (Франция). Исследования ведутся по различным направлениям: криптографические логические функции, симметричные шифры, легковесная криптография, технология блокчейна, квантовая криптография и информационная безопасность. Помимо публикации монографий и статей в ведущих журналах о криптографии, сотрудники лаборатории преподают криптографию в Новосибирском государственном университете и организуют NSUCRYPTO Международную студенческую олимпиаду по криптографии.


Вернуться к списку исследовательских групп


Группа HoTT и зависимых типов


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


Исследовательская группа занимается созданием Arend зависимо-типизированного языка и инструмента доказательства теорем, основанного на гомотопической теории типов. HTT является более продвинутым фреймворком, чем те, на которых основаны инструменты вроде Agda и Coq. Конечная цель создать онлайн-помощник для доказательства теорем, основанный на современной теории типов, который бы позволил формализовать определенные разделы математики.


Вернуться к списку исследовательских групп


Лаборатория методов ядерно-физических экспериментов


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


Лаборатория методов ядерно-физических экспериментов базируется в МФТИ. Основной интерес лаборатории методологии и ПО для решения задач в области физики элементарных частиц. На данный момент команда программистов лаборатории занимается разработкой нового поколения инструментов для получения данных (медленное управление, обработка сигналов) и анализа данных. Исследования лаборатории охватывают три сферы: физика элементарных частиц без ускорителя (эксперименты GERDA, Троицк ню-масс, KATRIN и IAXO), численное моделирование в физике элементарных частиц (эксперименты с ускорителем и без, атмосферное электричество, физика рентгеновского излучения) и разработка программного обеспечения для экспериментальной физики (системы получения и анализа данных, проекты по разработке инфраструктур, научные библиотеки для языка Kotlin). Огромное внимание уделяется и обучению: лаборатория старается дать молодым студентам возможность получить реальный опыт в физике и разработке.


Лаборатория методов ядерно-физических экспериментов


Вернуться к списку исследовательских групп


Лаборатория исследований процессов обучения


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


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


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

Вернуться к списку исследовательских групп


Лаборатория алгоритмов мобильных роботов


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


Лаборатория алгоритмов мобильных роботов объединяет исследования в области разработки эффективных алгоритмов для мобильных роботов. В лаборатории имеется единственный в России экземпляр Duckietown платформы и среды, позволяющих разрабатывать алгоритмы для мобильных роботов. В центре внимания лаборатории задача одновременной локализации и построения карты (SLAM). SLAM подразумевает составление и последующее поддержание карты неизвестной среды; при этом благодаря анализу данных с различных датчиков можно отслеживать местонахождение агента в среде. Сложность задачи SLAM связана с шумами, свойственными физическим датчикам, а также с необходимостью следить за изменениями в динамической среде. Кроме того, многие алгоритмы SLAM рассчитаны на недорогое оборудование, которое задает строгие требования к производительности. В 2019 году лаборатория роботов участвовала в третьих AI Driving Olympics соревнованиях роботов, управляющих беспилотным транспортом. Эти престижные соревнования считаются местом силы для развития знаний в сфере беспилотных автомобилей. Наша лаборатория заняла первое место во всех трех состязаниях. Примечательно, что это был первый прецедент победы алгоритма глубокого обучения на этих соревнованиях.


Исследователи лаборатории преподают множество курсов по дисциплинам STEM в университетах. Также они предлагают курсы по мобильной разработке для школьников и принимают студентов из MIT, приезжающих по программе MISTI.


Лаборатория алгоритмов мобильных роботов


Вернуться к списку исследовательских групп


Проблемы оптимизации в программной инженерии


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


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


Вернуться к списку исследовательских групп


Группа параметризованных алгоритмов


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


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


Вернуться к списку исследовательских групп


Лаборатория параллельных вычислений


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


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


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


Вернуться к списку исследовательских групп


Лаборатория киберфизических систем


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


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


Вернуться к списку исследовательских групп


Методы машинного обучения в области программной инженерии


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


Группа методов машинного обучения в области программной инженерии занимается разработкой и тестированием методов улучшения инструментов и процессов разработки путем применения анализа данных (включая машинное обучение) к данным из программных репозиториев. Совместно с командами нескольких продуктов JetBrains группа занимается интеграцией в продукты современных методов на основе данных. В данный момент группа работает над десятком исследовательских проектов на различные темы от поддержки библиотек сбора данных до генерации кода из описаний на естественном языке. Недавние результаты работы группы включают новый подход к рекомендации рефакторингов Move method, исследование нарушений лицензий в заимствованном коде на GitHub, современный подход к присуждению авторства исходного кода и метод построения векторных представлений стиля кода без явных признаков.


Вернуться к списку исследовательских групп


Лаборатория языковых инструментов


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


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


Вернуться к списку исследовательских групп


Лаборатория верификации и анализа программ (VorPAL)


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


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


Лаборатория верификации и анализа программ (VorPAL)


Вернуться к списку исследовательских групп


Лаборатория инструментов совместной работы


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


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


Вернуться к списку исследовательских групп



Если вы хотите присоединиться к какой-либо из групп, создать совместный проект или у вас есть общие вопросы, пишите нам по адресу info@research.jetbrains.org.


Благодарим Ольгу Андреевских за помощь в подготовке этой публикации.



Ваша команда JetBrains Research
The Drive to Develop
Подробнее..

Открытые материалы курс по вычислительной нейронауке

04.01.2021 18:18:07 | Автор: admin

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

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

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

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

Если вас заинтересовал наш курс или какие-то отдельные темы, которых мы коснулись приглашаем вас в следующем осеннем семестре: будет еще интереснее, поскольку мы постоянно расширяем и дорабатываем контент. Прослушать курс могут все желающие. Вы также можете посмотреть все лекции 2020 года в любое удобное для вас время видеоматериалы доступны наYouTube-каналеJetBrains Research.

Слайд из лекции о кодировании и декодировании информации в НС.Слайд из лекции о кодировании и декодировании информации в НС.
Подробнее..

Категории

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

  • Имя: Макс
    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