- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: СПБАУ

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/funktsional-noe-programmirovanie/252266

Ссылки в тексте:

[1] Computer Science: http://compsciclub.ru

[2] курсы по компьютерным наукам: http://compsciclub.ru/courses/

[3] Лекториума: https://www.lektorium.tv/medialibrary

[4] «Программирование с зависимыми типами на языке Idris»: http://compsciclub.ru/courses/idrisprogramming/2017-spring/

[5] «Вычисления на GPU. Основные подходы, архитектура, оптимизации»: http://compsciclub.ru/courses/gpucomputation/2017-spring/

[6] «Методы и системы обработки больших данных»: http://compsciclub.ru/courses/bigdatasystems/2017-spring/

[7] Материалы и видео курса.: http://compsciclub.ru/courses/idrisprogramming/2017-spring/?tab=classes

[8] Материалы и видео курса.: http://compsciclub.ru/courses/gpucomputation/2017-spring/?tab=classes

[9] «Коммуникационная сложность»: http://compsciclub.ru/courses/communicationcomplexity/2017-spring/

[10] «Экспандеры и их применения»: http://compsciclub.ru/courses/expanders/2017-spring/

[11] «Машинный перевод»: http://compsciclub.ru/courses/machinetranslation/2017-spring/

[12] «Избранные главы теории потоков»: http://compsciclub.ru/courses/networkflows/2017-spring/

[13] «Modern algorithms for parallel, streaming and query-based data processing»: http://compsciclub.ru/courses/dataprocessing/2017-spring/

[14] Семинар по сложности булевых функций: http://compsciclub.ru/courses/booleanfunctioncomplexity/2017-spring/

[15] филиал клуба: http://kzn.compsciclub.ru/

[16] сайте: http://compsciclub.ru/

[17] Источник: https://habrahabr.ru/post/326064/