<HTML>
<HEAD>
<TITLE>Re: [math4] FourthGradeMath Digest, Vol 2, Issue 41</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:14pt'>Will dl it tomorrow and give it a try. Can see from the description it does widen and deepen a simple flash card activity and take advantage of the platform way beyond just displaying a card on a screen. I know we have some folks in the discussion who have 4th grade testers available. This looks worthy of running by them once we’ve tried it for stability and perhaps added some of the appropriate math content.<BR>
<BR>
<BR>
On 3/30/09 9:47 PM, "Wade Brainerd" <<a href="wadetb@gmail.com">wadetb@gmail.com</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:14pt'>Arriving late to the discussion....<BR>
<BR>
Has anyone tried Assimilate (<a href="http://wiki.laptop.org/go/Assimilate">http://wiki.laptop.org/go/Assimilate</a>)? It's a flash card activity for the XO that features collaboration and some kind of an optimized learning system. I just wonder if anyone has tried it and can speak to how good it is for the target age group.<BR>
<BR>
Second, it hasn't been bundled as a .xo file yet, but I encourage people to check out Peter Moxhay's early Math work at <a href="http://git.sugarlabs.org/projects/math">http://git.sugarlabs.org/projects/math</a>.<BR>
<BR>
Cheers,<BR>
Wade<BR>
<BR>
On Mon, Mar 30, 2009 at 9:32 PM, Stephen Jacobs <<a href="itprofjacobs@gmail.com">itprofjacobs@gmail.com</a>> wrote:<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:14pt'>I've brought two kids up through fourth grade in the last few years and<BR>
agree that there is absolutely a place for memorization.<BR>
<BR>
No disagreement with what you state below. Reread my comments and see that<BR>
I'm not down on drillware. I'm down on using a computer to merely display<BR>
flashcards and uninspired drilling software that doesn't exploit the power<BR>
of the platform.<BR>
<BR>
Nor was I suggesting that we give students an exploratory/active learning<BR>
tool without any formulas and/or guides to achieve their answers. I<BR>
suggested we give them tool sets to visually and (kinda) physically<BR>
manipulate and employ math concepts in the same way that Montessori and<BR>
Piaget and their followers have been doing for decades and had great success<BR>
with. These approaches make math applied as well as conceptual and<BR>
accessible to a wide variety of child learning styles beyond a text-bound<BR>
abstract. Especially when some of the curriculum items are geometry, which<BR>
should be an applied math at this age.<BR>
<BR>
What you've described below is much more than just a flash card, right? And<BR>
why not make what you've described collaborative, so that they are working<BR>
in teams to reach the goal? What if it takes a co-pilot and a pilot to<BR>
drive the ship and each of them work on different types of problems, and<BR>
then they have to switch, and on and on and on. You can still track their<BR>
individual progress even if they work in teams.<BR>
<BR>
On 3/30/09 9:05 PM, "Kathy Pusztavari" <<a href="kathy@kathyandcalvin.com">kathy@kathyandcalvin.com</a>> wrote:<BR>
<BR>
> Why not? Because at some point some things are simply a drill item. Once<BR>
> you understand count bys (2,4,6,8) you memorize your math facts and do it<BR>
> with TIMINGS. Not everything can be taught efficiently (or even well)<BR>
> through discovery learning. Lord knows I've seen 4th graders that don't<BR>
> know their multiplication math facts. Teaching them functions withing small<BR>
> sets of simple multiplication facts was very limiting. Let's not even get<BR>
> into addition math facts - that they did not know. These are TYPICAL 4th<BR>
> graders taught using - you guessed it - discovery math.<BR>
><BR>
> Please don't.<BR>
><BR>
> You want to make it fun? Use Precision Teaching and chart their math fact<BR>
> progress. When they are done, show shooting stars, a rocket blasting off -<BR>
> maybe the class can have a small party when a student finishes all math<BR>
> facts. If they get a high score on a particular timing, add an extra part<BR>
> of a picture so they can see it quicker. There are all sorts of behavioral<BR>
> motivators that can be incorporated into the XO.<BR>
><BR>
> -Kathy<BR>
><BR>
> -----Original Message-----<BR>
> From: <a href="fourthgrademath-bounces@lists.sugarlabs.org">fourthgrademath-bounces@lists.sugarlabs.org</a><BR>
> [<a href="mailto:fourthgrademath-bounces@lists.sugarlabs.org">mailto:fourthgrademath-bounces@lists.sugarlabs.org</a>] On Behalf Of Stephen<BR>
> Jacobs<BR>
> Sent: Monday, March 30, 2009 5:57 PM<BR>
> To: <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
> Subject: Re: [math4] FourthGradeMath Digest, Vol 2, Issue 41<BR>
><BR>
> Re the "Math API," really consider what's going to make the difference and<BR>
> leverage the XO's use.<BR>
><BR>
> Merely making a "flash cards" or "Quizing" program doesn't really buy you a<BR>
> whole lot. You don't need a computer to create Flash cards or quizes.<BR>
><BR>
> The benefits of doing things on a computer should be exploited. This is<BR>
> where most drillware fails to be educational or motivational. In the XO's<BR>
> case you have the other advantage of a platform that will easily support<BR>
> collaborative work.<BR>
><BR>
> Instead of a flash card or a quiz that shows a diagram and asks a question,<BR>
> why not single or shared apps that allow students to manipulate objects and<BR>
> symbols to arrive at an answer. Much more interactive, constructive and<BR>
> developmentally appropriate, since kids in the OLPC age group are born<BR>
> experimenters. Give them 2D environments to manipulate to take them way<BR>
> beyond the digital equivalent of a printed piece of cardboard.<BR>
><BR>
> Also Brian, remember that we're in a conceptual design and prototyping stage<BR>
> in an 18 month long development timeline. At this point one of the most<BR>
> useful things that can be done is to create "10 small apps that don't make<BR>
> it out of a beta stage"<BR>
><BR>
> A technologist's first instinct is to "build the tech!" When you are<BR>
> building educational software (and really any content-based software,)<BR>
> prototyping various approaches and running them by your target audience is<BR>
> crucial to the success of your development effort.<BR>
><BR>
> Those 10 small apps that test various methods of displaying objects and<BR>
> symbols for students to experiment with object manipulation and formulas<BR>
> tell you which directions to move in to make the right software to go beyond<BR>
> alpha down the appropriate delivery for the content and the audience :-)<BR>
><BR>
><BR>
> On 3/29/09 10:06 AM, "<a href="fourthgrademath-request@lists.sugarlabs.org">fourthgrademath-request@lists.sugarlabs.org</a>"<BR>
> <<a href="fourthgrademath-request@lists.sugarlabs.org">fourthgrademath-request@lists.sugarlabs.org</a>> wrote:<BR>
><BR>
>> Send FourthGradeMath mailing list submissions to<BR>
>> <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
>><BR>
>> To subscribe or unsubscribe via the World Wide Web, visit<BR>
>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>> or, via email, send a message with subject or body 'help' to<BR>
>> <a href="fourthgrademath-request@lists.sugarlabs.org">fourthgrademath-request@lists.sugarlabs.org</a><BR>
>><BR>
>> You can reach the person managing the list at<BR>
>> <a href="fourthgrademath-owner@lists.sugarlabs.org">fourthgrademath-owner@lists.sugarlabs.org</a><BR>
>><BR>
>> When replying, please edit your Subject line so it is more specific<BR>
>> than "Re: Contents of FourthGradeMath digest..."<BR>
>><BR>
>><BR>
>> Today's Topics:<BR>
>><BR>
>> 1. Re: Quiz/Question API Proposal (Frederick Grose)<BR>
>> 2. Re: Quiz/Question API Proposal (Karlie Robinson)<BR>
>><BR>
>><BR>
>> ----------------------------------------------------------------------<BR>
>><BR>
>> Message: 1<BR>
>> Date: Sat, 28 Mar 2009 17:39:21 -0400<BR>
>> From: Frederick Grose <<a href="fgrose@gmail.com">fgrose@gmail.com</a>><BR>
>> Subject: Re: [math4] Quiz/Question API Proposal<BR>
>> To: <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
>> Message-ID:<BR>
>> <<a href="f3383f810903281439w4a47151fi6ae1f834a213ca56@mail.gmail.com">f3383f810903281439w4a47151fi6ae1f834a213ca56@mail.gmail.com</a>><BR>
>> Content-Type: text/plain; charset="iso-8859-1"<BR>
>><BR>
>> I have a simple data model that worked extremely well for an almost<BR>
>> universal questionnaire building application I can contribute.<BR>
>> --Fred<BR>
>><BR>
>> 2009/3/28 Brian Long <<a href="brilong87@gmail.com">brilong87@gmail.com</a>><BR>
>><BR>
>>> All,<BR>
>>><BR>
>>> I think this is absolutely brilliant. After our class on Friday, I<BR>
>>> noticed a LOT of conceptual overlap of the simple projects that<BR>
>>> people were proposing and I think a math API would be a great place<BR>
>>> to start. As I've been trying to mention to everyone, I've not had<BR>
>>> any experience with Python so perhaps I'd be better suited to work on<BR>
>>> the database integration? (Not that I've done SQLite either, but SQL is<BR>
> SQL generally...).<BR>
>>><BR>
>>> In regards to the class, I know Profs. Jacobs and Grace are not<BR>
>>> extremely regulating our final deliverable for the class but I feel a<BR>
>>> strong API would be much more of a milestone than 10 small apps. that<BR>
>>> don't make it out of a beta stage.<BR>
>>><BR>
>>> I think we should try and drum up support for this idea. Bring on<BR>
>>> the replies!<BR>
>>><BR>
>>> Cheers,<BR>
>>> Brian Long<BR>
>>> <a href="bbl5660@rit.edu">bbl5660@rit.edu</a><BR>
>>><BR>
>>><BR>
>>><BR>
>>> ---------- Forwarded message ----------<BR>
>>>> From: Enimihil <<a href="enimihil@gmail.com">enimihil@gmail.com</a>><BR>
>>>> To: <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
>>>> Date: Fri, 27 Mar 2009 22:32:03 -0400<BR>
>>>> Subject: [math4] Quiz/Question API Proposal Hello all,<BR>
>>>><BR>
>>>> This is my first post so I guess I should introduce myself a bit.<BR>
>>>> I'm Greg S., one of the RIT students in the class working on the<BR>
>>>> Math4 goals, and something that I've mentioned might be a good idea<BR>
>>>> a few times now is a shared library/API for quiz questions/drilling<BR>
>>>> so that activity developers can leverage content and easily use<BR>
>>>> questions written in a variety of formats, from a variety of sources.<BR>
>>>><BR>
>>>> Inline below is a simple outline of a proposal for an API along<BR>
>>>> those lines, with a few notes on implementation at the end. Just<BR>
>>>> trying to propose something to save and/or centralize some common<BR>
>>>> work that needs to be done for a variety of activities.<BR>
>>>><BR>
>>>> =================================<BR>
>>>> Sugar Quiz API Preliminary Design<BR>
>>>> =================================<BR>
>>>><BR>
>>>> Motivation<BR>
>>>> ==========<BR>
>>>><BR>
>>>> In the RIT class working on the Math4 projects, many proposed<BR>
>>>> activities require a question database of some kind. A common API<BR>
>>>> or library for accessing databases in different formats, stored<BR>
>>>> either locally or remotely, along with a simple mechanism to<BR>
>>>> determine more complex formatting or presentation than simple text<BR>
>>>> (e.g. to include simple graphics or mathematical notation) would<BR>
>>>> cover a majority of the cases where the activity needs some<BR>
>>>> configurable "curriculum data".<BR>
>>>><BR>
>>>> Eventually this library could be extended to provide hints,<BR>
>>>> explanations, or walkthroughs for questions, in addition to the<BR>
>>>> basic metadata about level, grouping, difficulty, and subject matter<BR>
>>>> that would be part of the base system.<BR>
>>>><BR>
>>>> Envisioned Usage<BR>
>>>> ================<BR>
>>>><BR>
>>>> Consider a simple flash-card-like activity. It presents a question<BR>
>>>> from a list of questions, allows the student to select an answer<BR>
>>>> from the provided answers for the question or to enter their own<BR>
>>>> answer. Then the correct answer is revealed and the student it told<BR>
>>>> whether their answer is correct.<BR>
>>>> If the question has an explanation of the correct answer, the<BR>
>>>> flash-card activity will show the explanation of the correct answer.<BR>
>>>> (Note that this is just a simple usage example, the interaction<BR>
>>>> design of a drilling activity could be markedly different.)<BR>
>>>><BR>
>>>> The flash-card activity would use this proposed Quiz API for the<BR>
>>>> following:<BR>
>>>><BR>
>>>> - Loading the questions from the storage location into memory. This<BR>
>>>> includes any filtering or network lookup to download the questions<BR>
>>>> from a remote resource and select appropriate questions for the<BR>
>>>> student.<BR>
>>>><BR>
>>>> - Determining whether the student has entered a correct answer.<BR>
>>>><BR>
>>>> - Rendering the question to a simple widget/canvas. (i.e. pass the<BR>
>>>> library a GtkCanvas or similar and tell it to display the<BR>
>>>> question)<BR>
>>>><BR>
>>>> To start with, the library would simply be a time-saving tool for<BR>
>>>> developers needing similar functionality, but as the XS (School<BR>
>>>> Server) becomes more fully developed the library should integrate<BR>
>>>> the functions provided by the XS to enable automated update of<BR>
>>>> course material for the current topic of study so the students can<BR>
>>>> drill material using any tool they prefer, while still reporting<BR>
>>>> progress to the instructor using the XS services.<BR>
>>>><BR>
>>>> Proposed API<BR>
>>>> ============<BR>
>>>><BR>
>>>> The Quiz API would be a python library, to act mostly as glue<BR>
>>>> between various file formats (and local or remote resources) for<BR>
>>>> question data and the Gtk graphical environment, providing a simple<BR>
>>>> way to consistently present and layout questions.<BR>
>>>><BR>
>>>> :quizdata.open(uri, [cache=False]):<BR>
>>>> Opens a URI, returning a list of quizdata.Question instances. A<BR>
>>>> standard method of filtering question data based on parameters<BR>
>>>> should be specified. Examples of URIs that might be used::<BR>
>>>><BR>
>>>><BR>
>>>> <a href="http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo">http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo</a><BR>
>>>> rmat=moo<BR>
>>>> dle<BR>
>>>><BR>
>>>><BR>
>>>><BR>
>>>> <a href="file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=x">file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=x</a><BR>
>>>> ml<BR>
>>>><BR>
>>>> xmpp:<a href="//teacheraccount@xs.server">//teacheraccount@xs.server</a><BR>
>>>> /classname?difficulty=hard&level=4<BR>
>>>><BR>
>>>> The cache parameter would locally save the retrieved questions to<BR>
> a<BR>
>>>> persistent storage so requests from the same URI (with<BR>
> cache=True)<BR>
>>>> would read from the cache.<BR>
>>>><BR>
>>>> :class quizdata.Question:<BR>
>>>> This class contains individual data for a question:<BR>
>>>> - The question text<BR>
>>>> - The style of answer (incl. multiple-choice, numeric, free<BR>
>>>> response, etc.)<BR>
>>>> - The correct answer (or if the question is subjective, that<BR>
>>>> there *is* no correct answer).<BR>
>>>> - Question difficulty<BR>
>>>> - Grade level<BR>
>>>> - Tags (for free-form grouping by topic, course, instructor,<BR>
>>>> etc.)<BR>
>>>><BR>
>>>> The question text and answers should support at least minimal<BR>
>>>> markup, like that supported by pango, in addition to markup<BR>
>>>> rendering with MathML/LaTeX syntax.<BR>
>>>><BR>
>>>> .. note::<BR>
>>>> The attributes listed above will should grow standardized<BR>
> names<BR>
>>>> and be documented as part of the interface to the Question<BR>
>>>> class, to allow for fine-grained for activity controlled<BR>
>>>> rendering of the Question, if the simple show() call is not<BR>
>>>> appropriate.<BR>
>>>><BR>
>>>> :Question.show(surface, x, y, [width=-1, [height=-1]]):<BR>
>>>> Draw the question to the drawing surface at coordinates (x,y)<BR>
>>>> limited to the optionally specified width/height.<BR>
>>>><BR>
>>>> This also should set up the appropriate input widgets for the<BR>
>>>> type of question (multiple-choice/free-response) and handle<BR>
> the<BR>
>>>> vents for those widgets.<BR>
>>>><BR>
>>>> :Question.answered():<BR>
>>>> Returns True if the student has provided an answer for the<BR>
>>>> Question.<BR>
>>>><BR>
>>>> :Question.submitted():<BR>
>>>> Returns True if the student has submitted an answer for the<BR>
>>>> Question.<BR>
>>>><BR>
>>>> :Question.correct():<BR>
>>>> Returns True if the currently selected answer is correct<BR>
>>>> for the<BR>
>>>> Question.<BR>
>>>><BR>
>>>> :Question.answer():<BR>
>>>> Returns the answer the student has currently selected, or<BR>
> None<BR>
>>>> if no answer has been entered.<BR>
>>>><BR>
>>>> :Question.clear():<BR>
>>>> Removes the widgets and drawings that show() set up,<BR>
> preparing<BR>
>>>> the surface to receive the next question or other widgets.<BR>
>>>><BR>
>>>><BR>
>>>> Implementation Issues<BR>
>>>> ======================<BR>
>>>><BR>
>>>> The implementation of this (deceptively simple) library will take<BR>
>>>> some effort, in that it will be closely tied to the<BR>
>>>> windowing/graphical toolkit, PyGtk/Cairo/Pango rather directly, due<BR>
>>>> to the high level of abstraction.<BR>
>>>> Additionally the URI lookup and question filtering based on<BR>
>>>> parameters will be necessary, as will interpreter the various format<BR>
>>>> parsers necessary to build the Question objects.<BR>
>>>><BR>
>>>> For MathML support, the GtkMathView widget will need to be<BR>
>>>> available, so a certain amount of effort may be involved in<BR>
>>>> packaging the library in a simple way for activity developers.<BR>
>>>><BR>
>>>> Next Steps<BR>
>>>> ==========<BR>
>>>><BR>
>>>> Firstly, this API is being proposed and posted to the Math4 mailing<BR>
>>>> list for feedback and changes before any commitments to this<BR>
>>>> interface is decided.<BR>
>>>> For any activity developers who are currently working on an activity<BR>
>>>> that could take advantage of such a system, or who have written<BR>
>>>> similar functionality in an activity, your input on usage and the<BR>
>>>> naturalness of the API.<BR>
>>>><BR>
>>>> Secondly, anyone who is interested in doing work on this library or<BR>
>>>> using the library in their activity should chime in, along with the<BR>
>>>> expected usage or how you can contribute.<BR>
>>>><BR>
>>>> Greg S.<BR>
>>>> --<BR>
>>>> Email is packaged by intellectual weight, not volume. Some settling<BR>
>>>> of contents may have occurred during transmission.<BR>
>>>><BR>
>>>><BR>
>>>> _______________________________________________<BR>
>>>> FourthGradeMath mailing list<BR>
>>>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>>>><BR>
>>>><BR>
>>><BR>
>>> _______________________________________________<BR>
>>> FourthGradeMath mailing list<BR>
>>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>>><BR>
>>><BR>
>> -------------- next part -------------- An HTML attachment was<BR>
>> scrubbed...<BR>
>> URL:<BR>
>> <a href="http://lists.sugarlabs.org/archive/fourthgrademath/attachments/2009032">http://lists.sugarlabs.org/archive/fourthgrademath/attachments/2009032</a><BR>
>> 8/985b4c<BR>
>> 69/attachment-0001.htm<BR>
>><BR>
>> ------------------------------<BR>
>><BR>
>> Message: 2<BR>
>> Date: Sun, 29 Mar 2009 10:06:01 -0400<BR>
>> From: Karlie Robinson <<a href="karlie_robinson@webpath.net">karlie_robinson@webpath.net</a>><BR>
>> Subject: Re: [math4] Quiz/Question API Proposal<BR>
>> To: <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
>> Message-ID: <<a href="49CF8049.4040806@webpath.net">49CF8049.4040806@webpath.net</a>><BR>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed<BR>
>><BR>
>> Before you guys get too far, be sure to do some research on Learning<BR>
>> management software - specifically, Moodle.<BR>
>><BR>
>> Remember - with Open Source you're aiming to begin with the finishing<BR>
>> touches. If you don't have to write something from scratch, but<BR>
>> simply modify an existing block of code to suit your needs, you'll get<BR>
>> much farther in less time.<BR>
>><BR>
>> ~Karlie<BR>
>><BR>
>><BR>
>> Frederick Grose wrote:<BR>
>>> I have a simple data model that worked extremely well for an almost<BR>
>>> universal questionnaire building application I can contribute.<BR>
>>><BR>
>>> --Fred<BR>
>>><BR>
>>> 2009/3/28 Brian Long <<a href="brilong87@gmail.com">brilong87@gmail.com</a><BR>
>>> <<a href="mailto:brilong87@gmail.com>">mailto:brilong87@gmail.com></a>><BR>
>>><BR>
>>> All,<BR>
>>><BR>
>>> I think this is absolutely brilliant. After our class on Friday,<BR>
>>> I noticed a LOT of conceptual overlap of the simple projects that<BR>
>>> people were proposing and I think a math API would be a great<BR>
>>> place to start. As I've been trying to mention to everyone, I've<BR>
>>> not had any experience with Python so perhaps I'd be better suited<BR>
>>> to work on the database integration? (Not that I've done SQLite<BR>
>>> either, but SQL is SQL generally...).<BR>
>>><BR>
>>> In regards to the class, I know Profs. Jacobs and Grace are not<BR>
>>> extremely regulating our final deliverable for the class but I<BR>
>>> feel a strong API would be much more of a milestone than 10 small<BR>
>>> apps. that don't make it out of a beta stage.<BR>
>>><BR>
>>> I think we should try and drum up support for this idea. Bring on<BR>
>>> the replies!<BR>
>>><BR>
>>> Cheers,<BR>
>>> Brian Long<BR>
>>> <a href="bbl5660@rit.edu">bbl5660@rit.edu</a> <<a href="mailto:bbl5660@rit.edu">mailto:bbl5660@rit.edu</a>><BR>
>>><BR>
>>><BR>
>>><BR>
>>> ---------- Forwarded message ----------<BR>
>>> From: Enimihil <<a href="enimihil@gmail.com">enimihil@gmail.com</a> <<a href="mailto:enimihil@gmail.com>">mailto:enimihil@gmail.com></a>><BR>
>>> To: <a href="fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><BR>
>>> <<a href="mailto:fourthgrademath@lists.sugarlabs.org">mailto:fourthgrademath@lists.sugarlabs.org</a>><BR>
>>> Date: Fri, 27 Mar 2009 22:32:03 -0400<BR>
>>> Subject: [math4] Quiz/Question API Proposal<BR>
>>> Hello all,<BR>
>>><BR>
>>> This is my first post so I guess I should introduce myself a<BR>
>>> bit. I'm<BR>
>>> Greg S., one of the RIT students in the class working on the<BR>
> Math4<BR>
>>> goals, and something that I've mentioned might be a good idea<BR>
>>> a few<BR>
>>> times now is a shared library/API for quiz questions/drilling<BR>
>>> so that<BR>
>>> activity developers can leverage content and easily use questions<BR>
>>> written in a variety of formats, from a variety of sources.<BR>
>>><BR>
>>> Inline below is a simple outline of a proposal for an API<BR>
>>> along those<BR>
>>> lines, with a few notes on implementation at the end. Just<BR>
>>> trying to<BR>
>>> propose something to save and/or centralize some common work that<BR>
>>> needs to be done for a variety of activities.<BR>
>>><BR>
>>> =================================<BR>
>>> Sugar Quiz API Preliminary Design<BR>
>>> =================================<BR>
>>><BR>
>>> Motivation<BR>
>>> ==========<BR>
>>><BR>
>>> In the RIT class working on the Math4 projects, many proposed<BR>
>>> activities<BR>
>>> require a question database of some kind. A common API or<BR>
>>> library for<BR>
>>> accessing databases in different formats, stored either<BR>
>>> locally or remotely,<BR>
>>> along with a simple mechanism to determine more complex<BR>
>>> formatting or<BR>
>>> presentation than simple text (e.g. to include simple graphics or<BR>
>>> mathematical notation) would cover a majority of the cases<BR>
>>> where the<BR>
>>> activity needs some configurable "curriculum data".<BR>
>>><BR>
>>> Eventually this library could be extended to provide hints,<BR>
>>> explanations, or<BR>
>>> walkthroughs for questions, in addition to the basic metadata<BR>
>>> about level,<BR>
>>> grouping, difficulty, and subject matter that would be part of<BR>
>>> the base<BR>
>>> system.<BR>
>>><BR>
>>> Envisioned Usage<BR>
>>> ================<BR>
>>><BR>
>>> Consider a simple flash-card-like activity. It presents a<BR>
>>> question from a<BR>
>>> list of questions, allows the student to select an answer from<BR>
>>> the provided<BR>
>>> answers for the question or to enter their own answer. Then<BR>
>>> the correct<BR>
>>> answer is revealed and the student it told whether their<BR>
>>> answer is correct.<BR>
>>> If the question has an explanation of the correct answer, the<BR>
>>> flash-card<BR>
>>> activity will show the explanation of the correct answer.<BR>
>>> (Note that this<BR>
>>> is just a simple usage example, the interaction design of a<BR>
>>> drilling<BR>
>>> activity could be markedly different.)<BR>
>>><BR>
>>> The flash-card activity would use this proposed Quiz API for<BR>
>>> the following:<BR>
>>><BR>
>>> - Loading the questions from the storage location into<BR>
>>> memory. This<BR>
>>> includes any filtering or network lookup to download the<BR>
>>> questions<BR>
>>> from a remote resource and select appropriate questions<BR>
>>> for the<BR>
>>> student.<BR>
>>><BR>
>>> - Determining whether the student has entered a correct<BR>
> answer.<BR>
>>><BR>
>>> - Rendering the question to a simple widget/canvas. (i.e.<BR>
>>> pass the<BR>
>>> library a GtkCanvas or similar and tell it to display the<BR>
>>> question)<BR>
>>><BR>
>>> To start with, the library would simply be a time-saving tool<BR>
>>> for developers<BR>
>>> needing similar functionality, but as the XS (School Server)<BR>
>>> becomes more<BR>
>>> fully developed the library should integrate the functions<BR>
>>> provided by the<BR>
>>> XS to enable automated update of course material for the<BR>
>>> current topic of<BR>
>>> study so the students can drill material using any tool they<BR>
>>> prefer, while<BR>
>>> still reporting progress to the instructor using the XS services.<BR>
>>><BR>
>>> Proposed API<BR>
>>> ============<BR>
>>><BR>
>>> The Quiz API would be a python library, to act mostly as glue<BR>
>>> between<BR>
>>> various file formats (and local or remote resources) for<BR>
>>> question data and<BR>
>>> the Gtk graphical environment, providing a simple way to<BR>
>>> consistently<BR>
>>> present and layout questions.<BR>
>>><BR>
>>> :quizdata.open(uri, [cache=False]):<BR>
>>> Opens a URI, returning a list of quizdata.Question<BR>
>>> instances. A<BR>
>>> standard method of filtering question data based on<BR>
>>> parameters<BR>
>>> should be specified. Examples of URIs that might be<BR>
> used::<BR>
>>><BR>
>>><BR>
>>><BR>
>>> <a href="http://xs-server/math4class/current_topic?level=4&difficulty=hard&for">http://xs-server/math4class/current_topic?level=4&difficulty=hard&for</a><BR>
>>> mat=mood<BR>
>>> le<BR>
>>><BR>
>>> <<a href="http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo">http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo</a><BR>
>>> rmat=moo<BR>
>>> dle><BR>
>>><BR>
>>><BR>
>>><BR>
>>> <a href="file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=xm">file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=xm</a><BR>
>>> l<BR>
>>><BR>
>>><BR>
>>><BR>
>>> xmpp:<a href="//teacheraccount@xs.server/classname?difficulty=hard&level=4">//teacheraccount@xs.server/classname?difficulty=hard&level=4</a><BR>
>>><BR>
>>> The cache parameter would locally save the retrieved<BR>
>>> questions to a<BR>
>>> persistent storage so requests from the same URI (with<BR>
>>> cache=True)<BR>
>>> would read from the cache.<BR>
>>><BR>
>>> :class quizdata.Question:<BR>
>>> This class contains individual data for a question:<BR>
>>> - The question text<BR>
>>> - The style of answer (incl. multiple-choice,<BR>
>>> numeric, free<BR>
>>> response, etc.)<BR>
>>> - The correct answer (or if the question is<BR>
>>> subjective, that<BR>
>>> there *is* no correct answer).<BR>
>>> - Question difficulty<BR>
>>> - Grade level<BR>
>>> - Tags (for free-form grouping by topic, course,<BR>
>>> instructor,<BR>
>>> etc.)<BR>
>>><BR>
>>> The question text and answers should support at least<BR>
>>> minimal<BR>
>>> markup, like that supported by pango, in addition to<BR>
> markup<BR>
>>> rendering with MathML/LaTeX syntax.<BR>
>>><BR>
>>> .. note::<BR>
>>> The attributes listed above will should grow<BR>
>>> standardized names<BR>
>>> and be documented as part of the interface to the<BR>
>>> Question<BR>
>>> class, to allow for fine-grained for activity<BR>
>>> controlled<BR>
>>> rendering of the Question, if the simple show()<BR>
>>> call is not<BR>
>>> appropriate.<BR>
>>><BR>
>>> :Question.show(surface, x, y, [width=-1, [height=-1]]):<BR>
>>> Draw the question to the drawing surface at<BR>
>>> coordinates (x,y)<BR>
>>> limited to the optionally specified width/height.<BR>
>>><BR>
>>> This also should set up the appropriate input<BR>
>>> widgets for the<BR>
>>> type of question (multiple-choice/free-response)<BR>
>>> and handle the<BR>
>>> vents for those widgets.<BR>
>>><BR>
>>> :Question.answered():<BR>
>>> Returns True if the student has provided an answer<BR>
>>> for the<BR>
>>> Question.<BR>
>>><BR>
>>> :Question.submitted():<BR>
>>> Returns True if the student has submitted an answer<BR>
>>> for the<BR>
>>> Question.<BR>
>>><BR>
>>> :Question.correct():<BR>
>>> Returns True if the currently selected answer is<BR>
>>> correct for the<BR>
>>> Question.<BR>
>>><BR>
>>> :Question.answer():<BR>
>>> Returns the answer the student has currently<BR>
>>> selected, or None<BR>
>>> if no answer has been entered.<BR>
>>><BR>
>>> :Question.clear():<BR>
>>> Removes the widgets and drawings that show() set<BR>
>>> up, preparing<BR>
>>> the surface to receive the next question or other<BR>
>>> widgets.<BR>
>>><BR>
>>><BR>
>>> Implementation Issues<BR>
>>> ======================<BR>
>>><BR>
>>> The implementation of this (deceptively simple) library will<BR>
>>> take some<BR>
>>> effort, in that it will be closely tied to the<BR>
>>> windowing/graphical toolkit,<BR>
>>> PyGtk/Cairo/Pango rather directly, due to the high level of<BR>
>>> abstraction.<BR>
>>> Additionally the URI lookup and question filtering based on<BR>
>>> parameters will<BR>
>>> be necessary, as will interpreter the various format parsers<BR>
>>> necessary to<BR>
>>> build the Question objects.<BR>
>>><BR>
>>> For MathML support, the GtkMathView widget will need to be<BR>
>>> available, so a<BR>
>>> certain amount of effort may be involved in packaging the<BR>
>>> library in a<BR>
>>> simple way for activity developers.<BR>
>>><BR>
>>> Next Steps<BR>
>>> ==========<BR>
>>><BR>
>>> Firstly, this API is being proposed and posted to the Math4<BR>
>>> mailing list for<BR>
>>> feedback and changes before any commitments to this interface<BR>
>>> is decided.<BR>
>>> For any activity developers who are currently working on an<BR>
>>> activity that<BR>
>>> could take advantage of such a system, or who have written<BR>
> similar<BR>
>>> functionality in an activity, your input on usage and the<BR>
>>> naturalness of the<BR>
>>> API.<BR>
>>><BR>
>>> Secondly, anyone who is interested in doing work on this<BR>
>>> library or using<BR>
>>> the library in their activity should chime in, along with the<BR>
>>> expected usage<BR>
>>> or how you can contribute.<BR>
>>><BR>
>>> Greg S.<BR>
>>> --<BR>
>>> Email is packaged by intellectual weight, not volume. Some<BR>
>>> settling of<BR>
>>> contents may have occurred during transmission.<BR>
>>><BR>
>>><BR>
>>> _______________________________________________<BR>
>>> FourthGradeMath mailing list<BR>
>>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>>> <<a href="mailto:FourthGradeMath@lists.sugarlabs.org">mailto:FourthGradeMath@lists.sugarlabs.org</a>><BR>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>>><BR>
>>><BR>
>>><BR>
>>> _______________________________________________<BR>
>>> FourthGradeMath mailing list<BR>
>>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>>> <<a href="mailto:FourthGradeMath@lists.sugarlabs.org">mailto:FourthGradeMath@lists.sugarlabs.org</a>><BR>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>>><BR>
>>><BR>
>>> ---------------------------------------------------------------------<BR>
>>> ---<BR>
>>><BR>
>>> _______________________________________________<BR>
>>> FourthGradeMath mailing list<BR>
>>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>>><BR>
>><BR>
>><BR>
>> ------------------------------<BR>
>><BR>
>> _______________________________________________<BR>
>> FourthGradeMath mailing list<BR>
>> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
>><BR>
>><BR>
>> End of FourthGradeMath Digest, Vol 2, Issue 41<BR>
>> **********************************************<BR>
><BR>
><BR>
> _______________________________________________<BR>
> FourthGradeMath mailing list<BR>
> <a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
><BR>
<BR>
<BR>
_______________________________________________<BR>
FourthGradeMath mailing list<BR>
<a href="FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><BR>
<a href="http://lists.sugarlabs.org/listinfo/fourthgrademath">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:14pt'><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE>
</BODY>
</HTML>