Рубрика «hse»
GSoC 2019: Проверка графов на двудольность и трансформеры монад
2020-01-31 в 14:30, admin, рубрики: Alga, google summer of code, haskell, hse, hse spb, Алгоритмы, Блог компании Питерская Вышка, вшэ, графы, питерская вышка, Учебный процесс в IT, функциональное программированиеПрошлым летом я участвовал в Google Summer of Code — программе для студентов от компании Google. Ежегодно организаторы отбирают несколько Open Source-проектов, в том числе от таких известных организаций, как Boost.org и The Linux Foundation. Для работы над этими проектами Google приглашает студентов со всего мира.
Как участник Google Summer of Code 2019 я делал проект в рамках библиотеки Alga с организацией Haskell.org, занимающейся развитием языка Хаскелль — одного из самых известных функциональных языков программирования. Alga — библиотека, представляющая типобезопасное представление для графов в Хаскелле. Она используется, например, в semantic — библиотеке компании Github, строящей по коду семантические деревья, графы вызовов и зависимостей и умеющей их сравнивать. Мой проект состоял в добавлении туда типобезопасного представления для двудольных графов и алгоритмов для этого представления.
В посте я расскажу про свою реализацию алгоритма проверки графа на двудольность на Хаскелле. Несмотря на то, что алгоритм является одним из самых базовых, его красивая реализация в функциональном стиле заняла у меня несколько итераций и потребовала довольно много работы. В результате я остановился на реализации с трансформерами монад.
Отладка алгоритмов на графах — теперь с картинками
2019-07-26 в 14:49, admin, рубрики: hse, Visual Studio, Visual Studio extension, vs, алгоритмы на графах, Блог компании Питерская Вышка, визуализация, визуализация данных, вшэ, графы, отладка, питерская вышка, плагин, ПрограммированиеПредставим типичную ситуацию на первом курсе: вы прочитали про алгоритм Диница, реализовали, а он не заработал, и вы не знаете, почему. Стандартное решение — это начать отлаживать по шагам, каждый раз рисуя текущее состояние графа на листочке, но это жутко неудобно. Я попробовала исправить положение в рамках семестрового проекта по Software Engineering, а в посте расскажу, как у меня в итоге получился плагин для Visual Studio. Скачать можно тут, исходный код и документацию можно посмотреть тут. Вот скриншот графа, который получился для алгоритма Диница.
ZuriHac: практикуемся в функциональном программировании
2019-07-18 в 13:27, admin, рубрики: haskell, hse, pandoc, Блог компании Питерская Вышка, вшэ, питерская вышка, Программирование, Учебный процесс в IT, функциональное программирование, хакатон, ХакатоныВ июне этого года в небольшом швейцарском городке Рапперсвиле уже в десятый раз прошло мероприятие под названием ZuriHac. В этот раз на нём собрались более пятисот любителей Хаскелля, от новичков до отцов-основателей языка. Хотя организаторы называют это мероприятие хакатоном, всё же оно не является конференцией или хакатоном в классическом смысле. Его формат отличается от традиционных программистских. Мы узнали про ZuriHac по счастливой случайности, поучаствовали в нем, а теперь считаем своим долгом рассказать о необычной находке!
Как решать NP-трудные задачи с помощью параметризованных алгоритмов
2019-06-17 в 8:56, admin, рубрики: hse, NP-трудные задачи, Vertex Cover, Алгоритмы, Блог компании Питерская Вышка, вшэ, задача о вершинном покрытии, математика, параметризованные алгоритмы, питерская вышка, Программирование, Учебный процесс в ITНаучно-исследовательская работа, пожалуй, самая интересная часть нашего обучения. Идея в том, чтобы ещё в университете попробовать себя в выбранном направлении. Например, студенты с направлений Software Engineering и Machine Learning часто идут делать НИРы в компании (в основном, JetBrains или Яндекс, но не только).
В этом посте я расскажу о своём проекте по направлению Computer Science. В рамках работы я изучил и реализовал на практике подходы к решению одной из самых известных NP-трудных задач: задаче о вершинном покрытии.
Сейчас очень быстро развивается интересный подход к NP-трудным задачам — параметризованные алгоритмы. Я постараюсь ввести вас в курс дела, рассказать несколько простых параметризованных алгоритмов и описать один мощный метод, который очень мне помог. Свой результаты я представил на соревновании PACE Challenge: по итогам открытых тестов мое решение занимает третье место, а окончательные результаты будут известны 1 июля.
Как мы в Питерской Вышке учим Software Engineering
2019-02-07 в 15:17, admin, рубрики: hse, software engineering, бакалавриат, Блог компании Питерская Вышка, вуз, вузовское образование, вузы, вшэ, курсы, питерская вышка, программа обучения, Программирование, Промышленное программирование, Учебный процесс в ITВ предыдущих постах мы рассказывали, что наши студенты делают на стажировках: научных (например, в JetBrains Research) и промышленных. В этом посте хотим поделиться, как мы учим промышленному программированию.
Кратко: за четыре курса бывший школьник пробует десяток-другой технологий и языков, постоянно пишет и удаляет много кода, проходит code review от более опытных товарищей (не всегда с первой попытки), углубляется в какую-то тему и в итоге защищает содержательный диплом. Всё это проходит прямо в университете и даёт диплом гособразца. А летом можно либо отдохнуть, либо постажироваться в России в JetBrains, Яндексе и JetBrains Research (если хочется больше науки) или съездить за рубеж (Google, Facebook и другие). Теперь поподробнее.
Как я научила робота бегать по видео с YouTube
2019-01-25 в 9:58, admin, рубрики: hse, jetbrains, jetbrains research, Алгоритмы, Блог компании Питерская Вышка, искусственный интеллект, машинное обучение, обучение с подкреплением, питерская вышка, Учебный процесс в ITМы продолжаем рассказывать о совместных научных проектах наших студентов и JetBrains Research. В этой статье поговорим об алгоритмах глубокого обучения с подкреплением, которые используются для моделирования двигательного аппарата человека.
Смоделировать все возможные движения человека и описать все сценарии поведения — достаточно сложная задача. Если мы научимся понимать, как человек двигается, и сможем воспроизводить его движения «по образу и подобию» — это сильно облегчит внедрение роботов во многие области. Как раз для того, чтобы роботы учились повторять и анализировать движения сами, и применяется машинное обучение.
Как учиться с помощью машинного обучения у экспертов в Dota 2
2019-01-10 в 13:00, admin, рубрики: hse, jetbrains, jetbrains research, Алгоритмы, Блог компании Питерская Вышка, демонстрации, искусственный интеллект, машинное обучение, обучение с подкреплением, питерская вышка, Учебный процесс в ITВ предыдущей статье от Питерской Вышки мы показывали, как при помощи машинного обучения можно искать баги в программном коде. В этом посте расскажем о том, как мы вместе с JetBrains Research пытаемся использовать один из самых интересных, современных и быстроразвивающихся разделов машинного обучения — обучение с подкреплением — как в реальных практических задачах, так и на модельных примерах.
Машинное обучение для поиска ошибок в коде: как я стажировался в JetBrains Research
2018-12-25 в 19:16, admin, рубрики: hse, jetbrains, jetbrains research, автоматический поиск багов, Блог компании Питерская Вышка, Карьера в IT-индустрии, машинное обучение, питерская вышка, Учебный процесс в ITНедавно мы рассказывали о том, как попасть на стажировку в Google. Помимо Google наши студенты пробуют свои силы в JetBrains, Яндекс, Acronis и других компаниях.
В этой статье я поделюсь своим опытом прохождения стажировки в JetBrains Research, расскажу о задачах, которые там решают, и подробнее остановлюсь на том, как при помощи машинного обучения можно искать баги в программном коде.
Как попасть на стажировку в Google
2018-12-12 в 12:03, admin, рубрики: Google, hse, Блог компании Питерская Вышка, Карьера в IT-индустрии, питерская вышка, собеседования, стажировка, стажировка в google, Учебный процесс в ITНеделю назад мы рассказали о наших образовательных программах , где в комментариях нам указали на важность стажировок и практического опыта. С этим невозможно не согласиться, поскольку теоретические знания необходимо закреплять практикой. Этим постом мы открываем серию статей о летних стажировках студентов: как ребята туда попадают, что они там делают и почему это хорошо.
В первой статье я расскажу, как успешно пройти все этапы собеседований и попасть на стажировку в Google.