Forum&Community

If you want to contribute, please log in or register.

« back

Box 1 (least known cards) never gets asked

MrsPan
Noob
Topic creator
registered since: 04.02.2010
Posts: 8
I noticed more than one complaint about this in the forum, but few responses from the LearnLift team, and those seem to be more than a year ago.

I am using the latest and greatest ML 2.3.630.0 on WinXP Pro, with the default box sizes (although that shouldn't make any difference for this problem); module has 1000+ cards.

It is my understanding that the program algorithm works as follows:
1. Ask a card from the pool, placing in box 1 or 2 as appropriate
2. If this box is now full, ask a card from that box, and promote or demote as appropriate
3. Repeat step 2 until all boxes have room for at least one card.
4. Repeat steps 1-3 until the pool is empty.
5. Once the pool is empty, repeat the process, but using the least known cards (box 1, or whichever is the lowest box with cards in it).

The program works faithfully to do this as long as there are cards in the pool. But the moment the pool is empty (step 5), it starts with the highest boxes, and never asks from box 1. Yet these are the ones I got wrong, and should practice the most!

I had not noticed this behavior before, probably because I kept adding chapters to learn before the pool was completely empty. I was the one creating the chapters for my children to learn as our whole family went through the Spanish course, and I spent more time doing that than practicing. But after having quit practicing with ML over a year ago, I decided to review. I chose to "Restart Learning" and selected just the first chapter to begin with. There are something like 20 cards in the first chapter, so they should all fit into box 2 (if they're all correct). I expected that once they were all out of the pool, and I was learning just box 1, I would add another chapter. But as soon as the pool emptied, it asked me a card from box 2, even though there were still cards in box 1, and room in box 2. As soon as I added another chapter to learn, the behavior returned to normal. After emptying the pool twice more (for two more chapters), I noticed the behavior seemed to be even more bizarre. Boxes 1 and 2 each have room for one card. Box 3 contains 45 cards, box 4 has 39 cards, and box 5 has 14 cards. I started watching the display to see which boxes were asked. It asked a card from box 4, then one from box 3, then back to box 4. It never asked one from box 1 or 2 unless I got one wrong! It just continued alternating between box 3 and box 4 until I said this is ridiculous and added another chapter to learn.

I noticed something in one of the posts about timestamps on the cards--that if the pool is empty, it asks the card with the oldest timestamp. Is that what is doing this? Shouldn't it be asking the card with the oldest timestamp in the lowest non-empty box?

Please let me (and the other people who've complained about this) know whether this problem is going to be addressed. As long as I keep adding cards to the pool, everything is ok, but one day I will run out of chapters and will never learn the problem cards. I realize I can specifically tell it to learn box 1, or adjust the box sizes, but that's a temporary workaround while waiting for the problem to be fixed. Thank you.
christoph
Professional
LearnLift Development
registered since: 16.11.2007
Posts: 206
Hi,

sorry for the late answer, but basicaly you are right:
If the pool is empty the next card which will be asked is the card which was asked the longest time ago, based on a timestamp each card/user has in the database.

We discussed that "problem" a few times and at the moment we still think, that the current solution fits the leithner system best (the system itself does not define what to do with an empty pool), because the oldest cards is probably one you already forgot.
But as you already wrote, to "change that behaviour" you can eighter change the box sizes to fit your needs better or just select box 1 for learning.

Asking the oldest card in the lowest non-empty box doesn't "work" as that logic would repeat to ask the same cards over and over as they went up the ladder and never ask one from a higher box, which then may be never asked again.

regards

Fink Christoph
LearnLift Development
www.learnlift.com

MrsPan
Noob
Topic creator
registered since: 04.02.2010
Posts: 8
Thanks for the reply, Christoph.

I see your point. In fact, it is precisely the same as mine, only from the opposite direction. icon_confused.gif I propose a compromise, which would solve both our problems.

Pick some reasonably low number, say 5, and, once the pool is empty, ask that many of the oldest question (counting only correct answers, if you like, and only increment your counter when it chooses the oldest question, not when it has to make space in a full box), then ask one card from the lowest non-empty box.

This would ensure periodic review of known facts (definitely a good thing) while also continuing to work on poorly-known facts (equally important), without making the user force the program to do it (not a good thing).

Maybe some of the people who have complained about this problem can give their opinion as to whether they agree that this could be a reasonable solution.
MrsPan
Noob
Topic creator
registered since: 04.02.2010
Posts: 8
I noticed that a lot of people are interested in this topic (278 views so far), but no one has made any suggestions. After further pondering (and practicing my module), I want to refine my previous suggestion.

This is important because of the concept of "spaced repetition," as explained on your page:

The concept of "spaced repetition" is that each time the learner demonstrates knowledge of a certain piece of information, this piece of information is repeated less often. In other words, well-remembered information is reviewed less often than information that is not well-known to the learner.

https://www.memorylifter.com/about/scientific-approach.html


As it currently exists, MemoryLifter does this only as long as there are cards which have never been asked. The moment the last card has been seen, the whole "spaced repetition" approach is abandoned, and the program asks the well-known cards as often as the cards not known at all.

Please spare me the advice on how to force ML to work. While adults may not mind doing it, this is unacceptable when a parent or teacher is creating modules for children. A well-written program should not have any logic problems. ML is a great program, with a whole host of bells and whistles. The very least it should do is follow its own scientific approach.

My refined suggestion is as follows:
1. While there are cards in the pool, the program should work as it currently does.
2. Once the pool is empty, as long as there are no cards in box 10, take cards from the lowest box (with the normal behavior for full boxes). In this way, the least-known cards get more practice.
3. Once there is at least one card in box 10, alternate one card from the lowest box, then one card from box 10 (again with normal behavior for full boxes). This way, the cards in the lower boxes still get more practice, but the cards in box 10 are not abandoned entirely.

As before, if anyone else has anything to say about this, it would be nice to hear it. If a lot of people agree, perhaps the ML folks will fix this. And if better ideas come forth, that would be great. But if only a few of us care, the ML people probably won't bother.
NicevilleJenn
Noob
registered since: 24.04.2011
Posts: 2
I propose what seems to be the easiest "fix" of all... How about just putting a card in the Pool that cannot be promoted? It seems that the algorithm would then continue to work. Is such a thing possible?
christoph
Professional
LearnLift Development
registered since: 16.11.2007
Posts: 206
Hi,

NicevilleJenn, can you please explain your idea a little bit more, because I don't get it exactly at the moment.

But basically, yes, as long as there are cards in the pool, the algorithem works as intended by S. Leitner.

regards

Fink Christoph
LearnLift Development
www.learnlift.com

NYCGuy
Noob
registered since: 13.11.2010
Posts: 3
I find it a little shocking that Memory Lifter fails in its most important function and that this defect has not been corrected.

The problem arises because the programmer made the unwarranted assumption that the pool is never empty. So, the fix that would require the least work to program would be to add a switch on the learning options to permit the user to turn on this feature:

if the pool is empty move the cards from the lowest box that is not-empty into the pool.



MrsPan
Noob
Topic creator
registered since: 04.02.2010
Posts: 8
NYCGuy,

That wouldn't work, because cards in the pool get put in either box 1 or 2. When the pool is emptied, with your suggestion, the contents of box 1 would go into the pool. Eventually, the entire contents of the pool would go into box 2, and box 1 would be empty (barring typos and brain-cramps). Then the contents of box 2 would go into the pool. At this point, box 2 would never overflow so that cards could go to box 3, and nothing above box 2 would ever be asked.
_________________________

LearnLift team,

I still think we need "spaced repetition" implemented when the pool is empty. Even if box 10 were never asked as long as other boxes have cards, eventually all the cards will be in box 10, and they'll be asked again then. Or, as I suggested before, ask a card from box 10 every [some number] of cards, or alternate between box 10 and the lowest box, or ask [some number] of cards from box 10 and then one from the lowest box. (Maybe you could even make that [some number] user-defined, just like we can set box sizes to influence frequency of repetition at the lower levels.)
christoph
Professional
LearnLift Development
registered since: 16.11.2007
Posts: 206
Hello again,

MemoryLifter was just release on CodePlex and I created a discussion there to continue this one: http://memorylifter.codeplex.com/discussions/349173

@MrsPan:
Could you please summarize your current idea there again to kick of the discussion there?

regards

Fink Christoph
LearnLift Development
www.learnlift.com

MrsPan
Noob
Topic creator
registered since: 04.02.2010
Posts: 8
Christoph,

I repeated much of the discussion, and several of my ideas. Now I'm off to download the new MemoryLifter you have over there and try it out.