Технологии хранения и обработки больших объёмов данных
Санкт-Петербург, весна 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
Преподаватели
Список лекций
Поговорим о распределенных файловых системах. Рассмотрим основные аспекты их функционирования, немного затронем историю, подробнее углубимся в архитектуру G(oogle)FS, Apache HDFS и в некоторые интересные алгоритмы.
Поговорим о том, что такое Map-Reduce, к каким задачам эту технологию можно применять и при каких условиях она будет эффективной. Повертим в руках игрушечный (но работающий!) Map-Reduce.
В прицепленном файле находится кусочек прошлогоднего экзамена.