Обучающая машина mysql (обновления от 08.03.2008)

March 8, 2008Comments Off on Обучающая машина mysql (обновления от 08.03.2008)

Обучающая машина mysql (новая версия)



[/obmach/|Переход к обучающей машине ]

Дополнения к обучающей машине от 7.03.2008



Небольшие изменения в пользовательском интерфейсе. Дополнения к обучающей машине от 7.03.2008

Дополнения к обучающей машине от 4.03.2008



Добавлен еще один набор задач про космическое агенство. Также изменения в пользовательском интерфейсе. Дополнения к обучающей машине от 4.03.2008

Дополнения к обучающей машине от 3.01.2008



Добавлен еще один набор задач про торговую фирму (14 штук). Также изменения в пользовательском интерфейсе. Дополнения к обучающей машине от 03.01.2008

Почти полтора года назад я выложил в Интернете “обучающую машину mysql”. Первоначальный замысел был в том, чтобы дать возможность студентам, которые учились у меня по дисциплинам связанным с базами данных тренироваться (решать задачки) в командах отбора данных и их модификации. Обучающая машина представляет собой интерактивный метод проб. Вы читаете текст задания: “например, найти все товары, которые проданы за последние 3 месяца”. Затем вводите код sql-запроса (того, как вы думаете должен находить нужную информацию) и жмете кнопку “проверить”. Если выборки совпадают, то переходите к следующему вопросу, иначе думаете что же вы сделали не так. Если вы знаете что такое http://sql-ex.ru, то фактически это его младший брат, ориентированный на, именно, mysql. К сожалению, реального развития данный проект не получил по ряду причин. Первоначальная версия (с помощью которой мы проходили некоторые лабораторные работы) бала написана на java и если развернуть приложение в локальной сети трудностей не составляло, то при размещении в Интернет-е возникли технические и идеологические трудности. Тогда у меня возникла идея написать версию обучающей машины работающей на php (следовательно, это будет работать практически на любом хостинге), а клиентскую часть сделать на flash/flex, с целью минимизации пересылаемого трафика (значит, это будет работать быстрее) и возможности реализовать всякие удобные и красивые “плюшки”. Первая версия (она же стала и последней) была сделана осенью 2006г, после чего я выложил ее на старом хостинге (jino-net.ru) и благополучно забыл.

Новый этап начался зимой 2007г., когда я переехал на новый хостинг и занялся ревизией всех старых наработок. К моему удивлению оказалось, что обучающая машина живет, что ее каким-то чудом находят на сайте (система нигде не ‘рекламировалась’ кроме пары сообщений в форуме) и даже умудряются решать задачи с помощью ее. По состоянию на начало зимы 2007 в ней было зарегистрировано целых 97 человек (минус один – я, и еще пару пробных учетных записей) им даже они что-то решают. Как они умудряются решать задачи сформулированные корявым языком с орфографическими ошибками и иногда с неправильными решениями – мне не понять. Так что я решил привести проект в порядок, переписал пользовательский интерфейс, добавил средства статистики, обсуждения вопросов, голосования “оцени сложность задачи” и кое-что еще. Вопросов пока стало меньше, но по мере их “вычитки” они будут публиковаться на сайте.

Обучающая машина mysql (начальный релиз)

Краткое описание пользовательского интерфейса и прочая и прочая …



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



Не советую вводить в графу “email” всякую белиберду, если вы забудете пароль, именно по этому адресу будет отправлено письмо с восстановленным паролем.

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



После этого вы заходите на закладку “Вход в ‘обучающую машину’”, вводите в форму аутентификации свое имя и пароль. Если же пароль был забыт, то можно воспользоваться формой восстановления расположенной на этой же закладке. Просто отметьте checkbox “Я забыл пароль и хочу его восстановить”, в появимся окне введите код подтверждения и жмите кнопку “Заменить пароль на случайный и отправить его на указанный при регистрации email”. Вскоре после этого вам должно придти письмо с новым паролем.



Предположим, что пароль Вы наконец-то подобрали, после чего попадаете в “Свой Рабочий Кабинет”. Рабочий кабинет содержит сведения об успешности прохождения Вами некоторых наборов тестов.



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

В нижней части окна располагается текстовая область с краткой подсказкой о выбранной “пачке” задач.

Панель инструментов содержит слеующий функции:



“Выход из кабинета” – без комментариев.

“Редактировать профиль” – Вы попадете в форму, где можно изменить указанную при регистрации информацию. Там же вы можете указать какие из пройденных задач вы хотите сделать общедоступными (опубликовать) либо вы можете закрыть просмотр кем-либо информации об своих “успехах”.



