Pull to refresh

Курсы Computer Science клуба, весна 2017

Reading time4 min
Views6.9K

Computer Science клуб вот уже 10 лет проводит открытые курсы по компьютерным наукам. Большинство лекций стараниями Лекториума записаны на видео и лежат в открытом доступе. В этом семестре выложены уже три новых курса, которые до этого не читались в клубе: «Программирование с зависимыми типами на языке Idris», «Вычисления на GPU. Основные подходы, архитектура, оптимизации», «Методы и системы обработки больших данных».

Программирование с зависимыми типами на языке Idris



Лектор: Виталий Николаевич Брагилевский, сотрудник института математики, механики и компьютерных наук Южного федерального университета (Ростов-на-Дону), член комитета по стандартизации языка Haskell 2020.

Аннотация
Idris — чистый тотальный функциональный язык программирования общего назначения с Haskell-подобным синтаксисом и поддержкой зависимых типов. Система типов подобна системе типов языка Agda. Язык поддерживает средства автоматического доказательства, сравнимые с Coq,
включая поддержку тактик, однако фокусируется не на них, а позиционируется как язык программирования общего назначения. Цели его создания: «достаточная» производительность, простота управления побочными эффектами и средства реализации встраиваемых предметно-ориентированных языков.

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

Материалы и видео курса.

Вычисления на GPU. Основные подходы, архитектура, оптимизации



Лектор: Алексей Александрович Ивахненко, ведущий специалист по архитектуре GPU и оптимизации в Applied Parallel Computing LLC.

Аннотация
Этот курс лекций освещает основные способы разработки программного обеспечения, использующего графические процессоры (GPU) NVIDIA в параллельных вычислениях. Включает в себя обзор библиотек линейной алгебры, преобразования Фурье, генерации случайных чисел. Рассмотрен процесс быстрой разработки с помощью STL-подобной библиотеки Thrust.

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

Заключительная лекция представляет пример взаимодействия с популярным стандартом компьютерной графики OpenGL на примере численного решения стационарного уравнения Пуассона.

Материалы и видео курса.

Методы и системы обработки больших данных



Лектор: Иван Витальевич Пузыревский, преподаватель Школы анализа данных и факультета компьютерных наук Высшей школы экономики, в Яндексе руководит одной из групп разработки платформы для распределённого хранения и обработки данных YT.

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

В лекционной части курса рассматриваются такие технологии как HDFS, Hadoop MapReduce, HBase, Cassandra, Spark, Kafka, Spark Streaming, Storm. Последовательность рассказа повторяет историю появления и развития данных технологий обработки данных. В начале мы познакомимся с HDFS и MapReduce, разберем основные архитектурные решения и ограничения в применимости данных систем (в том числе с учетом десятилетнего опыта эксплуатации). Следом разберем задачу хранения данных по ключу, познакомимся с различными трейд-оффами в построении систем типа «ключ-значение» на примере HBase & Cassandra. Постепенно перейдем к изучению устройства Spark, современной системе кластерной обработки данных. Узнаем принципиальные отличия в пакетной и потоковой обработке данных, изучим Kafka — шину для доставки данных с минимальными задержками — и Storm вместе с Spark Streaming — системами потоковых вычислений. В дополнение разберем сопроводительные технологии (типа ZooKeeper, Hive), которые порой упрощают жизнь при разработке приложений.

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

Материалы и видео курса.

Другие курсы этого семестра


На прошлой неделе завершился курс «Коммуникационная сложность», скоро появится видео. На этих выходных начался курс «Экспандеры и их применения». В апреле ожидается курс «Машинный перевод», в мае — курс «Избранные главы теории потоков», а в начале июня миникурс «Modern algorithms for parallel, streaming and query-based data processing». Кроме этого в течение всего семестра проводится Семинар по сложности булевых функций

Мы в Академическом университете поощряем студентов, которые посещают лекции Computer Science клуба — мы позволяем засчитывать курсы клуба (для этого, конечно, нужно сдать экзамен).

Если вам интересны лекции клуба и вы живёте в Петербурге или Казани (в Казани действует филиал клуба) — подписывайтесь на обновления в социальных сетях или на email-рассылку (ссылки есть на нашем сайте) и приходите на лекции!

Вторая часть.
Tags:
Hubs:
+29
Comments8

Articles

Information

Website
www.jetbrains.com
Registered
Founded
Employees
501–1,000 employees
Location
Россия