Math4Team/RIT/Projects/Question Support API

From Sugar Labs
< Math4Team‎ | RIT‎ | Projects
Revision as of 14:02, 17 April 2009 by Enimihil (talk | contribs) (Add general project information.)
Jump to navigation Jump to search

Question Support API

Project Information

Primary Project Contact Greg Stevens
Project Members Greg Stevens, TODO: Add yourself here...
Source Repository


In the RIT class working on the Math4 projects, many proposed activities require a question database of some kind. A common API or library for accessing databases in different formats, stored either locally or remotely, along with a simple mechanism to determine more complex formatting or presentation than simple text (e.g. to include simple graphics or mathematical notation) would cover a majority of the cases where the activity needs some configurable "curriculum data".

Eventually this library could be extended to provide hints, explanations, or walkthroughs for questions, in addition to the basic metadata about level, grouping, difficulty, and subject matter that would be part of the base system.

Envisioned Usage

Consider a simple flash-card-like activity. It presents a question from a list of questions, allows the student to select an answer from the provided answers for the question or to enter their own answer. Then the correct answer is revealed and the student it told whether their answer is correct. If the question has an explanation of the correct answer, the flash-card activity will show the explanation of the correct answer. (Note that this is just a simple usage example, the interaction design of a drilling activity could be very different.)

The flash-card activity would use this proposed Quiz API for the following:

  • Loading the questions from the storage location into memory. This includes any filtering or network lookup to download the questions from a remote resource and select appropriate questions for the student.
  • Determining whether the student has entered a correct answer.

To start with, the library would simply be a time-saving tool for developers needing similar functionality, but as the XS (School Server) becomes more fully developed the library should integrate the functions provided by the XS to enable automated update of course material for the current topic of study so the students can drill material using any tool they prefer, while still reporting progress to the instructor using the XS services.

Data Model

A potential data model: (It was built for a corporate medical department's medical records. I've already renamed Clinic and Provider to School and Teacher.)


Authorship and history attributes for Questions could be provided through a new Person ID field in Questionnaire and recursive links.

The Moodle Question database structure.

Table Dictionary

Questionnaire A collection of questions that might be used in a Survey, Quiz, Exam, etc.
Question A problem seeking an answer
Answer A potential solution to the problem
AnswerType The class of answer suitable for the problem or question
Survey An event instance of collecting Answers to Questions or problems
Response An event instance of the Student providing an answer to a question on a Survey or Quiz, etc
School An organization
Person An individual, such as a Teacher, Student, etc.


ID primary key
Title Short name for questionnaire
Category Classifier ID, the ID of a Questionnaire class or category of Questionnaire
Notes Description, Image link, rich format data
StartDate Effective date for this instance of the Questionnaire
EndDate Expiry date of this instance


ID primary key
Questionnaire ID of parent questionnaire
Sequence number to order question among questions on questionnaire
Question text problem statement
AnswerType ID of the suitable answer type
Jump conditional number to redirect survey question sequence
Notes Description, images, rich format data
StartDate Effective date of this question instance
EndDate Expiry date of this instance


ID primary key
Question_ID ID of parent question
Sequence number to order answer among answer choices for question
Answer text of solution or answer
Notes Description, images, rich format data
StartDate Effective date of this answer instance
EndDate Expiry date of this instance


ID primary key
AnswerType text for the class of answer. Example, text, numeric, multiple choice, tabular, yes/no, etc.
Category ID for class of answer type


ID primary key
BaseID ID of parent Survey. Used to identify families of Surveys, such as version
School ID of the School or organization sponsoring this Survey instance
Teacher ID of Person extending this instance of the survey or quiz
Student ID of the Person taking this instance of the survey or quiz
Notes Description, images, rich format data for this instance of the survey or quiz
DateTime DateTime that this Survey instance was taken
ReviewDate Date that this Survey instance was reviewed by the Teacher
ChangeDate Date that this instance of the Survey was changed (reasons are provided in the Response record).


ID primary key
Answer_ID ID of selected answer (when one of a choice)
Question_ID ID of the Question instance for this Response instance
Survey_ID ID of the parent Survey or Quiz instance for this Response
Response text of Response
ResponseValue numerical Response
Notes Description, images, rich format data for this Response
ChangeDate DateTime that this instance of the Survey was changed, i.e., initial response, update by Student, override by Teacher, etc.
ChangePerson ID of Person who changed this Response instance, i.e., Student, Teacher
ChangeReason text reason this Response instance was changed, i.e., initial response, update by Student, override reason


ID primary key
School School or organizational name


ID primary key
Last Name Family name for Person
First Name Primary name for Person