lakesare / memcode

Spaced-repetition: with real formatting.
http://memcode.com
MIT License
330 stars 71 forks source link

fix getNextScore.test.js #138

Closed mustafa0x closed 2 years ago

mustafa0x commented 2 years ago

On a related note: how do you feel about this algorithm in general (getNextScore.js)? Would you recommend it?

lakesare commented 2 years ago

Thank you for the fix!

getNextScore.js employs a heuristic formula - it's loosely based on the original SM2, but adjusted to return better time intervals. I most certainly recommend it, thousands of users use Memcode and seem to find the algorithm fitting. I myself have been using Memcode with this algorithm for years and it sure fits my brain.

But in general I believe we can use any particular numbers (within reasonable constraints) in the SM2 algorithm - the user adjusts intuitively when to grade themselves at 2 and when at 5 (https://twitter.com/memcodeapp/status/1336286253566799874).

mustafa0x commented 2 years ago

Thanks, appreciate your input. I definitely agree with the premise of the tweet. For that reason I'm looking for an algorithm that is both intuitive to the user and gives them control of when they want to see this card again.

I wrote a quick test page for getNextScore, and seemed to be a good choice, but I did notice something. The difference between grade 5 and 4 seems to be very minor. Also, 1-3 seem to be fail grades, which seems to be a bit much.

https://svelte.dev/repl/810665a44c904c17876fea2fc36fed8d?version=3.46.2

lakesare commented 2 years ago

Excellent, thanks for creating such a nice playground!

I agree 4 should be more punishing, but certainly not a fail grade like 1-3 are (and maybe we want a smoother transition to failure for 3 too).

Ideally we would manually specify the desired "scheduled to (days)", and then perform regression analysis. If you have some time to do this sort of a thing it would be greatly appreciated (or if you're able to just intuit a better formula!).

Added the discussion: https://github.com/lakesare/memcode/discussions/142.