[GCompris-devel] saving the progress for Lang activity.
Holger Kaelberer
hk at elberer.de
Fri Jul 3 06:55:50 UTC 2015
Hi
On 02.07.2015 14:13, Siddhesh Suthar wrote:
> Hi,
>
> 1. Here the activity comprise of
> i) the preview of words
> ii) three quiz mini games, In the last one we display only those words which have voice available
> iii) the spell game
> -So for example lets say in level 5 we have 20 words and each of them have voice data available then
> progress will be counted on the base of 100 (20 for preview, 60 for quizzes and 20 for spell).
> - and if out of 20 only 10 words have voice available then total score is 90. and we count progress
> after previewing or correctly answering a question. So in my point of view its a little activity
> specific.
>
> 2. yes we are tracking success ( win or loose) and counting progress based on that. But at the same
> time we are not tracking which word is learnt and which not. we are counting the total correct
> submissions.
I see, if you are not tracking learnt words, then you won't be able to continue at a more detailed
point when restarting the activity later than the last completed level.
>
> 3. yes the progress is level based we have to store progress for each level, so the possible
> candidates i see now are
> i) The settings file
> ii) json-file in a user-writable QStandardPath, which could entirely be managed on the qml-layer.
No strong opinion on these options. Both would serve your needs. JSON format might have the
advantage to be more flexible with respect to future extensions.
> iii) Activity base
I think you misunderstood here: ActivityBase would be a candidate to hold the current progress stats
at runtime and be responsible for loading (activity start) and saving (activity stop) counters to
i) or ii)
>
> 4. 'consume'/'restore' the progress will be the activity itself. because the progress is calculated
> at run time and its activity specific.
>
> Thanks for your views, would like to hear from you based on these points too. :)
So if I understood correctly you want to achieve 2 things:
1. store activity progress in order to be able to resume at the last non-completed level when
starting the activity later.
After what you said for this it should be enough to store something like lastCompletedLevel (and
maybe lastCompleted subLevel).
2. store success (win/loose ratio) in order to provide feedback to the user (and a possible future
admin/teacher)
Storing a simple winCount + looseCount should be enough for that. We might want to reset these
counters if an activity is restarted from the beginning. Maybe also good to provide a way for the
user to reset these counters. Plus a config-setting to en-/disable the feature completely?
Holger
> Siddhesh
>
>
> On Thu, Jul 2, 2015 at 4:53 PM, Johnny Jazeix <jazeix at gmail.com <mailto:jazeix at gmail.com>> wrote:
>
> From: Holger Kaelberer <hk at elberer.de <mailto:hk at elberer.de>>
> Date: 2015-07-01 21:02 GMT+02:00
> Subject: Re: [GCompris-devel] saving the progress for Lang activity.
> To: gcompris-devel at kde.org <mailto:gcompris-devel at kde.org>
>
>
> Hi,
>
> some random thoughts:
>
> - What is "progress"? Simply a <levels-done>/<levels-max>? Might be
> enough for many activities. Or do we also want to consider sublevels?
> Or do we have to consider an activity-specific "progress" beyond
> levels/sublevels? (How would this look like for the lang-activities?
> Thinking of an index into a word-list or so ...)
>
> - Do we also want to track success (win vs. loose) in this way to
> allow for a teacher to react to pupils problems. (A feature that was
> talked about in the context of a live feedback to a teacher via
> admin-interface call.)
>
> - How to store it? A config/ini-file in the sense of seperate
> QSettings instance would probably mean to code it in C++. If we're
> only talking about a <levels-done>/<levels-max> percentage the
> settings file we have so far could also be reused to store progress in
> an [SomeActivity] group. An option could be to store things in a
> json-file in a user-writable QStandardPath, which could entirely be
> managed on the qml-layer. Not sure if using a database on the (client)
> device is necessary or of benefit.
>
> - Good idea to handle the basics of saving/restoring progress in
> ActivityBase. At least simple (level/sublevel-based) progress
> information could be tracked by the base class. Maybe with the option
> to extend it by a concrete activity if there is a need for activity
> specific progress details?
>
> - How would 'consume'/'restore' the progress? Two candidates:
>
> 1. the activity itself, to restart at a given progress level.
>
> 2. An admin activity. In this case activity-specific progress/state
> might not be of use, because the presenting UI might not know about
> the activity specific context.
>
> Holger
>
> On 27.06.2015 22:20, JAZEIX Johnny wrote:
> >
> > Hi,
> >
> > to be more precise, the point here is to see how we can have a generic solution to provide
> activity
> > progress and status to users (either teachers, parents or even children).
> >
> > The proposed solution is to use a new config file containing only the statistics for all the
> activities.
> > Then, it should be easy to create views for teachers and users. I don't think saving it in a
> qml is
> > interesting (you probably misunderstood why I was talking about qml, it's for the
> translations not
> > for saving stats).
> > A simple .ini file like for configuration could be enough. Then, we need to think if there is an
> > interest to use a database instead (maybe easier for integration with the admin interface? We can
> > even think of having an activity showing the progress :))?
> >
> > For the coding part, we should probably have a qml element doing all the job and use it in the
> > activities (maybe in the ActivityBase so loading/saving can be handled there).
> >
> > On 06/27/15 15:04, Siddhesh Suthar wrote:
> >>
> >> hello,
> >>
> >> I am porting language learning activities. Its almost complete. Now i have to save the progress of
> >> words which a user has learnt per lesson wise.
> >>
> >> The current idea I discussed with JohnnyJ is to save the progress in a qml file inside
> >> (resource/data) of the activity. then, we need to see how to define the format.
> >> There can be different approaches to it.
> >>
> >> 1. we store only the savedProgress corresponding to its lesson, and everything else for the
> >> menuModel will be fetched from words.json through lang_api
> >>
> > To precise a little, savedProgress is a js variable storing while playing the activity the
> percent
> > of completed words for the current word category. It is not yet permanent so every time the user
> > restarts GCompris, the progress is reinitialized.
> >>
> >>
> >> 1. we also have to think if we can make this saving generic and where do we store it (as I
> don't
> >> think it is great to save it in configuration file because then as we want this to be
> >> potentially usable by other activities, putting these in the config file don't look like to be
> >> a good idea).
> >> 2. johnny jazeix added: I would prefer a special file for all the progresses because then, if
> >> the teacher wants to retrieve all the stats for a child, only one file with only necessary
> >> data would be better instead of all the config file.
> >> 3. In json, we can't translate (use qsTr()) but you can in qml, so it was more to provide the
> >> translators all the strings in the same translation file they already use.
> >>
> > The last point is not useful for the current issue ;).
> >
> > Johnny
> >
> >> I would love to hear your ideas about it. Want to know what can be the best approach for it.
> >>
> >> Siddhesh suthar
> >>
> >>
> >>
> >> _______________________________________________
> >> GCompris-devel mailing list
> >> GCompris-devel at kde.org <mailto:GCompris-devel at kde.org>
> >> https://mail.kde.org/mailman/listinfo/gcompris-devel
> >
> >
> >
> >
> > _______________________________________________
> > GCompris-devel mailing list
> > GCompris-devel at kde.org <mailto:GCompris-devel at kde.org>
> > https://mail.kde.org/mailman/listinfo/gcompris-devel
> >
> _______________________________________________
> GCompris-devel mailing list
> GCompris-devel at kde.org <mailto:GCompris-devel at kde.org>
> https://mail.kde.org/mailman/listinfo/gcompris-devel
>
>
>
>
> _______________________________________________
> GCompris-devel mailing list
> GCompris-devel at kde.org
> https://mail.kde.org/mailman/listinfo/gcompris-devel
>
More information about the GCompris-devel
mailing list