Технологии хранения и обработки больших объёмов данных

Санкт-Петербург, весна 2015

Описание

Что будем делать

Курс предназначен программистам, желающим познакомиться с теоретическими и практическими аспектам технологий, связанных с хранением, обработкой, анализом больших объёмов данных и использованием их в приложениях. В основном будут рассматриваться технологии, ставшие массовыми относительно недавно, такие как распределённые файловые системы и NoSQL СУБД, но будут также затронуты возможности, предоставляемые привычными реляционных СУБД.

Входные пожелания

В материалах курса и домашних заданиях используются языки Python и Java, поэтому от слушателей требуется понимание элементарных конструкций этих языков и способность писать несложные программы, а также знание алгоритмов вообще. Знание реляционных СУБД и языка SQL тоже существенно облегчит восприятие некоторых тем курса. Опыт в использовании системы контроля версий, а именно Git и GitHub, существенно облегчит проверку домашних заданий

Как будем оценивать

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

  • [0..25]% : курс не сдан
  • (25..50]% : удовлетворительно
  • (50..75]% : хорошо
  • (75..100]% : отлично

Суммарные максимальные стоимости домашних работ и экзамена примерно равны, поэтому экстремальные случаи примерно такие (возможны вариации): * сдал все домашние задания на максимально возможный результат и на экзамен не пришел -- получил удовлетворительно * не делал ни одного домашнего задания, пришел на экзамен и набрал максимально возможный результат -- получил удовлетворительно * делал домашние задания на хорошо/отлично, на экзамене решил 3/4 всех задач -- получил отлично.

Опыты предыдущих лет показывают, что получить оценку отлично очень сложно.

Домашние задания

Домашние задания предполагают написание работоспособного читабельного кода на языках Python и/или Java. Условия появляются после лекции, решения должны быть присланы до установленного срока. Решение, присланное после срока, получает 50% от своей истинной оценки.

Видео

Видео всех лекций курса можно смотреть на страницах лекций или на канале CS центра на YouTube.

Контакты

Вопросы задавайте, пожалуйста, по электронной почте bigdata@barashev.net

Преподаватели

Список лекций

Лекция 1: Распределённые файловые системы

Поговорим о распределенных файловых системах. Рассмотрим основные аспекты их функционирования, немного затронем историю, подробнее углубимся в архитектуру G(oogle)FS, Apache HDFS и в некоторые интересные алгоритмы.

Распределенная параллельная обработка данных технологией Map-Reduce

Поговорим о том, что такое Map-Reduce, к каким задачам эту технологию можно применять и при каких условиях она будет эффективной. Повертим в руках игрушечный (но работающий!) Map-Reduce.

Не лекция. Пример экзаменационных заданий

В прицепленном файле находится кусочек прошлогоднего экзамена.