Difference between revisions of "Math4Team/RIT/Projects/Question Support API"
Line 14: | Line 14: | ||
** Documenting Dependencies and how to enable them in a development environment (Simple tutorial on setting up your Question API Development Environment) | ** Documenting Dependencies and how to enable them in a development environment (Simple tutorial on setting up your Question API Development Environment) | ||
− | + | ;;* (This information will be turning into a new wiki page on "Development for Linux / Python / Sugar Newbies!" | |
*** sudo apt-get install python-setuptools | *** sudo apt-get install python-setuptools | ||
*** sudo easy_install pyparsing | *** sudo easy_install pyparsing |
Revision as of 09:22, 15 May 2009
Question Support API
Project Information
Primary Project Contact | Greg Stevens | |
Project Members | Greg Stevens, Jameson Finney, Brian Long, TODO: Add yourself here... | |
Source Repository | http://git.sugarlabs.org/projects/question-support-api |
Current Goals
- Documentation
- Packaging
- Documenting Dependencies and how to enable them in a development environment (Simple tutorial on setting up your Question API Development Environment)
- (This information will be turning into a new wiki page on "Development for Linux / Python / Sugar Newbies!"
- sudo apt-get install python-setuptools
- sudo easy_install pyparsing
- sudo easy_install peak-rules
- sudo easy_install sqlalchemy
- Question Authoring guidelines
- Integrate within lesson planning
- How does an instructor get the questions they have written/found into an Activity?
- Liase w/ other Math4 teams and Sugarlabs (What would it take to be included in the Sugar core?)
- Future Development (Needs / Wants — collect proposals from other teams)
- Discovery / Plugin (How do activities find questions, i.e. how to get URIs to load questions from?)
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.
Current Status
Currently, (14 May 2009) the API supports parsing the GIFT file format well enough to import Multiple Choice and True/False questions, along with complete implementations for basic functionality of the corresponding question objects. No support for partial credit answers is currently implemented, nor are other question types working correctly (though most can be parsed to some extent). Export to CSV works as intended, though it is intentionally simple. Documentation on usage and integration of the API into an activity is in the doc/ directory of [the repository]. A simple, but complete usage example, using a console interface is available in tests/complete_test.py.
Education Standards
As a general API and not a standalone Activity, along with the nature of the API in specific, this project does not directly address any specific education standards or learning outcomes. It is reliant on educators to write questions, or have questions available to them in usable formats. As such, the potential educational standards this project could help to meet includes **any** standard where drilling or question/response evaluation is appropriate. (This includes a wider range of topic areas than the Math4 focus, even.)
Milestones
- Initial Prototype Phase (1)
- Simple implementation, data model not yet nailed down, focus on import and utility to question *consumers*, Like Activities. Initial formats to include MoodleXML, GIFT.
- Rigorous Design Phase (2)
- Nail down the data model, including developing the 'native' format, probably using a sqlite file mechanism, or other database support, if possible. Freeze the Question object (in terms of required properties, etc.), finalize decisions about URLs for question aquisition. Make sure requirements of other projects *can* be met by the design at this stage.
- Full Implementation Phase (3)
- Complete the implementation of the import formats, including the 'native' format. Should be usable to other Activity developers at this point (hopefully useful, before now, but all needs should be filled at this point). Export implementation should start now, along with prototyping for an authoring activity. (Collaboration with the reporting team *needs* to happen at this point, as the activity will probably be combined with reporting tools.)
- Activity Development Phase (4)
- Complete the authoring/reporting activity for the teachers, allowing export to file formats (and possibly *serving* the questions to other XOs; requires support in activities (using the API) to support).
Community Contacts
User:FGrose, User:Tony37 (see talk page)
RIT Project Usage
Produce Puzzle | No API need or usage. | |
Lemonade Stand | No API need or usage. | |
Assimilate | API Usage needs documented on talk page. Progress not far enough to start implementation using the API. | |
Fun Towers | No API need or usage. | |
Reporting Team | Simple export format documented at API Design. Futher integration work would be nice, but there is more work than could be done in a year along these lines (and neither team is prepared to embark on it). | |
Muthris | No contact from? Probably no API need or usage. |