|
|
Line 45: |
Line 45: |
| still reporting progress to the instructor using the XS services. | | still reporting progress to the instructor using the XS services. |
| | | |
− | ===Data Model===
| + | [[Math4Team/RIT/Projects/Question_Support_API/Data_Model|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.)
| |
− | [[Image:QuestionERDiagram.PNG|left]] | |
− | Authorship and history attributes for Questions could be provided through a new Person ID field in Questionnaire and recursive links.
| |
− | : The Moodle [http://docs.moodle.org/en/Development:Question_database_structure Question database structure].
| |
− | ====Table Dictionary====
| |
− | {{Definition_table
| |
− | |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.
| |
− | }}
| |
− | ====Questionnaire====
| |
− | {{Definition_table
| |
− | |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
| |
− | }}
| |
| | | |
− | ====Question====
| + | [[Math4Team/RIT/Projects/Question_Support_API/API_Design|API Design]] |
− | {{Definition_table
| |
− | |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
| |
− | }}
| |
− | ====Answer====
| |
− | {{Definition_table
| |
− | |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
| |
− | }}
| |
− | ====AnswerType====
| |
− | {{Definition_table
| |
− | |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
| |
− | }}
| |
− | ====Survey====
| |
− | {{Definition_table
| |
− | |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).
| |
− | }}
| |
− | ====Response====
| |
− | {{Definition_table
| |
− | |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
| |
− | }}
| |
− | | |
− | ====School====
| |
− | {{Definition_table
| |
− | |ID | primary key
| |
− | |School | School or organizational name
| |
− | }}
| |
− | ====Person====
| |
− | {{Definition_table
| |
− | |ID | primary key
| |
− | |Last Name | Family name for Person
| |
− | |First Name | Primary name for Person
| |
− | }}
| |
Question Support API
Project Information
Motivation
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
API Design