Please critique the feasibility of these suggestions...

...previous suggestions archived.

Suggestion4: Dump the current tutor algorithm for a spaced repetition algorithm

(!) Ghostal writes: This is related to suggested #1 and replaces the old suggestion #4. FS doesn't do a very good job of teaching new vocabulary, which is supposed to be FS's entire purpose. Let's say you come across a word you've never seen before, with a root you've never seen before. It's difficulty is 3/3. You select wrong, it's difficulty is 3/2. Even doing "hardest, last seen" you aren't going to see that word again for a long, long time and you'll forget it completely. The solution is a spaced repitition algorithm. Here's the basics: The user selects a grade for his answer from 0-4, for example. These grades may correspond to 0="wrong/never seen before" 1="wrong/remember seeing it before" 2="partially correct/confused it with a different word" 3="correct/not confident I'll remember" 4="correct/confident I'll remember". The program then schedules the next time that word should appear: 0="1 minute" 1="5 minutes" 2="15 minutes" 4="2 days" 5="2 weeks", for example. That's basically how this algorithm works, but they can be as simple or as complicated as you want. For starters, you can examine [ Mnemosyne] (free and open source) and [ SuperMemo] (commercial, but the algorithm is described in enormous detail)


BenS writes: Thanks for this - I was aware SuperMemo for some years, but the Mnemosyne project has sprung up in the meantime. It does mention some papers that could be run through the Wikipedia to get a bearing on the work. I am convinced of the utility of this, but wanted to see an independant academic paper on the method, rather than taking vendors words for it or proceeding anecdotally - there are so many methods touted. Basically, I don't want to research the method, just want to code it - and want to be sure it works, before investing the time into understanding what seems quite a complex algorithm. If someone could do that thinking/surveying for me it would remove a barrier for getting it in there.

Internally, FoundationStone uses the Strategy; Iterator/Aggregate Patterns to implement whatever strategy is desired - so it's not a big deal to implement, and can be released in an autoupdate. If you know Java, or can write Pseudo code, I can give you these classes to speed implementing this up.

Being in the middle of pulling the heart out of the application (getting a SQL database, Hibernate persistance in there) I'm not in a position to start this until after I do a release that handles sound (the reason why the simplicity of flat text files is being abandoned). Sound is important because I intend to take that feature to Israel in late 2006 to get some multi language audio onto the lists, with the help of people I meet.

(!) Ghostal writes: I uploaded a txt file of my idea here. Each word's difficulty is represented by a velocity, which controls how fast the word rises up to the top to be displayed.

BenS writes: Thank you, made this into English/VelocityStrategy. Feel free to suggest a better name. If there is any background to where it comes from could you post it - there is a steady stream of questions people ask about the cycling strategies. I'll try and get this in as the first minor release after the next major release - if that makes sense.

(!) Ghostal writes: Ran across yet another intriguing flash card program, jMemorize, that uses a slightly different method. It's also open-source and written in java.

English/Suggestions (last edited 2011-05-09 06:37:09 by BenS)