| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Руководитель | Тема | Задачи | Ожидаемый результат и полученный опыт | Требования | Материалы-1 | |||||||||||||||||
2 | JB01 | Антон Подкопаев | Реляционная операционная семантика C11 | Реализовать реляционный интерпретатор подмножества С/C++11 (операции над памятью в многопоточной среде) по описанной операционной семантике. | - Ожидаемый результат для руководителя Интерпретатор, который может быть использован для изучения операционной семантики C/C++11. - Опыт, который получит студент Студент ознакомится с операциоными семантиками, реляционным программированием, а также получит представление о проблемах многопоточного исполнения программ в современных окружениях. Знакомство с языком Racket (диалект LISP), платформами PLT Redex для описания семантик и miniKanren для реляционного программирования. Студент НЕ будет программированить/изучать C/C++. | 1) Близкое знакомство с одним из функциональных языков (LISP, Haskell, ML). 2) Готовность заниматься научными задачами (не имеющими прямого приложения). 3) Способность читать статьи на английском языке и самостоятельно изучать новое. Тестовое задание (перед собеседованием) 1) Установить DrRacket (или Emacs + Racket mode). 2) Самостоятельно реализовать mergesort списков на Racket. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
3 | JB02 | Семён Григорьев | Анализ динамически формируемого кода | a. Задача 1. Применение анализа строковых выражений для JavaScript eval i. опыт для студента: бесценный опыт исследования, чтение научных статей, поиск как теоритических так и инженерных решений, F#, JavaScript, OCaml, ..., глубокие познания в статическом, синтаксическом анализе кода, трансляторах ii. результат для руководителя: публикации по теме исследования, транслятор из JavaScript с eval в JavaScript с безопасным аналогом eval b. Задача 2. Использование SPPF в абстрактном синтаксическом анализе i. опыт для студента: познания в синтаксическим и семантическом анализе кода, чтение статей, F#, OCaml, FsYacc ii. результат для руководителя: публикации по теме исследования, сравнение подходов к анализу динамически формируемого кода, семантический анализ для динамически формируемого кода. | Требования к знаниям/навыкам одинаковы во всех задачах. Варьируется тольок "степень владения". -- Знакомство с функциональным программированием (F# или OCaml) -- Знания в области лексического и синтаксического анализа -- Знания в области техник трансляции -- Умение читать научные статьи, чужой код -- Навыки работы с Git/GitHub, Microsof VisualStudio | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
4 | JB03 | Средства сертификационного программирования. | Общий ожидаемый результат проекта: полнофункциональный прототип средства для сертификационного программирования (язык + IDE) и публикации по соответствующей теме. a. Задача 1. Объединение F# и F* i. опыт для студента: языки: F#, F*; технологии: FsLex, FsYacc (генераторы лексерови парсеров), Git; знания: лексический, синтаксический анализ, грамматики, семантика, создание трансляторов. ii. результат для руководителя: парсер для языка на основе F# с включением возможностей F*, транслятор подмножества полученного языка в F* b. Задача 2. Поддержка F#* в Microsoft Visual Studio. i. опыт для студента: языки: C#, F#, F*, опыт создания расширения для MSVS IDE. ii. результат для руководителя: Поддержка языка, полученного в предыдущей задаче в MSVS IDE. c. Задача 3. Межъязыковое взаимодействие F# и F* i. опыт для студента: языки: F#, F*; понимание принципов работы .NET, систем вывода типов. ii. результат для руководителя: возможность использовать новый язык в реальных проектах. | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||||
5 | JB04 | Николай Вяххи | Telegram Bot | Реализовать бота для Telegram с нуля. Что будет делать бот – на ваше усмотрение, хотя список идей у нас есть на всякий случай. | Технологии: Stepic.org REST API, Python3, https://core.telegram.org/bots/api, https://habrahabr.ru/post/262247/ | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
6 | JB05 | IntelliJ Plugin for Code Challenges | Разработать плагин для IntelliJ Platform, с помощью которого можно будет решать и сдавать задачи на программирование на Stepic.org. Пример подключения к Stepic.org из PyCharm Edu – https://github.com/JetBrains/intellij-community/tree/143/python/educational/interactive-learning/src/com/jetbrains/edu/learning/stepic | Технологии: Stepic.org REST API, Java. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||||
7 | JB06 | Проект студента в Stepic.org | Если вы знаете, как улучшить Stepic.org, и готовы этим заниматься, то мы готовы обсудить индивидуальную тему. Для этого вместе с заявкой на проект пришлите краткое описание предполагаемого проекта. | Технологии: Python 3, Django, Docker, REST API, Ember.js, CoffeeScript / ECMAScript 6. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||||
8 | JB07 | Дмитрий Калашников | Поиск используемых технологий (фраемоврки, библиотеки, системы управления зависимостями) в проектах с открытым исходным кодом | - Разработка алгоритма поиска вхождения технологий в репозитории на GitHub. - Сбор метаинформации по репозиториям: количество форков, вотчеров, даты создания, etc. - Создание парсера, в рамках которого будет реализован алгоритма. Предполагается, что парсер будет выполнен в качестве сервиса. - Разработка структуры данных для хранения результатов. | Оптимальный алгоритм поиска (в первую очередь - быстрый) Будут использованы: git, java 8, spring, MongoDB или SQL server. Студент волен сам добавлять различные фраемворки/библиотеки, если посчитает это необходимым | Студент должен знать git и java 8, иметь общую алгоритмическую подготовку и опыт разработки многопоточных приложений. Желательно, но не обязательно иметь хотя бы общее представление о том как устроен spring. Было бы совсем прекрасно, если бы студент прослушал какой-либо курс по компиляторам, но это требование абсолютно не критично. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
9 | JB08 | Анастасия Чумак | Finding the the best algorithm for detecting "influencers" on Twitter to be implemented in JetBrains Internal Twitter Analysis Tool | - Secondary research (literature and media overview) * Define the attributes of the “influencer on Twitter” (what are they apart from the number of followers? Does it matter more who those followers are?) * Trial online tools that have such functionality (SocialBro, Krout etc.), try to understand the principles they are based on - Build the model of “influencer” determination - Test the model on JetBrains Twitter accounts - Embed “Influencers” feature into Internal Twitter Analysis Tool (if possible) | New feature in Internal Twitter Analysis Tool Work experience with twitter documentation and REST APIs Python MongoDB | - Interest in Social Media Research - English level - sufficient to understand articles in English and trial tools - Experience in work/projects on Twitter (encouraged, but not required) | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
10 | JB09 | Аркадий Калакуцкий | Events extraction from natural texts | - обзор готовых библиотек - описание модели события - реализация модуля, который на вход получает текст, на выходе отдает описание события (*)сбор новостей в интернет (*)добавление событий в единый timeline | работающий модуль, извлекающий события из текстов опыт: программирование на Java или Python, работа с NLP библиотеками, работа с БД | базовые навыки программирования | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
11 | JB10 | Question-answering system | - распарсить текст запроса заданного в строго определенном формате. Например, формат -- “сущность место время”, запрос -- “programmers in Canada in 2012”. Набор сущностей о которых могут задаваться вопрсы ограничен. - классификация запроса, научиться понимать к каким источникам данных он относится. Источников данных ограниченное количество. - формировать запрос к источнику - собрать единую систему, которая принимает запросы на вход и выдает ответы-данные на выходе (*)научиться задавать наводящие и уточняющие вопросы, если запрос не понят (*)распарсить текст запроса заданного в более свободной форме. С добавлением служебных слов. (*)распарсить текст запроса заданного в произвольной форме. | получить систему отвечающую на корректные вопрсоы заданные в строго определенном формате. опыт: программирвоание на Python, работа с естественным текстом, возможно работа с NLP библиотеками, работа с БД | базовые навыки программирования | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
12 | JB11 | Василий Корф | A time series model for speculative prices and rates of return of wholesale distribution business. | A time series model for speculative prices and rates of return of wholesale distribution business Goals: Understand the principles of software wholesale distribution Model of identifying successful resellers, assessment of competitiveness Mode of determining the fair commission for distributors | успешная апробация результатов опыт: связь машинного обучения с задачами маркетинга, экономики | r and/or python, basic economic theory | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
13 | JB12 | Predictions model for the future of programming market. | Predictions model for the future of programming market Goals: Identify the main factors for evaluating the software market Сalculate the saturation of the market Find and highlight consumer behavior patterns Inflation and crisis model of programming technologies | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||||
14 | JB13 | Олег Шпынов | GemlBee | Усовершенствовать имеющийся прототип • Итеративная загрузка данных • Арифметика над данными • Предикаты над данными | Java + Kotlin 1, 2 | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
15 | JB14 | Kotlin for Jupiter | Есть проект python kernel for java9 https://github.com/Bachmann1234/java9_kernel Сделать прототип jupiter kernel для Kotlin. | Python 2, 3 | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||||
16 | JB15 | DPC benchmark (биоинформатика) | Прототип benchmark-а для оценки качества DPC с возможностью добавления новых инструментов. | Bioinformatics formats / tools knowledge 1, 3 | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||||
17 | JB16 | Александр Подхалюзин | Автоматический сбор необходимых данных для воспроизведения баги красного кода в Scala plugin | В Scala plugin есть проблемы с красным кодом, который не регистрируется компилятором. Многим пользователям нет возможности сообщить об этой ошибки нам, так как код нельзя распространять, а времени для упрощения ошибки самостятельно у пользователя нет. Предлагается научиться упрощать ошибку автоматически, что позволит подобным пользователям легче соглашаться на report подобных багов. | Ожидаемый результат проверить насколько хорошо это возможно сделать, так как в общем случае у задачи нету решения. Студент получит хорошее представления о том, как устроено IDE изнутри и анализатор, похожий на компилятор. | Мы будем писать код на Scala. Кроме умения писать на этом языке придется хорошо в нем разобраться, так как сама задача этого требует. Главным плюсом будет умение думать. Полезно знание Java, JVM, но не обязательно, так как писать будем все равно на совершенно другом языке (Scala). | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
18 | JB17 | Поддержка markup для чата с интеграциями с сервисами, такими как GitHub | JetChat - чат с открытым исходным кодом с возможностью получать нотификации от сервисов, таких как GitHub вместо почты. Сейчас мы умеем получать и отправлять сообщения на GitHub, тем не менее хотелось бы иметь возможность редактировать более богатый текст с нашим синтаксисом для markup, который бы преобразовавылся в синтаксис GitHub и наоборот. Хочется получить этот результат. Если останется время, можно будет продолжить работу над встроенными картинками. | Мы используем следующий стек, backend: Play 2, Scala, MySQL, Slick, Akka. Frontend: React.js, Reflux. Этот стек довольно современный, подобная практика позволит писать высохотехнологичные web приложения, что даст студенту огромное преимущество в поиске работы в будущем. | Скорость освоения технологий будет ключевым, так как иначе на это потребуется слишком много времени. В целом главным плюсом является по-прежнему умение думать. Полезным, но не обязательным является знание Java, JVM, а также каких-либо web технологий. | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
19 | JB18 | Мария Давыдова | In-Browser Workflow Editor (bootstrap) | Одной из фич YouTrack являются Workflows - расширения, написанные на JavaScript и позволяющее пользователям добавлять функциональность к продукту, используя встроенный API. В настоящий момент эти расширения можно писать только во внешнем редактора, не очень удобном для пользователя и крайне сложном для поддержки (в силу технических причин). Цель данной стажировки - имея API в YouTrack и эскизы браузерной версии редактора, забустрапить его как standalone web application. Наиболее вероятный объём работ: создать приложение, которое позволит читать существующие правила (файлы Workflow), будет подсвечивать код, добавит подсказки, позволит создавать новые правила в памяти (редактирование и сохранение правил на первом этапе не обязательно). | Стажёру придётся познакомиться с JavaScript, создать веб-приложение (наиболее вероятно, что на Angular), которые будет общаться с сервером по REST API, исследовать существующие библиотеки для подсветки кода и подключения подсказок и completion. Код должен быть аккуратен и покрыт тестами. Руководитель будет активно ревьюить работу стажёра. | https://jetbrains.ru/students/practice/archive/ | |||||||||||||||||
20 | JB19 | Поиск цитат в письмах | Каждый почтовый клиент по-своему оформляет цитаты при отправке писем (под цитатой подразумевается каким-то образом выделенный текст письма, на которое данное является ответом). Из-за этого невозможно однозначно определить алгоритм определения того, что является цитатой, а что - нет. Однако можно сформулировать набор эвристик, которые позволят с высокой вероятностью находить цитаты (и различные почтовые клиенты справляются с этой задачей с той или иной степенью успешности). | Стажёру предлагается написать самодостаточную библиотеку на Kotlin, которая будет выделять цитаты из писем. Библиотека должна быть аккуратно спроектирована и покрыта тестами. Руководитель будет активно ревьюить работу стажёра. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||||
21 | JB20 | Илья Бирюков | Альтернативные стратегии подстановки макросов для препроцессора языков С и С++ | Описание: На препроцессирование уходит значительная часть времени компиляции программ на C и C++. Есть подозрение, что в некоторых случаях(например, если в компилируемой программе используется Boost.Preprocessor) можно ускорить препроцессирование, если иметь возможность производить частичные подстановки тел макросов. В рамках практики предполагается оценка возможного ускорения при использовании такого подхода и реализация работающего прототипа на базе какого-нибудь open-source компилятора C/C++. Задачи: 1. Оценка возможного ускорения с использованием альтернативной стратегии подстановки макросов. 2. Реализация прототипа на базе существующего препроцессора(скорее всего, на базе clang). 3. Реализация описанного подхода в ReSharper C++(если успеем). | Ожидаемый результат: Оценка применимости такого подхода на практике(правда ли быстрее?). Ускорение препроцессора в ReSharper C++(если успеем). Опыт, который получит студент: Работа с настоящим большим open-source проектом(скорее всего, clang). (На языке C++) Подробно разберётся в том, как работает препроцессор языка C. Если успеем, то опыт работы над ReSharper C++. (На платформе .Net) | уверенное знание C++, для последнего задания: базовое представление о .Net или Java. | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
22 | JB21 | Даниил Овчинников | Декомпилятор Groovy | Глобальная задача: декомпилятор .class файлов в исходный код Groovy (как часть поддержки Groovy в IDEA или отдельный плагин). Задачи: - декомпиляция структуры (классы, методы, типы полей, вложенные классы, трейты, перечисления, etc); - декомпиляция блоков собственно кода: - статически скомпилированного кода (можно на лето); - динамически скомпилированного кода (пока непонятно можно ли это вообще сделать, насколько сложно и есть ли смысл, можно рассмотреть в качестве диплома). | Упрощение работы со скомпилированными классами Groovy, избавление от велосипедов, к которым пришлось прибегнуть вместо написания декомпилятора. Опыт для студента: Работа с байткодом, работа с IDEA API. | - опыт написания кода на Groovy и Java; - Kotlin или Scala (хотя бы для разбора примеров, в Scala); - знакомство с байткодом; - знание базовых шаблонов проектирования (например, посетитель). | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
23 | JB22 | Ярослав Лепенькин | Поиск книг о городах и странах | - Извлечение городов и стран из книг (epub) - Веб-интерфейс для отображения книг, упоминающих данные города и страны | Веб-сервис, позволяющий находить книги, в которых упоминаются, введенные пользователем, города и страны. Опыт: анализ книг - любимый язык, веб - js/html/css, поиск по строкам | желание | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
24 | JB23 | Иван Сорокин | Лексер для C++ | Сравнить несколько подходов для написания лексеров и существующие лексеры, и сделать лексер, который работает быстро | Ожидаемый результат для меня: мы получим лексер, который работает не в 10 раз медленее, чем лексеры в реальных компиляторах Опыт который получит студент: студент узнает как работает компьютер, и как оптимизировать программы | знание C++, желательно знание ассемблера | https://jetbrains.ru/students/practice/archive/ | ||||||||||||||||
25 | BAT01 | Евгений Баталов | CRIU. Тренировочные задачи | http://mit.spbau.ru/sewiki/images/8/8f/Batalov-CRIU-project-spring2016.pdf | |||||||||||||||||||
26 | BAT02 | CRIU. Валидатор дампов | |||||||||||||||||||||
27 | BAT03 | CRIU. Фильтры для page-xfer | |||||||||||||||||||||
28 | BAT04 | CRIU. Поддержка больших ghost файлов | |||||||||||||||||||||
29 | BAT05 | CLILK. Смена позиции воспроизведения | http://mit.spbau.ru/sewiki/images/f/f0/Batalov-Clilk-project-spring2016.pdf | ||||||||||||||||||||
30 | BAT06 | CLILK. Циклическая анимация | |||||||||||||||||||||
31 | BAT07 | CLILK. Сжатие картинок и файла проекта | |||||||||||||||||||||
32 | BAT08 | CLILK. Поддержка планшетов в редакторе | |||||||||||||||||||||
33 | BAT09 | CLILK. Автоматический бан роликов | |||||||||||||||||||||
34 | BAT10 | CLILK. Автоматическое определение интересности ролика | |||||||||||||||||||||
35 | KRI01 | Кирилл Кринкин | 3D-Scanner with LeapMotion/RS | ||||||||||||||||||||
36 | KRI02 | [Smart] Broken build notifier | |||||||||||||||||||||
37 | KRI03 | Arduino/Energia toolchain manager | |||||||||||||||||||||
38 | GUK01 | Артур Гулецкий Дмитрий Карташов | Адаптивный контроллер для SLAM | http://mit.spbau.ru/sewiki/images/e/e6/GuletskyKartashov-project-spring2016.pdf | |||||||||||||||||||
39 | GUK02 | Локализация в однородных окружениях | |||||||||||||||||||||
40 | GUK03 | Оптимизация EKF-SLAM | |||||||||||||||||||||
41 | GUK04 | 2D-SDF-SLAM to 3D | |||||||||||||||||||||
42 | GUK05 | Анализ дескрипторов особых точек | |||||||||||||||||||||
43 | GUK06 | Эмуляция тачскрина | |||||||||||||||||||||
44 | MOS01 | Денис Москвин | Канонические комбинаторы на уровне типов | http://mit.spbau.ru/sewiki/images/3/3b/Moskvin-project-spring2016.pdf | |||||||||||||||||||
45 | MOS02 | Перепись населения типа | |||||||||||||||||||||
46 | SHP01 | Алексей Шпильман | Оптимизация дорожной сети | http://mit.spbau.ru/sewiki/images/c/cf/Shpilman-project-spring2016.pdf | |||||||||||||||||||
47 | SHP02 | Анализ клеток | |||||||||||||||||||||
48 | SHP03 | Динамика биополимеров | |||||||||||||||||||||
49 | BIO01 | Антон Коробейников | Фильтр Блума | http://mit.spbau.ru/sewiki/images/d/db/Bioinf-project-spring2016.pdf | |||||||||||||||||||
50 | BIO02 | Александр Шлемов | Иммуноинформатика. Слияние парных ридов антител | ||||||||||||||||||||
51 | BIO03 | Иммуноинформатика. Коррекция ошибок в ридах антител | |||||||||||||||||||||
52 | BIO04 | Андрей Пржибельский | Построения графа связей геномных последовательностей по ридам РНК/ДНК | ||||||||||||||||||||
53 | BIO05 | Кира Вяткина | Проекты по протеомике | ||||||||||||||||||||
54 | VER01 | Марат Ахин, Михаил Беляев | Анализ указателей LLVM | http://mit.spbau.ru/sewiki/images/8/80/LAV-project-spring2016.pdf | |||||||||||||||||||
55 | VER02 | Предметно-ориентированный анализ на основе контрактов | |||||||||||||||||||||
56 | VER03 | Фронтэнд анализ для Rust | |||||||||||||||||||||
57 | VER04 | Ассемблерные вставки для LLVM IR | |||||||||||||||||||||
58 | VER05 | Интероперабельность для LLVM-совместимых языков | |||||||||||||||||||||
59 | VER06 | QuickCheck для Kotlin | |||||||||||||||||||||
60 | VER07 | Предсказание конфликтов при merge | |||||||||||||||||||||
61 | VER08 | Генерация commit-сообщения | |||||||||||||||||||||
62 | VER09 | Слияние конфликтов при коммитах | |||||||||||||||||||||
63 | VER10 | Разбиение коммитов на части | |||||||||||||||||||||
64 | SIM01 | Валерий Лесин | Voice activity detection | http://mit.spbau.ru/sewiki/images/5/58/Simlabs-project-spring2016.pdf | |||||||||||||||||||
65 | SIM02 | Синхронный захват и воспроизведение аудио/видео потока | |||||||||||||||||||||
66 | SIM03 | Rendering server & web-based client | |||||||||||||||||||||
67 | SIM04 | Height Map/Digital elevation model | Базовые знания вычислительной геометрии | ||||||||||||||||||||
68 | GEO01 | Дмитрий Рыкованов, Илья Аверьянов | Обработка БКА и Канопус-В | http://mit.spbau.ru/sewiki/images/0/0b/Geoscan-project-spring2016.pdf | |||||||||||||||||||
69 | GEO02 | Управление воздушным пространством БПЛА | |||||||||||||||||||||
70 | GEO03 | 3D фотобудка | |||||||||||||||||||||
71 | GEO04 | Групповое управление БПЛА | |||||||||||||||||||||
72 | GEO04 | Унификация АП и НСУ | |||||||||||||||||||||
73 | CS01 | Гирш Э.А. | |||||||||||||||||||||
74 | CS02 | Ицыксон Д.М. | |||||||||||||||||||||
75 | CS03 | Сергей Николенко | |||||||||||||||||||||
76 | CS04 | Александр Кноп | |||||||||||||||||||||
77 | CS05 | Александр Куликов | |||||||||||||||||||||
78 | |||||||||||||||||||||||
79 | |||||||||||||||||||||||
80 | |||||||||||||||||||||||
81 | |||||||||||||||||||||||
82 | |||||||||||||||||||||||
83 | |||||||||||||||||||||||
84 | |||||||||||||||||||||||
85 | |||||||||||||||||||||||
86 | |||||||||||||||||||||||
87 | |||||||||||||||||||||||
88 | |||||||||||||||||||||||
89 | |||||||||||||||||||||||
90 | |||||||||||||||||||||||
91 | |||||||||||||||||||||||
92 | |||||||||||||||||||||||
93 | |||||||||||||||||||||||
94 | |||||||||||||||||||||||
95 | |||||||||||||||||||||||
96 | |||||||||||||||||||||||
97 | |||||||||||||||||||||||
98 | |||||||||||||||||||||||
99 | |||||||||||||||||||||||
100 | |||||||||||||||||||||||