Overview
This is a list of item types and their attributes we want to support. At a later stage we are going to add the checks for each item_type to this page as well. This does not mean we are going to create all of them in the first shot. The attributes are *ONLY* those which are not already part of as_items and therefore should be dealt with in as_item_type_attributes (see Item Data Model for reference).
Specific Item Types
- Open Question
Open questions are text input questions for free text. For obvious reasons they cannot be auto corrected. The difference between an "Open Question" and a "Short Answer" Item is that Open Questions accept alphanumeric data from a user and only undergo manual "grading" by an admin user through comparison with "correct" values configured during Assessment authoring. Open Questions can either be short (textbox) or long (text area) elements in the html form. Here are several configuration options the authoring environment will support (in addition to many others, such as alignment/orientation, required/not required, etc etc):
- Size of the reply box: Radio buttons to set size of textbox: small/medium/large; or text area
- Prefilled Answer Box: richtext widget. The content of this field will be prefilled in the response of the user taking the survey -> stored as item_default
- Correct Answer Box: richtext widget. The person correcting the answers will see the contents of this box as correct answer for comparison with the user response. -> stored as feedback_text
- [NTH nice to have?]: Button to add predefined comments next to the correct answer box. This would be shown to the manual corrector to quickly choose from when manually scoring the answer. What kind of comments would these be? Should they be categorized entries in the "message" system that admin users would populate over time, that would be stuck into the authoring UI dynamically during Assessment creation?
- Short Answer Item:
Short Answer Items allow the user to give a short answer to an answer box, which could be automatically corrected. The questioneer can define what values are valid in each answer box and use various compare functions to compare the output. The creation of a short answer question will trigger entries into the as_item check tables. It also enables us to have Fill-in-the-blank items. In addition to supporting automated validation/grading, this item type differs from "Open Questions" in that only textboxes are supported -- meaning short answers, no text area essays.
- Number of Answerboxes: Integer Selectbox. This will control how many answer boxes the respondee will see. I don't agree here; there needs to be one answer box per Item; if a "question" involves more than one answer box, it is actually a group of Items that needs to be implemented as a Section of Items. So this selector needs to be in the section-edit UI, not item-edit.
- Upper/Lowercase: Radio boolean. This will control, whether we treat the response case sensitive when comparing it to the correct answers or not.
- The questioneer has the option to define multiple possible correct answers that will be matched with the response of the user in various ways. For each of the possible answers the following fields are given (among others):
- Answer: short_text. This contains the answer string that will be matched against the response
- Data type: integer vs real number
- Value in %: short integer: How many percentage points a match will awarded.
- Size: Integer Select: size of the input box (small, medium, large)
- Compare by: Select (equal, contains, regexp). This defines how the comparison between the answer string and the response shall happen.
- Optional Lower bound value; lower bound comparator
- Optional upper bound value; upper bound comparator
- Allow in answerbox: (multiple select box with "All" and the numbers from 1 to x where x is the number of answerboxes from above. For sure this only works with JS enabled :)). Defines the answerboxes the user can fill out that shall be matched with this answer. I don't follow this exactly, but I think the comments about Sections of Items above applies here also.
- Matching Item:
Matching questions are useful for matching some items on the left with pull down menues on the right hand side of a survey. The number of the items is identical to the number of items on the right hand side. This also appears to be a Section of Items; each Item consists of a single "phrase" against which it is to be associated with one of a set of potential choices (displayed via a select widget; could be radiobutton though too). If there are several such matchings (three phrases <-> three items in the popup select) then this is a Section with three Items. The UI for this needs to be in section-edit, not item-edit.
- Settings:
- Distribution of points: boolean (all or nothing / increasing). All or nothing will either give 100%, if all correct answers are given, or 0% else. Increasing will give (number of correct matches / number of total matches) *100% points.
- Allow negative: boolean (yes/no). This will allow a negative percentage as well (as the total result).
- A couple of match entries will be presented below the settings. Each one will consist of:
- Match item: This is the item which will be displayed on the left side of the question presented to the respondee.
- Matched item: This is the correct item from the select box on the right side. For each match item on the left there will be a select box on the right with ALL the matched items (when taking the survey, that is...)
- In addition to submit, there is another button to allow further answers to be filled in. Typed in values shall be remembered and 4 more answerboxes be shown.
- Settings:
- File upload item:
A file upload question will allow the respondent to upload a file. No additional attributes but the usual for every question.
- Multiple Choice items:
Multiple Choice questions allow the respondee to choose from multiple alternatives with the possibility to answer more than one at a time. This will also deal with True/False and Multiple response items.
- Settings:
- Allow Multiple: boolean (yes/no). This will determine if the respondee has the option to choose multiple possible answers for his response.
- Select Box: boolean (yes/no). Will display a select box or radio/checkbox otherwise.
- Distribution of points: boolean (all or nothing / increasing). All or nothing will either give 100%, if all correct answers are given, or 0% else. Increasing will give (number of correct matches / number of total matches) *100% points.
- Allow negative: boolean (yes/no). This will allow a negative percentage as well (as the total result).
- Correct answer: boolean, radio with grafik (red x, green y) (yes/no). This marks if the current answer is a correct one.
- Answer: Richtext widget. Need option to associate both/either a numeric value and a text value to each choice.
- Value: percentage value this answer gives to the respondee -- this is different from the "answer"
- Reply: richtext widget. This is a reply the student can see at the end of the test giving him some more information on the question he choose.
- CR_Item: cr_item. If we have an image it will be shown instead of the answer text. If we have a sound item, we will generate audio includes.
- In addition to submit, there is another button to allow further answers to be filled in. Typed in values shall be remembered and 4 more answerboxes be shown.
- [Additional Feature]: Possibility to randomly choose from the options. This would add a couple of fields:
- To each answer: Fixed position: Select Box, Choose the mandatory position when displaying the option (e.g. "none of the above").
- Number of correct answers: integer, defining how many correct options have to be displayed. Check if enough correct answers have been defined.
- Number of answers: integer, defining how many options shall be displayed in total (correct and incorrect). Check if enough answers are available.
- Display of options: Numerical, alphabetic, randomized or by order of entry.
- All radio button Items must have a "clear" button that unsets all the radiobuttons for the item. (For that matter, every Section and every Assessment also must have "clear" buttons. Fairly trivial with Javascript.)
- Settings:
- Rank question:
Rank questions ask for the answers to be ranked. This appears to me to be a special case of the "matching question" in which the select options are ordinal values, not arbitrary strings.
- Rank Type: Boolean (alphabetic, numeric). Shall the rank be from a to z or from 1 to n.
- Only unique rank: Boolean (yes/no). Shall the ranking only allow unique ranks (like 1,2,3,5,6 instead of 1,2,2,4,5)
- Straigth order: Boolean (alphabetic, numeric). Shall the rank be in a straigth order or is it allowed to skip values (1,2,3 vs. 1,3,4)
- For each answer we ask the following questions:
- Answer: Richtext widget.
- Rank: correct rank
- In addition to submit, there is another button to allow further answers to be filled in. Typed in values shall be remembered and 4 more answerboxes be shown.
- Matrix table (blocked questions):
The idea here is a "question" consisting of a group of questions. We include it here because to many users, this does appear to be a "single" question.
However, it is actually more appropriately recognized to be a "section" because it is a group of questions, a response to each of which will need to be separately stored by the system. Further, this is in fact a display option for the section that could reasonably be used for any Item Type. For instance, there are situations where an Assessment author may want to group a set of selects, or radiobuttons, or small textboxes, etc.
- Composite matrix-based multiple response item:
Same as the matrix table, but you have different choices that are displayed in each column.
- Composite multiple choice with Fill-in-Blank item:
Multiple Choice question with an additional short_text input field. Usually used for the "Other" thing
- Calculation:
This type of question will not be supported. But we should make sure we can take care of that type while importing the data from WebCT. Therefore we have to know the values. At a later stage, we will add more info on this.
- Formula: string
- Units
- Value (in %): integer
- Required (boolean)
- Ignore Space (boolean)
- Ignore spell checking (boolean)
- General Feedback: richtext
- Database question:
The answer to this question will be stored in the database. The concept here is to support bidirectional interchange of data between Assessment package tables and other package tables. Thus, while assembling an Assessment to send to a user, data may be pulled from some other table (eg users) to populate the Assessment form. And similarly, when the user submits the Assessment form, response data will be stored not only in Assessment entities (as_item_data eg) but also back in the other table (eg users). The question has the following additional fields:
- Table Name: short_string. This is the name of the table that is beeing used for storing the responses.
- Column: short_string. This is the column of the table that is used for storing the responses.
- Key Column: short_string. This is the column of the table that matches the user_id of the respondee.