The algorithm functions in a way that during the card learning you can determine a convenient learning flow: you select a topic and learn it step-by-step, or chose the theory first and master the cards later.
Moreover, we have created a unique users’ rating calculation algorithm. When calculating the rating, a card with the highest score is considered to be passed (leaning on the answers and score - the correct answer is set when the cards are being created). The user will get the lowest score cards first, cards with higher and higher scores will appear later during the repeated learning. All these are covered by the algorithm.