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><div class="gmail_quote">On Mon, Mar 30, 2009 at 9:32 PM, Stephen Jacobs <span dir="ltr"><<a href="mailto:itprofjacobs@gmail.com">itprofjacobs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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>
<div><div></div><div class="h5"><br>
On 3/30/09 9:05 PM, "Kathy Pusztavari" <<a href="mailto: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="mailto:fourthgrademath-bounces@lists.sugarlabs.org">fourthgrademath-bounces@lists.sugarlabs.org</a><br>
> [mailto:<a href="mailto:fourthgrademath-bounces@lists.sugarlabs.org">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="mailto: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="mailto:fourthgrademath-request@lists.sugarlabs.org">fourthgrademath-request@lists.sugarlabs.org</a>"<br>
> <<a href="mailto:fourthgrademath-request@lists.sugarlabs.org">fourthgrademath-request@lists.sugarlabs.org</a>> wrote:<br>
><br>
>> Send FourthGradeMath mailing list submissions to<br>
>> <a href="mailto: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" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
>> or, via email, send a message with subject or body 'help' to<br>
>> <a href="mailto: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="mailto: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="mailto:fgrose@gmail.com">fgrose@gmail.com</a>><br>
>> Subject: Re: [math4] Quiz/Question API Proposal<br>
>> To: <a href="mailto:fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><br>
>> Message-ID:<br>
>> <<a href="mailto: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="mailto: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="mailto:bbl5660@rit.edu">bbl5660@rit.edu</a><br>
>>><br>
>>><br>
>>><br>
>>> ---------- Forwarded message ----------<br>
>>>> From: Enimihil <<a href="mailto:enimihil@gmail.com">enimihil@gmail.com</a>><br>
>>>> To: <a href="mailto: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" target="_blank">http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo</a><br>
>>>> rmat=moo<br>
>>>> dle<br>
>>>><br>
>>>><br>
>>>><br>
>>>> file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=x<br>
>>>> ml<br>
>>>><br>
>>>> xmpp://teacheraccount@xs.server<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="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
>>>><br>
>>>><br>
>>><br>
>>> _______________________________________________<br>
>>> FourthGradeMath mailing list<br>
>>> <a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">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" target="_blank">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="mailto:karlie_robinson@webpath.net">karlie_robinson@webpath.net</a>><br>
>> Subject: Re: [math4] Quiz/Question API Proposal<br>
>> To: <a href="mailto:fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><br>
>> Message-ID: <<a href="mailto: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="mailto:brilong87@gmail.com">brilong87@gmail.com</a><br>
>>> <mailto:<a href="mailto:brilong87@gmail.com">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="mailto:bbl5660@rit.edu">bbl5660@rit.edu</a> <mailto:<a href="mailto:bbl5660@rit.edu">bbl5660@rit.edu</a>><br>
>>><br>
>>><br>
>>><br>
>>> ---------- Forwarded message ----------<br>
>>> From: Enimihil <<a href="mailto:enimihil@gmail.com">enimihil@gmail.com</a> <mailto:<a href="mailto:enimihil@gmail.com">enimihil@gmail.com</a>>><br>
>>> To: <a href="mailto:fourthgrademath@lists.sugarlabs.org">fourthgrademath@lists.sugarlabs.org</a><br>
>>> <mailto:<a href="mailto: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<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" target="_blank">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" target="_blank">http://xs-server/math4class/current_topic?level=4&difficulty=hard&fo</a><br>
>>> rmat=moo<br>
>>> dle><br>
>>><br>
>>><br>
>>><br>
>>> file:///var/lib/mathquestions/quiz1?level=4&difficulty=hard&format=xm<br>
>>> l<br>
>>><br>
>>><br>
>>><br>
>>> xmpp://teacheraccount@xs.server/classname?difficulty=hard&level=4<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="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>>> <mailto:<a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a>><br>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
>>><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> FourthGradeMath mailing list<br>
>>> <a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>>> <mailto:<a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a>><br>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
>>><br>
>>><br>
>>> ---------------------------------------------------------------------<br>
>>> ---<br>
>>><br>
>>> _______________________________________________<br>
>>> FourthGradeMath mailing list<br>
>>> <a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
>>><br>
>><br>
>><br>
>> ------------------------------<br>
>><br>
>> _______________________________________________<br>
>> FourthGradeMath mailing list<br>
>> <a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
>> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">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="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
> <a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
><br>
<br>
<br>
_______________________________________________<br>
FourthGradeMath mailing list<br>
<a href="mailto:FourthGradeMath@lists.sugarlabs.org">FourthGradeMath@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/fourthgrademath" target="_blank">http://lists.sugarlabs.org/listinfo/fourthgrademath</a><br>
</div></div></blockquote></div><br>