Skip to content

Basic IRT implementation #329

@ShacharHarshuv

Description

@ShacharHarshuv

This will replace the current "chord-used-based rating" approach, plus, it will enable advance users to find their level quicker.

The IRT algorithm can be used to statically fit exercises difficulties, then we can quickly estimate user levels.

Details

(Discussion with ChatGPT ChatGPT - Rating exercises and students)

  • Use the performance info to statically generate difficulties for each exercise using the IRT algorithm.
  • Use the IRT live to get the student level and to offer fitting exercises. Note: we don't need to avoid easy exercises here, just allow them (though maybe in a smaller probability, to avoid only giving easy options if many easy options exist). NOTE: we must not use repeating tracks to rate. Only new tracks.
    • Tracks that were answered successfully should forever be removed from the list.
    • Tracks answered unsuccessfully should stay, so when the student does better than can do them again. (Note: should add some sort of limit for when they could appear gain, to avoid memory bias…? or avoid rating if they were answered too lately?)
  • For repeating mistakes, we can use a space repetition scheduler on top of that, potentially even using the built-in one as a separate feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions