note-calculation

Bug #661670 reported by Marten de Vries
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenTeacher
Fix Released
Critical
Marten de Vries

Bug Description

At this moment the note calculation is a mess, mostly because of a not fully functioning smart mode.

Also we've to think how to calculate the notes itself, and if it can be done smarter than we do now. At this moment, notes are calculated from the numberOfAnswers, and the numberOfWrongAnswers (or something similar.) Problem is that the values in these variables are at the moment not always what they claim to be. Also this method can give problems when words are asked multiple times. (For example in the smart mode, and ask until all right.)

Tags: lesson

Related branches

Changed in openteacher:
importance: Undecided → High
status: New → Confirmed
milestone: none → 2.0
Revision history for this message
Cas Widdershoven (caswiddershoven) wrote :

My option for noting questions asked more than once: First time the question is asked, it is worth 1 point, second time it is worth 0,5 * 1 point, third tim 0,5 * 0,5 * 1 point, etc.

Revision history for this message
Marten de Vries (marten-de-vries) wrote :

@~caswiddershoven: We've already discussed that idea some time ago, and however I like the idea, I'm not sure if we should store those floats inside the variable numberOfAnswers. It would be the easiest manner to fix this however, because the calculation functions itself don't have to be changed.

Revision history for this message
Milan Boers (milan-boers) wrote :

"First time the question is asked, it is worth 1 point, second time it is worth 0,5 * 1 point, third tim 0,5 * 0,5 * 1 point, etc."

This is the same as 0.5 to the power of n-1, so 0.5^(n-1). Don't know if it can help, but if you didn't see it it might save a lot of programming ;D

Revision history for this message
Marten de Vries (marten-de-vries) wrote :

Personally, I was thinking about fixing this by doing:

multiplyFactor = 1.0

#a new round has started...
multiplyFactor /= 2

Revision history for this message
Milan Boers (milan-boers) wrote :

Wouldn't that make it impossible to ask a question twice in the same round?

Revision history for this message
Marten de Vries (marten-de-vries) wrote :

I realise the name 'multiplyFactor' is wrong now, but there's nothing wrong with the idea behind it I think. Let's compare the needed code

##Using math.pow()
round = 1
while True:
    if round == 1:
        worth = 1.0
    else:
        worth = pow(0.5, round -1)

    #Ask words + handle answers here...
    round += 1

#I think it can be done a little more efficiently by making round 0 the first round, than subtracting 1 isn't needed, but the idea should be clear now....

##Using division
worth = 1.0
while True:
    #Ask words + handle answers here...
    worth /= 2

Both give for the first 10 rounds this output if you would print to the terminal at the place of the 'ask word'-comment:
1.0
0.5
0.25
0.125
0.0625
0.03125
0.015625
0.0078125
0.00390625
0.001953125

Revision history for this message
Milan Boers (milan-boers) wrote :

But this assumes you're always using rounds.
So every question can only be asked once every round.
What if you'd want a question order in which a hard word is asked more frequently (doesn't smart order do this?)?

Revision history for this message
Marten de Vries (marten-de-vries) wrote :

OK, that would mean we have to register for every word asked, how many times it was asked in the current lesson. The alternative is to just don't count 'smartWords', and maybe even don't count other rounds than the first. That's not very encouraging to the user if it's the first time he/she learns the wordlist, but it's the most honest representation of how good your knowledge of the current wordlist is.

What's your opinion?

Revision history for this message
Milan Boers (milan-boers) wrote :

Maybe don't count other rounds than the first one for the smart order, and use the words =/ 2 for orders where there are rounds in 2.0.

For the next release (2.1?), however, I think it would be better to make a counter for how many times a question was asked in the lesson as a property of the Word-class. Then reset that counter for every word when a lesson starts.

What do you think of that?

Revision history for this message
Marten de Vries (marten-de-vries) wrote :

I think your second solution is probably the way to go. For the beta Cas and I use the end of this month for a deadline, but if we don't make it, nothing will happen. So I think we should just implement the second way directly, without using a temporary solution.

Also we haven't set a release date for the 2.0 yet, and IMHO this bug just must be fixed before that release.

Changed in openteacher:
importance: High → Critical
Changed in openteacher:
assignee: nobody → Marten de Vries (marten-de-vries)
Changed in openteacher:
status: Confirmed → In Progress
Revision history for this message
Marten de Vries (marten-de-vries) wrote :

Fixed in revision 99 :D

Changed in openteacher:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.