Следующая функция в кабинете “Графики”. Так Вы попадете в форму просмотра графиков вашей успешности. Все дни, в течение которых Вы тренировались с “обучающей машиной”, будут представлены на графике по оси OX, а по оси OY будет отображена информация количестве ответов, которые Вы дали в ходе некоторого сеанса, а также сведения об их успешности.



Следующая функция кабинета “Просмотр Истории”. Вы попадаете в Архив, где хранятся сведения обо всех задачах, которые вы решали и о том какие запросы вы делали для этого.



Тут же вы можете, нажав на кнопку “Прочитать, что пишут другие пользователи об этой задаче”, попасть в диалоговое окно комментирования задачи. Любой пользователь обучающей машины может комментировать задачи (в простейшем случае написать мне сообщение, что в задаче обнаружена ошибка).



Вы можете редактировать или удалить сообщения оставленные Вами ранее.

Давайте снова вернемся в “Рабочий Кабинет” и рассмотрим последнюю и самую важную функцию “Начать/продолжить тестирование”. Так вы попадаете в “сердце” обучающей машины.



Интерфейс данного окна достаточно сложен и ориентируется на разрешение (1024*768 минимум). Давайте разберем его по частям:

1. Текстовая область, в которой расположена формулировка задачи, обычно “найти записи, которые ….”

2. Текстовая область, в которую вы должны вводить свой вариант ответа SQL- запроса. Обратите внимание на расположенные чуть выше кнопки: “Ответить на вопрос”, “Пропустить вопрос”, “ШАГ ВПЕРЕД” и “ШАГ НАЗАД”. Если назначение первых двух кнопок очевидно, то последние требуют пояснения. Дело в том, что каждый раз, когда вы вводите текст некоторой команды и посылаете ее на сервер, эта команда сохраняется в истории вводимых команд. С помощью кнопок “шаг вперед” и “шаг назад” вы можете перемещаться по истории команд и видеть тот текст запросов, который вы вводили ранее.

3. Нижняя часть формы разделена на две части. В каждой из них отображается сетка (DataGrid) с некоторым набором записей. Левая “сетка данных” содержит пример записей, которые должны быть в идеале отобраны. Правая же “сетка” содержит то, что “отобралось” у вас. Если что-то не совпадает, значит, задача была решена не верно.

4. Дерево в котором представлены объекты учебной базы данных. Отображаются таблицы и их поля. По двойному клику на узле дерева имя соответствующей таблицы или поля будет вставлено в текстовую область “2”.

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

6. Область “статуса”. В ней выводится сообщение о последней выполненной команде, именно здесь будет написано, что вы правильно решили или нет, некоторую задачу (также это сигнализируется картинкой-“иконкой”). Тут же обратите внимание, на критерии совпадения решений. Дело в том, что для успешного решения некоторых задач нужно совпадение не только отобранных записей, но важен и порядок следования записей в выборке (например, задачи на сортировки), может быть также важен порядок следования полей. Помните, что до тех пор пока вы не добьетесь полного совпадения с идеальным результатом задача считается не решенной.

7. Кнопка “Подсказка”. С ее помощью Вы можете получаете доступ к набору полезностей:



7.1. “Краткая подсказка о наборе задач”. По нажатию на эту кнопку будет отображена страница с небольшим пояснением об учебной базе данных.



7.2. Естественно, что подобного краткого описания совершенно недостаточно. Поэтому с помощью кнопки “Подсказка по модели данных, описание таблиц учебной базы данных” будет открыта отдельная html-страница с размещенной документацией (описания таблиц, их связей, а также полей таблиц)



7.3. Следующая функция меню “Подсказка” – “Что говорят другие люди об этой задаче”. Вы увидите уже знакомое вам изображение диалогового окна с перечислением всех примечаний, которые были данных другими пользователями обучающей машины данному тесту (вы можете добавлять собственные заметки и редактировать их в последствии).

7.4. Последняя функция меню “Подсказка” - “Ваш прогресс”. Позволяет одним взглядом окинуть список всех задач, того, сколько вы потратили на каждую сил и увидеть пример данных, которые нужно отобрать для решения задачи. Те задачи, которые вы уже решили, помечены зеленым цветом, те, которые вы пробовали, но не смогли еще решить – красным. Желтый цвет помечает те вопросы, до которых Вы еще не дошли. При наведении мыши на зеленый и красный вопрос появляется всплывающая подсказка с текстом вопроса и количеством попыток, которые вы затратили на него. Также если нажать на кнопку, то появится всплывающее окно, где отображаются, то какие записи должны были быть отобраны для решения задачи.