##(see the SpecSpec for an explanation) * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/edubuntu-quizzical * '''Created''': 2006-5-27 by RyanRousseau * '''Contributors''': RyanRousseau * '''Packages affected''': pyro, m2crypto == 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 ==== {{attachment:pqs-mockup.png}} * '''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.''' {{attachment:pqe-mockup1.png}} {{attachment:pqe-mockup2.png}} {{attachment:pqe-mockup3.png}} * '''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. {{attachment:pqe-mockup4.png}} === Student Client === {{attachment:psc-mockup.png}} * '''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