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 [http://mnemosyne-proj.sourceforge.net/principles.html Mnemosyne] (free and open source) and [http://www.supermemo.com/english/algsm8.htm 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 http://www.me.mtu.edu/~dcrose/FSalgorithm.txt 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.