Как стать автором
Поиск
Написать публикацию
Обновить

Компания Образовательные проекты JetBrains временно не ведёт блог на Хабре

Сначала показывать

Обзор докладов C++ Russia Piter 2019

Время на прочтение5 мин
Количество просмотров3.1K
В совместной магистратуре ИТМО и JetBrains мы просим студентов, которые отправляются на конференцию, написать отчёт с обзором докладов.
Публикуем один из таких отчётов о конференции C++ Russia Piter 2019. Автор — студент 2 курса магистратуры Артём Хорошев.


Читать дальше →

Как написать свой транслитератор

Время на прочтение5 мин
Количество просмотров6.7K
Выпускница CS центра 2018 года, Дарья Родионова, рассказывает о транслитерации: что это такое, какие есть подходы к транслитерации, как создать свой транслитератор и как усовершенствовать модель.
Читать о транслитерации

Введение в контекстно-ориентированное программирование на Kotlin

Время на прочтение9 мин
Количество просмотров11K
Это перевод статьи An introduction to context-oriented programming in Kotlin

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

Несколько слов о разрешении функций


Как хорошо известно, существует три основных парадигмы программирования (примечание Педанта: есть и другие парадигмы):

  • Процедурное программирование
  • Объектно-ориентированное программирование
  • Функциональное программирование
Читать дальше →

Введение в функциональные зависимости

Время на прочтение11 мин
Количество просмотров42K
В этой статье мы поговорим о функциональных зависимостях в базах данных — что это такое, где применяются и какие алгоритмы существуют для их поиска.

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


Читать дальше

Курс по C++ в CS центре, вторая часть

Время на прочтение3 мин
Количество просмотров11K
Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

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

Раскусим новые возможности языка и стандартной библиотеки: move семантику, bind/function, enable_if/if constexpr, сoroutines и другие. Посмотрим на некоторые характерные задачи: многопоточное программирование, использование библиотек в Windows и Linux и другие.

Приятного просмотра!
Смотреть видео

Организаторы и ассистенты преподавателей об онлайн-программах CS центра

Время на прочтение6 мин
Количество просмотров3.4K
14 ноября CS центр в третий раз запускает онлайн-программы «Алгоритмы и эффективные вычисления», «Математика для разработчиков» и «Разработка на C++, Java и Haskell». Они созданы, чтобы помочь погрузиться в новую область и заложить фундамент для обучения и работы в IT.

Чтобы поступить, вам нужно будет погрузиться в атмосферу обучения и сдать вступительный экзамен. Подробнее о программе, экзамене и стоимости читайте на code.stepik.org.

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

image
Читать, как устроены программы

Arend – язык с зависимыми типами, основанный на HoTT (часть 2)

Время на прочтение13 мин
Количество просмотров3.2K
В первой части статьи про язык Arend мы рассматривали простейшие индуктивные типы, рекурсивные функции, классы и множества.

2. Сортировка списков в Arend


2.1 Упорядоченные списки в Arend


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

\func SortedList (O : LinearOrder.Dec) => \Sigma (l : List O) (Sorted l)

\data Sorted {A : LinearOrder.Dec} (xs : List A) \elim xs
 | nil => nilSorted
 | :-: x nil => singletonSorted
 | :-: x1 (:-: x2 xs) => consSorted ((x1 = x2) || (x1 < x2)) (Sorted (x2 :-: xs))

Обратите внимание: Arend сумел автоматически вывести, что тип Sorted содержится во вселенной \Prop. Это произошло потому, что все три образца в определении Sorted являются взаимно исключающими, а конструктор consSorted имеет два параметра, оба из которых принадлежат \Prop.
Докажем какое-нибудь очевидное свойство предиката Sorted, скажем, что хвост упорядоченного списка сам является упорядоченным списком (это свойство пригодится нам в дальнейшем).
Читать дальше →

Arend – язык с зависимыми типами, основанный на HoTT (часть 1)

Время на прочтение21 мин
Количество просмотров10K
В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend (язык назван в честь Аренда Гейтинга). Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноценный релиз Arend случился лишь в июле этого года.

Мы попробуем рассказать, чем Arend отличается от существующих систем формализованной математики, основанных на зависимых типах, и о том, какая функциональность уже сейчас доступна его пользователям. Мы предполагаем, что читатель настоящей статьи в целом знаком с зависимыми типами и слышал хотя бы про один из языков, основанных на зависимых типах: Agda, Idris, Coq или Lean. При этом мы не рассчитываем, что читатель владеет зависимыми типами на продвинутом уровне.

