Базы данных

Санкт-Петербург, осень 2020

Описание

Курс предназначен тем, кто хочет научиться использовать базы данных в своих приложениях. После его успешного прохождения вы научитесь:

  • проектировать схему несложной базы данных
  • писать нетривиальные запросы
  • эффективно использовать базу данных из веб/десктоп приложений

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

Основные модули курса

  1. Основы языка запросов SQL. Небольшой модуль, предназначенный для тех, у кого нулевой опыт. Вы научитесь писать запросы, делающие выборку с агрегациями из одной-двух таблиц.
  2. Проектирование схемы. Как правильно разложить данные по таблицам так, чтобы снизить вероятность появления аномалий.
  3. Общение с СУБД из приложения. Шаблоны и антишаблоны взаимодействия приложений с СУБД, эффективность приложения, корректность его работы и поддерживаемость его кода.

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

Концепция

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

Занятия будут построены по принципу перевернутого класса. Перед очередной нашей встречей в зуме нужно будет просмотреть теоретическую основу на Степике (ссылка для записи), а основной деятельностью во время занятия будет парное программирование очередной части веб приложения.

Оценки

За курс будет ставиться оценка, которая складывается из баллов за контрольные работы и аудиторную работу во втором и третьем модулях. В первом модуле аудиторная работа не оценивается. Формула:

5 * (
  0.75 * (сумма баллов за контрольные / максимум баллов за контрольные) +
  0.25 * (сумма баллов за аудиторные занятия / максимум баллов за аудиторные занятия)
)

Полученное множество вещественных чисел в интервале [0, 5] будет прокластеризовано методом k-means на 4 или 5 кластеров, соответствующих целочисленным оценкам.

Правила парного программирования

  1. Пара состоит из сеньора и джуна. Сеньором в паре будет студент, который уже работал в качестве джуна над данным проектом в прошлый раз. Джуном будет студент, который в прошлый раз работал в качестве сеньора над другим проектом.
    1. Следствие: роль каждого конкретного студента будет меняться каждую неделю. Неделю назад был джуном -- сегодня будешь сеньором, и наоборот.
    2. Второе следствие: проект каждого конкретно студента будет меняться каждые две недели. Сначала ты на проекте джун, потом сеньор, потом ты джун в другом проекте.
  2. Джун будет выбираться сеньору по возможности случайным образом в начале занятия.
  3. В паре основная задача джуна -- писать код. Основные задачи сеньора -- отвечать на вопросы джуна, объяснять смысл тех или иных решений и вести проектный журнал. Совместно сеньор и джун могут принимать новые технологические решения, менять старые, травить анекдоты, гуглить и прочее.
  4. to be continued...

Контактная информация

  • Контестный сервер: http://contest.barashev.net
  • Slack: канал #data-bases_20-21 для оперативных обсуждений
  • Электронная почта: csc@barashev.net для остальных случаев. Пожалуйста, избегайте личной переписки, если тема обсуждения может быть интересна не только вам.

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