Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spaced repetition based learning program #31

Open
theSage21 opened this issue May 2, 2020 · 4 comments
Open

Spaced repetition based learning program #31

theSage21 opened this issue May 2, 2020 · 4 comments
Labels
help wanted Extra attention is needed site design A system running on the soa site

Comments

@theSage21
Copy link
Member

How about ensuring that a person remembers what they have studied by using a spaced repetition program?

For example, after learning about CPU scheduling, they should be asked questions at correct intervals to ensure that they don't forget that info.

@theSage21 theSage21 added help wanted Extra attention is needed site design A system running on the soa site labels May 2, 2020
@rishabhKalakoti
Copy link

rishabhKalakoti commented May 19, 2020

An idea is to have something like daily/ weekly goals which will give extra currency (like in daily login) as completing them will earn effort too. I personally prefer the weekly idea more.
Steps:

  1. Implementation of a system for timestamp management which will include timestamps like, most recent time for solving an individual task, time that marks the start of a specific track.
  2. Mode of daily/weekly goals. For example, (for weekly) suppose the no of questions is 3, the covered tracks will be divided into three parts (lets say in ratio 4:3:2) and one question to be given from each sections. We will . need to decide if this is to be implemented for tracks individually/ multiple at once.
  3. Calculation formula for selection of task (assuming we will give them the previous tasks again): The tasks can be ordered according to the most recent timestamp and be assigned different weights depending on the difference between the timestamp to current time (the task completed most recently will be given least value) and can be divided over an interval from 0-1 and a random number generator can be used to select the task.

Note: Calculation might not be efficient until we have enough tasks for each track.

Open for discussion.

@theSage21
Copy link
Member Author

Pretty good ideas so far 🎉

  1. Maybe we can track task-user tuples in the database and add timestamps to them?
  2. I think each track will have different requirements of effort so perhaps we can keep the weekly goals for them individual.
  3. This is a little hairy and raises a few more questions:
    1. While designing tasks we need to design them so that a new question is asked every time.
    2. Repeating a task should not become a source for mining more currency.

How does this sound?

  1. Each task is a function which returns an input-output tuple. People have to find the correct output for the given input. This way we can generate an infinite number of "renderings" of the task.
  2. Each task, when completed yields some currency. This however depends on when was the last time you correctly attempted this task. For example, correctly attempting a task months after you've last attempted it right will give you lots of points but doing them twice in a row quickly will only give points for the first attempt.
  3. Something that was implicit in your text above was the concept of a system which sends reminders to a person. We don't want to overwhelm them so this will need careful design.

Let me know what you think.

@rishabhKalakoti
Copy link

I agree with the above points. I guess I will start working on a WIP PR and we can handle the issues on the way.

@theSage21
Copy link
Member Author

theSage21 commented May 19, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed site design A system running on the soa site
Projects
None yet
Development

No branches or pull requests

2 participants