Для простоты и конкретности наш рассказ об Arend и гомотопических типах будет сопровождаться реализацией на Arend простейшего алгоритма сортировки списков — даже на этом примере можно почувствовать отличие Arend от Agda и Coq. На Хабре уже есть ряд статей, посвященных зависимым типам. Скажем, про реализацию сортировки списков методом QuickSort на Agda есть вот такая статья. Мы будем реализовывать более простой алгоритм сортировки вставками. При этом основное внимание уделим конструкциям языка Arend, а не самому алгоритму сортировки.
Читать дальше →

Курс по C++ в CS центре, первая часть

Время на прочтение3 мин
Количество просмотров26K
Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

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

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

Приятного просмотра!
Смотреть видео

Подход интенсивного обучения STEM

Время на прочтение10 мин
Количество просмотров4.7K
В мире инженерного образования существует много отличных курсов, но зачастую программа обучения, построенная на них, обладает одним серьезным недостатком — отсутствием хорошей связности между различными темами. Можно возразить: как же так?

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

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

Университетское обучение экстенсивно — учащийся идет широким фронтом и зачастую не видит смысла и практической значимости знаний, которые получает. Мы решили перевернуть парадигму университетского обучения STEM (от слов Science, Technology, Engineering, Math) и сделать такую программу, которая опирается на связность знаний, допуская наращивание полноты в будущем, то есть подразумевает интенсивное освоение предметов.
Читать статью

Как я организовал тренировки по машинному обучению в НГУ

Время на прочтение4 мин
Количество просмотров4.1K
Меня зовут Саша и я люблю машинное обучение, а также обучение людей. Сейчас курирую образовательные программы в Computer Science центре и руковожу бакалавриатом по анализу данных в СПбГУ. До этого работал аналитиком в Яндексе, а ещё раньше — учёным: занимался математическим моделированием в ИВТ СО РАН.

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

image
Читать дальше →

Дедупликация объявлений на Яндекс.Недвижимости

Время на прочтение4 мин
Количество просмотров3.5K
В прошлом семестре студенты Computer Science центра Сергей Горбатюк и Пётр Кароль работали над дедупликацией объявлений на Яндекс.Недвижимости под руководством Владимира Горового, менеджера проекта. Ребята рассказали нам, как устроен проект, и каких результатов они достигли.

image

Читать дальше →

Первый выпуск корпоративной магистерской программы JetBrains и Университета ИТМО

Время на прочтение1 мин
Количество просмотров3.4K

В этом году состоится первый выпуск студентов корпоративной магистерской программы JetBrains и Университета ИТМО. В начале июня прошли защиты магистерских дипломов. Все студенты успешно представили результаты своих работ и получили степень магистра. Чтобы научиться докладывать о результатах своей магистерской, каждый студент прошел через 5-6 предзащит: сначала нужно было научиться рассказывать о результатах за 30 минут, потом — за 15 минут, и в самом конце — уже за 7 минут, которые положены по регламенту.

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

Напоминаем, что уже сейчас можно подать заявку на поступление.

Набор в бакалавриат СПбГУ при поддержке Яндекса и JetBrains

Время на прочтение4 мин
Количество просмотров12K
В сентябре 2019 года СПбГУ открывает факультет математики и компьютерных наук. Набор в бакалавриат начинается уже в конце июня на три направления: «Математика», «Математика, алгоритмы и анализ данных» и «Современное программирование». Программы созданы коллективом Лаборатории им. П.Л. Чебышёва вместе с ПОМИ РАН, Computer Science центром, компаниями Газпромнефть, JetBrains и Яндекс.

image

Курсы читают известные преподаватели, опытные и увлечённые сотрудники IT-компаний. Среди преподавателей — Николай Вавилов, Эдуард Гирш, Сергей Иванов, Сергей Кисляков, Александр Охотин, Александр Куликов, Илья Кацев, Дмитрий Ицыксон, Александр Храбров. А также Александр Авдюшенко из Яндекса, Михаил Сенин и Святослав Щербина из JetBrains и другие.

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

Ближайшие события

