Spec

Summary

Quizzical aims to provide a Quiz/Exam System to be used (in conjunction with Amenity) in classrooms and to be included in Edubuntu.

Rationale

Effective, easy-to-use educational software needs to provided to aid in the adoption of Edubuntu and OSS in the education world. Open source counterparts of commercial products are very important in this respect.

There are many quiz programs/games included in Edubuntu (mostly in Edutainment), but they are usually a part of KDE's Edutainment and require KDE libraries. They also tend to focus only on one subject. A subject agnostic system is needed to allow educators to create computerized quizzes or exams for use in the classroom.

Glossary

  • Quiz/Test/Exam refers to the computerized quiz that an educator creates and makes public to a class.

  • Question refers to the object that represents a question in a quiz. Question types include but are not limited to:

    • Multiple Choice

    • True/False

    • Fill in the blank

  • A Roster is a group of student profiles used to determine who can connect to open quizzes. This was called a Class, but the name was changed to avoid confusion.

Use cases

  • Jack, an elementary school teacher, wants to create and manage quizzes for his students. He uses Quizzical to set up quizzes and profiles for his students.
  • Joanne, a school teacher, uses Amenity in her classroom. She wants to quiz her students on the activities they complete. She uses Quizzical to create quizzes. She already has student profiles set up in the classes used by Amenity, and Pike can use the same classes and profiles.
  • Joe, a school district administrator wants to distribute standard exams throughout his district so that scores can be compared among schools. He forms a committee to create the exams through Quizzical.
  • Jennifer, a high school student, wants to create quizzes to help herself study for midterm exams. She uses Quizzical to create and take quizzes for herself.

Scope

  • Quizzical will be using the Pyro Nameserver and Eventserver so the pyro package may need to be included in the main repository.
  • For the Pyro Nameserver and Eventserver to run with SSL support, the packages m2crypto and openssl need to be installed. openssl is currently in the main repository, but m2crypto will also need to be moved from the universe to the main repository.
  • A new package containing a python module named education will be created. This module will contain models such as Class and Student that will also be used in the Amenity project. The education module will also contain the quizzical module, which contains all of the models used in this project.

  • Most of the Python GTK and Gnome bindings are included in Ubuntu, so these packages will probably not be altered.

Design

Teacher Client

Quiz System Window

  • New toolbar button opens the Quiz Editor Window with a new Quiz.

  • Edit toolbar button opens the Quiz Editor Window with an existing Quiz, chosen from a gtk File Chooser Dialog.

  • Open toolbar button creates a session with an Quiz and a class chosen by the user and places it under inactive in the quizzes tree.

  • Save toolbar button saves the state of the selected session.

  • Delete toolbar button deletes the selected session and it's saved state file.

  • The Quiz Info tab displays information of the selected quiz.

  • The Students tab displays each student's status with respect to the selected quiz.

Quiz Editor Window/Druid

These mockups were made with glade, but glade doesn't handle Gnome Druids well enough in my opinion. I will probably hard code the Druid.

  • Add button creates a new Question of the chosen type, opens the Question editor dialog for that type, and adds the question to the questions tree.

  • Delete button removes the currently selected question from the quiz.

  • Up button moves the currently selected question up in the quiz order.

  • Down button moves the currently selected question down in the quiz order.

Student Client

  • Connect toolbar button opens a dialog that allows a student to connect to a session at a site (teacher's computer).

  • First toolbar button will bring the student to the first question.

  • Back toolbar button will bring the student to the previous question.

  • Forward toolbar button will bring the student to the next question.

  • Last toolbar button will bring the student to the last question.

  • There will be a Submit button that will allow the student to send his answers to his teacher. It could be on the toolbar or on the last question's display.

Implementation

Deliverables

  • Python module containing common education models/classes shared by Quizzical and Amenity
  • Python module containing models/classes exclusive to Quizzical
  • Complete PyGTK applications utilizing these models
    • Quizzical Teacher Client
    • Quizzical Student Client
  • Method of importing/exporting Quizzes

Code

  • Technologies used
    • Python
    • PyGTK
    • Pyro

Data preservation and migration

Outstanding issues

BoF agenda and discussion

Comments

  • Cool idea. A suggestion would be to use 2 panes for the "Quiz Editor", the first containing a list of the questions (order, first few words, type of question), the second containing the details. The tree view is confusing and limits how much data you can display on each line. -- Quartz

    • Thanks for the suggestion. I think that is a good idea also, and it will probably remove the need for dialogs to edit the questions. The mockups were the first UI that came to mind, and will probably change over the course of the summer. -- RyanRousseau


CategorySpec

Quizzical/Spec (last edited 2008-08-06 16:35:43 by localhost)