• Организация обучения по решению олимпиадных задач?

    @grigorym
    Есть мнение, что нужна система, которая позволяет не писать обязательно весь код программы целиком, но заполнять лакуны в уже более или менее написанной программе. Со временем, лакуны могут становиться все больше и больше. Так дети будут меньше пугаться. Мы как-то делали такую систему (на вебе) с дипломником, но дело было давно, и это студенческая работа, сами понимаете. Но идея, по-моему, неплохая.
    Ответ написан
    Комментировать
  • Университетский курс «Базы данных». О чем?

    @grigorym
    Веду курс по БД в университете, один семестр второго курса, 12 лекций, много лаб и курсовая. Последовательность подавания материала примерно такая:
    0. Байки о том, что БД — это хлеб программиста, и описание всех полученных за последнюю неделю просьб найти oracle-программиста для банка на NNN тыщ рублей в месяц :)
    1. Вступление, общее описание проблемы, немного истории. (0.5 лекции)
    2. Табличное представление данных сразу на примере: рисуем огромную денормализованную таблицу с проданными билетами в кинотеатр и начинаем думать о том, что в ней не так, и как это исправить. Студенты сами называют слова «дублирование», «противоречивость» и пр., и сами придумывают, как эти проблемы решать (разбиение на таблицы); рождаются (пока неформально) понятия первичного ключа и внешнего. Это самый важный раздел, я считаю — здесь мы учимся проектировать реляционные БД на примере нетривиальной БД кинотеатра. Здесь же обсуждаются и многие концептуальные вопросы БД на примере того же кинотеатра. (1-1.5 лекций)
    3. Реляционная модель данных: формальные определения, обозначения, и определения первичных и внешних ключей и функциональных зависимостей; NULL и трехзначная логига (1 лекция) (1 лекция)
    4. Нормальные формы 1-3 и НФБК, формальные определения и процедура нормализации. (1 лекция)
    5. Транзакции и параллелизм (описание проблематики, возможные подходы к решению). (0.5 лекций)
    6. Язык SQL: DDL, DML (insert-update-delete), транзации. (1 лекция)
    7. Язык SQL: select: from, where, select. (0.5 лекции)
    8. Язык SQL: соединение, группировка, мелочи (union-minus, exist, outer join). (1 лекция)
    9. Язык SQL: подзапросы (в from, в where, в select). (1 лекция)
    10. Язык SQL: сложные подзапросы, решение задач выборки реляционных данных (1-1.5 лекции)
    11. Процедурные расширения: процедуры, функции, триггеры (0.5 лекции)
    12. Индексирование: что такое индекс, как и для чего он работает (0.5 лекции)
    13. Прочие объекты схемы Oracle: последовательности (и вообще проблема уникальности), обзоры, снапшоты, временные таблицы и т.д. (0.5 лекции)
    14. Инфологическое моделирование (0.5 лекции)
    15. Нереляционные БД (1 лекция)
    Ответ написан
    1 комментарий