Yes, this is a well-studied problem.
Here is some information from SuperMemo: https://www.supermemo.com/english/ol/sm2.htm
This algorithm is used in other programs like Anki (https://apps.ankiweb.net/docs/manual.html#studying) and Mnemosyne (https://mnemosyne-proj.org/help/memory-research).
Good luck with your program!