Машинное обучение и анализ данных: магистратура Высшей школы экономики в Санкт-Петербурге

Время на прочтение2 мин
Количество просмотров6.9K


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

Хакатон DevDays'19 (часть 2): парсер звуковых сообщений для Telegram и проверка грамматики в IntelliJ IDEA

Время на прочтение7 мин
Количество просмотров2.4K
Мы продолжаем рассказывать о проектах весеннего хакатона DevDays, в котором участвовали студенты магистерской программы «Разработка программного обеспечения / Software Engineering». Первая часть рассказа.



Кстати, хотим пригласить читателей присоединиться к VK-группе магистратуры. В ней мы будем публиковать самые свежие новости о наборе и учебе. Видеозапись со дня открытых дверей также можно будет найти в группе. Напоминаем: мероприятие пройдет 29 апреля, подробности на сайте.
Читать дальше →

Хакатон DevDays'19 (часть 1): дневник с рекомендациями, генератор маршрутов для прогулок и жидкая демократия

Время на прочтение7 мин
Количество просмотров2.2K
Недавно мы рассказывали о корпоративной магистерской программе JetBrains и Университета ИТМО «Разработка программного обеспечения / Software Engineering». Приглашаем всех интересующихся на день открытых дверей в понедельник 29 апреля. Мы расскажем о преимуществах нашей магистратуры, о том, какие бонусы предлагаем студентам и что требуем взамен. Кроме того, мы обязательно ответим на вопросы наших гостей.

День открытых дверей пройдет в офисе JetBrains в БЦ «Таймс», где учатся студенты нашей магистратуры. Начало в 17:00. Узнать все подробности и зарегистрироваться на мероприятие можно на сайте mse.itmo.ru. Приходите и не пожалеете!

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

В этом посте мы хотим подробнее рассказать о хакатонах DevDays, которые проходят раз в полгода. Правила простые: собираются команды по 3-4 человека и в течение трех дней студенты воплощают собственные идеи в жизнь. Что из этого может получиться? Читайте первую часть рассказов о проектах хакатона этого семестра от самих студентов :)
Читать дальше →

Выпускники CS центра возвращаются преподавать

Время на прочтение12 мин
Количество просмотров4.4K

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



До 13 апреля открыт приём анкет на поступление в CS центр. Очное обучение в Санкт-Петербурге и в Новосибирске. Заочное для жителей других городов.

Читать дальше →

Семь простых шагов, чтобы стать студентом Computer Science Center

Время на прочтение4 мин
Количество просмотров14K

1. Выберите программу обучения


CS центр предлагает очные вечерние курсы студентам и молодым специалистам в Санкт-Петербурге или Новосибирске. Учёба длится два или три года — по выбору студента. Направления: Computer Science, Data Science и Software Engineering. Для жителей других городов мы открыли платное заочное отделение. Занятия онлайн, программа рассчитана на один год.


2. Проверьте, что вам хватит времени на учёбу


Студенты CS центра тратят на занятия, домашние задания и проекты от 15 часов в неделю. Занятия проходят по вечерам по будням в БЦ «Таймс» в Санкт-Петербурге и в НГУ в Новосибирске.


3. Подготовьтесь к вступительным испытаниям


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


4. Заполните анкету на поступление до 13 апреля и решите задания онлайн-теста


Подробности про тест в письме после заполнения анкеты на сайте.


5. Участвуйте в экзамене


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


6. Пройдите собеседование


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


7. Подтвердите согласие учиться в CS центре


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


Остались вопросы? Мы собрали самые популярные с дней открытых дверей в Санкт-Петербурге и Новосибирске — читайте дальше.

Читать дальше →

«Анализ данных на Python» в двух частях

Время на прочтение5 мин
Количество просмотров60K
Курсы по анализу данных в CS центре читает Вадим Леонардович Аббакумов — кандидат физ.-мат. наук, он работает главным экспертом-аналитиком в компании Газпромнефть-Альтернативное топливо.

Лекции предназначены для двух категорий слушателей. Первая — начинающие аналитики, которым сложно начинать с изучения, например, книги The Elements of Statistical Learning. Курс подготовит их к дальнейшей работе. Вторая — опытные аналитики, не получившие систематического образования в области анализа данных. Они могут заполнить пробелы в знаниях. С прошлого года на занятиях используется язык программирования Python.

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

Приятного просмотра!