Базы данных

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

Описание

Одно строкой: прошел онлайн курс и написал убедительный код в CSC -- получил зачёт.

Краткое содержание

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

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

Концепция

Курс построен по принципу узнай минимум, попробуй что-то сделать, узнай как можно сделать лучше. Каждая неделя курса состоит из

  • Аудиторного занятия, на котором даётся введение в очередную тему, минимально необходимое количество материала и небольшое практическое упражнение для механического закрепления навыков (программировать надо будет, да).
  • Домашнего задания, в котором нужно сделать первоначальное решение более сложной практической задачи. Желательно сделать это до мягкого дедлайна (обычно вечер воскресенья). Скорее всего, у новичка это решение будет не самым лучшим и это будет считаться нормальной ситуацией.
  • Очередного модуля онлайн-курса, дающего больше информации о тонкостях выполнения домашнего задания. Вполне возможно, что после просмотра очередного модуля, появится желание переделать домашнее задание полностью. Это тоже будет считаться нормальной ситуацией. Переписывать код домашнего задания можно.
  • Короткого обзора обнаруженных затруднений и ошибок в начале очередного аудиторного занятия.

Несколько недельных итераций будут объединены в этап. Результатом этапа будет работоспособная система, код которой написан и переписан вами пару раз. Этот код будет проходить рецензирование преподавателей.

Онлайн курс

Онлайн курс Погружение в СУБД 2017 на Степике будет давать более глубокие знания по пройденному материалу. Очередной модуль, который может оказаться полезным для выполнения домашнего задания, будет открываться одновременно с мягким дедлайном (да, его нужно смотреть после того как вы напишете первоначальное решение). Этот курс обязателен для получения зачёта.

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

Что и как оценивается

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

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

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

Дедлайны

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

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

Технические средства

Необходимые навыки: умение писать код на Python, Java или Kotlin и умение пользоваться git'ом в рамках git pull, git checkout, git add, git diff, git commit, git push.

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

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

Введение в SQL

Административная информация и введение в основные концепции и простейшие конструкции языка SQL.

Урок на Степике с заданиями: https://stepik.org/lesson/54670/step/3

API для доступа к базе данных из приложений

В архиве находятся:

  • HomeProjects.sql - перечисление типичных недостатков домашних проектов на сегодняшний день
  • gen_schema.sql - схема и генератор данных для таблиц Spacecraft,Planet,commander,Flight
  • app.py - код на Python 2, использующий DB-API
  • JDBC/ - код на Java, использующий JDBC
Триггеры

Как добавить себе в таблицы подземные стуки.

Ключ-значение и JSON

Что делать, если нужно в реляционной СУБД хранить нереляционные данные