## 3 Materials and Methods
### Formative Assessment Algorithms  
#### 3.2.1 Elo-Bandit Algorithm  
The focus of the section is the newly proposed in this paper algorithm based on Elo rating and upper confidence bound algorithms, further referenced to as the Elo-bandit algorithm (EBA). It builds on a less precise, classical test theory [45]. The problem of formative assessment can be modeled as taking an item pool on several topics as input, performing the assessment of students, and returning individualized learning suggestions for each student. Suggestions should reflect the topic in most dire need of instruction and item difficulty (easier items first). During the assessment, the algorithm has to negotiate exploration of topics on which student knowledge is yet unknown and investigate weak topics (\"exploitation\" in multi-armed bandit terminology) to precisely determine which items are known to a student. To evaluate student's knowledge on each topic and assess item difficulty the proposed EBA algorithm uses Elo rating system. In simple terms, UCB algorithm first chooses the topic of the next question. Two components go into this choice, already demonstrated knowledge on the topic (Elo estimation) and uncertainty of that knowledge (for example, if a student answered only one item from the topic, the estimation of their knowledge is unlikely to be accurate). The weaker the demonstrated knowledge and the higher the uncertainty the more likely the topic will be chosen. The emergent behavior is that the algorithm at first tries to explore all the topics and then gradually focuses on areas in greatest need of instruction. Because those topics ought to be corrected post assessment and gaining detailed knowledge about them is pedagogically valuable. Simultaneously, as all the students answer the questions the algorithm updates their difficulty estimation. Every correct answer lowers question difficulty, every incorrect answer increases it. However, the magnitude of the change depends on the knowledge of the question recipient: if the knowledgeable on the topic student answers an item the negative change will be small. Because the student is expected to know the answers even to hard questions and it does not necessarily mean question difficulty estimation was inaccurate. The magnitude of the change also decreases as more data is gathered. Algorithm 1 shows the proposed EBA algorithm. Figure 1: Schematic representation of research methodology and its principal components. Firstly, the algorithm attempts to select the least familiar topic, then asks the easiest question within that topic. The weakest topic selection is performed using the following equation:  
\[t_{n}=\underset{t\in T}{argmin}\left(sElo_{t}-C\sqrt{\frac{logn}{N_{t}}}\right) \tag{1}\]  
where \(t\) is a chosen topic for a quiz question \(n\), with \(sElo_{t}\) difficulty estimation. The second parameter in brackets describes uncertainty in difficulty estimation and is controlled by exploration constant \(C\), the total number of questions asked \(n\), and the number of questions asked on the topic \(N_{t}\). The uncertainty parameter decreases as the algorithm probes student's knowledge on the topic and \(sElo_{t}\) estimation become more accurate [54]. Each student is assigned a starting Elo rating on each topic \(t\), \(sElo_{t}\) = 1000. The algorithm takes as input a pool of items, with weights describing their belonging to a number of topics and the guess probability factor. For example, a multiple-choice quiz item with one correct answer option out of four has a guess factor of \(P_{g}\) = 0.25. If no item difficulty calibration data is provided, EBA then assigns each item an initial Elo rating \(iElo\) = 1000. The probability of correct answer \(P_{c}\) to an item with \(iElo\) score on a single topic \(t\) can be calculated using a shifted logistic function:  
\[P_{c}=P_{g}+\frac{1-P_{g}}{1+10^{\frac{(Elo-sElo_{t})}{-400}}} \tag{2}\]  
The base of the exponent, and the denominator in the exponent are the same as in Elo score used in chess matchmaking.