Базы данных
Санкт-Петербург, осень 2020
Описание
Курс предназначен тем, кто хочет научиться использовать базы данных в своих приложениях. После его успешного прохождения вы научитесь:
- проектировать схему несложной базы данных
- писать нетривиальные запросы
- эффективно использовать базу данных из веб/десктоп приложений
Курс состоит из нескольких модулей, и вы можете, в зависимости от вашего нынешнего уровня знакомства с базами данных, начать слушать его не с начала, а со второго или третьего модуля. В конце каждого модуля будет контрольная работа, которую нужно проходить, даже если ваш уровень знаний позволял вам не посещать занятия модуля.
Основные модули курса
- Основы языка запросов SQL. Небольшой модуль, предназначенный для тех, у кого нулевой опыт. Вы научитесь писать запросы, делающие выборку с агрегациями из одной-двух таблиц.
- Проектирование схемы. Как правильно разложить данные по таблицам так, чтобы снизить вероятность появления аномалий.
- Общение с СУБД из приложения. Шаблоны и антишаблоны взаимодействия приложений с СУБД, эффективность приложения, корректность его работы и поддерживаемость его кода.
Возможно, если позволит время, в конце курса появятся дополнительные модули, охватывающие другие темы.
Концепция
Конечной целью всего курса будет построение простого веб приложения, использующего базу данных. С каждым занятием мы будем к этой цели приближаться.
Занятия будут построены по принципу перевернутого класса. Перед очередной нашей встречей в зуме нужно будет просмотреть теоретическую основу на Степике (ссылка для записи), а основной деятельностью во время занятия будет парное программирование очередной части веб приложения.
Оценки
За курс будет ставиться оценка, которая складывается из баллов за контрольные работы и аудиторную работу во втором и третьем модулях. В первом модуле аудиторная работа не оценивается. Формула:
5 * (
0.75 * (сумма баллов за контрольные / максимум баллов за контрольные) +
0.25 * (сумма баллов за аудиторные занятия / максимум баллов за аудиторные занятия)
)
Полученное множество вещественных чисел в интервале [0, 5] будет прокластеризовано методом k-means на 4 или 5 кластеров, соответствующих целочисленным оценкам.
Правила парного программирования
- Пара состоит из сеньора и джуна. Сеньором в паре будет студент, который уже работал в качестве джуна над данным проектом в прошлый раз. Джуном будет студент, который в прошлый раз работал в качестве сеньора над другим проектом.
- Следствие: роль каждого конкретного студента будет меняться каждую неделю. Неделю назад был джуном -- сегодня будешь сеньором, и наоборот.
- Второе следствие: проект каждого конкретно студента будет меняться каждые две недели. Сначала ты на проекте джун, потом сеньор, потом ты джун в другом проекте.
- Джун будет выбираться сеньору по возможности случайным образом в начале занятия.
- В паре основная задача джуна -- писать код. Основные задачи сеньора -- отвечать на вопросы джуна, объяснять смысл тех или иных решений и вести проектный журнал. Совместно сеньор и джун могут принимать новые технологические решения, менять старые, травить анекдоты, гуглить и прочее.
- to be continued...
Контактная информация
- Контестный сервер: http://contest.barashev.net
- Slack: канал #data-bases_20-21 для оперативных обсуждений
- Электронная почта:
csc@barashev.net
для остальных случаев. Пожалуйста, избегайте личной переписки, если тема обсуждения может быть интересна не только вам.