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

Add Spaced Repetition and Randomize Order of Commands #22

Open
khanra17 opened this issue Apr 1, 2023 · 8 comments
Open

Add Spaced Repetition and Randomize Order of Commands #22

khanra17 opened this issue Apr 1, 2023 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@khanra17
Copy link

khanra17 commented Apr 1, 2023

Hi there,

I recently discovered your GitHub project for learning Helix through GIFs and I must say, I'm impressed with the idea. However, I noticed that the commands are always presented in a specific order, which may make it easy for users to simply follow a pattern rather than actually learning the commands.

For example, the project often presents the command "move cursor down" followed by "move cursor up". While this order may help users memorize the commands more easily, it may also lead to users simply following the pattern instead of actually learning the commands. They may automatically press "k" after "j" without reading the statement.

As a suggestion, I would like to request two features that could improve the learning experience:

  • Spaced Repetition: This would help users to remember the commands more effectively by presenting them at specific intervals to improve long-term memory retention.

  • Randomized Order: This would ensure that users are actually learning the commands and not just following a memorized pattern. It would also make the learning experience more engaging and challenging.

@tomgroenwoldt tomgroenwoldt self-assigned this Apr 1, 2023
@tomgroenwoldt tomgroenwoldt added the enhancement New feature or request label Apr 1, 2023
@tomgroenwoldt
Copy link
Owner

Hey, thanks for the suggestions. I agree with your points though I'm not quite sure how I would add spaced repetition to the architecture I'm currently using. Could you elaborate on that point?
Randomizing the order will be pretty easy and I like the idea of always having a random order when opening the application. What do you think about adding a random mode additionally to your idea, in which a number of shortcuts from all categories will be quizzed to the user?

@khanra17
Copy link
Author

khanra17 commented Apr 2, 2023

To implement spaced repetition, one approach could be to track the number of times a user enters a wrong input for a shortcut. The shortcuts with a higher number of wrong inputs would be presented more frequently to the user in order to help them remember the correct input.

Regarding the random mode, I think it's a great idea to have a separate mode that presents random shortcuts from all the categories. Instead of randomizing each shortcut inside a lesson, this approach would allow for easier implementation of spaced repetition, since the system would only need to track the user's performance only in the random mode.

Thanks for considering my suggestions, and I'm excited to see how your project evolves!

@khanra17 khanra17 changed the title Add Spaced Repetition and Randomize Order of Vim Commands Add Spaced Repetition and Randomize Order of Commands Apr 2, 2023
@tomgroenwoldt
Copy link
Owner

I see. I will probably first finish #9, as this eases up everything. I still like the idea of randomizing the order of the GIFs inside each category to prevent users from just remembering the order of the commands!

@khanra17
Copy link
Author

khanra17 commented Apr 3, 2023

That's a good plan. Good luck!

@tomgroenwoldt
Copy link
Owner

Hey :) #24 was merged today and adds a random category plus a shuffled GIF order in all categories. The random category takes 10 random, currently unplayed GIFs. If you answer correctly, those GIFs are saved in your progress. Currently it's not a very clean solution, I will refactor the code when I have the time. I am happy about feedback!

@khanra17
Copy link
Author

khanra17 commented Apr 7, 2023

Great job on the updates! I have been trying out the new features and am enjoying the randomized order in the "All Random" mode. However, I was thinking that it might be helpful to have separate modes for each individual section - a "Normal" mode and a "Practice" mode.

For users who are trying the project for the first time, having the commands presented in a specific order can be helpful for building a foundation of knowledge. Then, after they have gone through the tutorial, they can practice with the randomized order in the Practice mode to test their knowledge.

What do you think about adding Normal and Practice as separate modes? It could provide a more structured learning experience for beginners while still giving more experienced users the opportunity to challenge themselves. Keep up the good work!

@tomgroenwoldt
Copy link
Owner

I do like this idea, I will look into this :) Thanks for the suggestion (again 👍 )

@tomgroenwoldt
Copy link
Owner

Just a heads up: I was/am quite busy with university and don't know for sure when I have the time to work on the project (and specifically this task) :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants