-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path03-adaptive-learning.tex
2716 lines (2494 loc) · 139 KB
/
03-adaptive-learning.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\chapter{Adaptive Learning}
\label{chap:adaptive-learning}
\itquote{
If it is possible that a student can effectively learn something in 10 seconds, it shouldn’t take 11.}{T. Butt}
% TODO: check terminonogly ALS vs. ITS, citation for ALS
\emph{Adaptive Learning Systems}
%ALS\footnote{They are more often called \emph{Intelligent Tutoring Systems} \cite{its-overview}, but we prefer to use the term Adaptive Learning System to emphasize learning (goal), rather than teaching (means).}
optimize the efficiency of the learning process
using techniques of artificial intelligence.
Adaptivity is not necessary for a learning system to be useful%
\footnote{Indeed, most of the systems presented in \cref{sec:existing-systems} are not adaptive.};
however, it can significantly improve the learning.
Artificial intelligence can be used, for example, to
personalize the sequence of tasks \cite{proso}, % for every student,
% TODO: better citation?
% OR: "choosing the most suitable task for given student"
%By giving the student a suitable task -- neither too easy, nor too difficult --
% it can help the student to achieve the state of flow (\cref{sec:motivation.challenge}).
to visualize skills \cite{open-learner-model},
to automatically generate hints \cite{generating-hints}, % TODO: and feedback (CITE)
or to analyze collected data and get an actionable insight \cite{alg.mastery}.
% (e.g. detection of problematic tasks,
% or suggestion how to group tasks into problem sets (CITE))
% TODO: more examples?
%\item cheating detection (CITE),
Adaptive learning systems have been already successful in some domains.
For instance, Map Outlines%
\footnote{Available at \url{https://outlinemaps.org}.},
developed by the Adaptive Learning group at Masaryk University,
is an intelligent web application for learning geography.
It has been used by tens of thousands of students, and
online experiments have confirmed
that the adaptivity of the system helps to improve the learning outcome
\cite{alg.evaluation-geography}.
%In addition to geography, similar adaptive web applications
% for learning anatomy%
% \footnote{Available at \url{https://practiceanatomy.com}.},
% biology%
% \footnote{Available at \url{https://poznavackaprirody.cz} (in Czech only).},
% elementary mathematics%
% \footnote{Available at \url{https://matmat.cz} (in Czech only).},
% or Czech grammar%
% \footnote{Available at \url{https://umimecesky.cz} (in Czech only).},
% were developed by the research group. % in recent years.
%TODO: - mention other famous ITS (Duolingo);
% TODO: examples of ALS for programming?
From the existing systems for learning introductory programming,
Problem Solving Tutor (\cref{sec:problem-solving-tutor}) can be considered
as an adaptive learning system, since it recommends next tasks to solve after completion of a task.
% TODO: mention Umime programovat (mastery for the decision-making game)
\smallskip
Typical adaptive learning system consists of the following parts % five components
\cite{its-learner-models}:
%(extended version of \cite{its-learner-models})
\begin{itemize}
\item \emph{Domain model}
describes tasks and concepts, including relationships between them.
It can also include knowledge of an ideal student (rules for solving tasks),
and misconceptions (flawed rules)
(\cref{sec:domain-modeling}).
% (possibly also misconceptions, rules for solving the tasks).
\item \emph{Student model} %(learner model, user model)
describes past performance of a student on all tasks,
estimates concept skills,
and predicts future performance
(\cref{sec:student-modeling}).
\item \emph{Tutor model}
(instructional policy)
%(instructional policy, instructional strategy, pedagogical module) --
decides what should the student do next,
e.g., which topic to practice, which task to solve
(\cref{sec:tutor-modeling}).
\item \emph{User interface model} %(tutor-student interface) --
describes how the domain, student, and tutor models are presented to
the student (e.g., task environment, an overview of problem sets, achieved
skills, recommended tasks)
(\cref{sec:user-interface}).
%\item \emph{Sensor model} - collecting data from the interactions with the system
% (includes monitoring?).
\item \emph{Analysis layer}
monitors and evaluates system behavior,
allows performing AB experiments,
and manages online training of model parameters.
In addition to these online (inside-the-system) analyses,
offline (outside-the-system) analyses are often performed as well
to discover useful interventions to the system % actionable insight
(\cref{sec:metrics-and-evaluation}).
% \cref{sec:metrics-and-evaluation} discusses how to evaluate
% different models or even whole learning systems.
%\item \emph{Offline analyses} (``Human in the loop'')
\end{itemize}
%TODO: Note: online vs offline models: for domain and tutoring, offline models
%are ok, for student, online models are necessity
% TODO: improved diagram of ALS components (+ used data?)
%\imgW{its-components}{Components of ITS with their input and output}
%- domain model <- all historical data;
%- student model <- student historical data, domain model
%- tutoring model <- domain model, student model
%- experiment layer (online analysis) <- all 3 models (possibly collections if it compares multiple ones) (possibly also UI model)
%- UI <- results from all models (but usually not the actual models) (structure from the domain model for overivew of tasks, skills and mastery from the student model, recommendation from the tutoring model), these models can be selected by the experiment layer
%- ? forward pass (system->student) vs. backpropagation through the models (student->system -> online parameters update)
%- ? models vs. real entities (student model vs. student, UI model vs. UI)
%\subsection{Terminology}
%\begin{itemize}
%\item \emph{Student} (learner) -- TODO.
%\item \emph{Task} (item, problem)
% -- a problem presented to the student to solve.
% Consists of setting, sample solution (and has a \emph{difficulty}).
% (REF figure with an example from previous chapter)
%\item \emph{concept} (knowledge component, chunk)
% -- knowlege (ability) such as loops or conditionals,
% (together with tasks for practicing this ability?,
% maybe: chunk = concept togehter with tasks to learn that concept)
%\item \emph{Task Set} (problem set)
% -- a group of tasks for practicing a concept (chunk?).
% (TODO: remove this term if not used)
%\item \emph{Skill}
% -- how well a chunk is mastered by a student.
%\item \emph{Task Session}
% -- a noninterrupted attempt of a student to solve a task.
% (attributes: success, time, program snapshots)
%\end{itemize}
%TODO: figure illustating all these terms
%TODO: type of chunks: tasks, problem sets (missions, phases), programming concepts,
% syntax concpets (blocks), game concepts, (misconceptions), mastery,
% (NOTE: KLI framework also describes the differences between these different types
% of chunks, which they call knowledge components; + also granularity levels)
\section{Domain Modeling}
\label{sec:domain-modeling}
The domain model describes educational content, concepts, and relationships
between them
%together with an algorithm to lear parameters such as streghts of the relationships from data
\cite{its-domain-models}.
% (TODO: improve the definition, REF to examples), make sure it's consistent
% with the short definition in the chapter intro
It is used in student models to provide structure
for student skills, in tutor models to filter tasks containing a chosen
concept, in the user interface to group tasks into problem sets, and in
analyses, for example, to compare each task to the other tasks in the same problem set.
%\begin{itemize}
%\item Usage:
%\begin{enumerate}
%\item In student models: provides structure for student skills and describes relationships between them, which can be used to predict a performance of student with given skills on given task.
%(This is useful for example for skill transfer -- after observing performances on a few tasks,
% performance on other tasks can be inferred using the relations between the solved and
% unsolved tasks described by the domain model.)
%\item In tutor models, e.g in mastery learning, we can select a task from a practiced concept until the concept is mastered (so we need to know which tasks contain each concept).
%\item In user interface, e.g. grouping tasks into problem sets,
% or providing a rich open learner visualization (in conjungtation with the student model).
%\item In online/offline analysis (human-in-the-loop) for actionable insight
% (e.g. we can find that a task behaves very differently than all others in
% the same problem set, so we will explore the task and find a bug in its setting,
% such as a missing limit, which makes the task much easier then expected).
%\end{enumerate}
%%\item Appropriate model depends on the usage (no single best domain model),
%% so it may be useful to have multiple domain models inside a single system
%% (but the cost of creating and maintaining multiple domain models is a consideration).
%%\item Comprehensive overview of domain modeling approaches e.g. in \cite{its-domain-models}
%% (here we focus specifically on the domain of introductory programming).
%\end{itemize}
\subsection{Learning Objects}
%\subsection{Data and Algorithms}
% consider: "Chunks", "Chunks and Relationships", "General Chunk Model", "Domain Ontology"
Entities in the domain, \emph{learning objects} \cite{learning-objects}, % TODO:reread
include not only tasks, texts, videos, interactive visualizations,
and other educational content,
but also problem sets, concepts, and misconceptions.
Learning objects are associated with content attributes (e.g., task setting)
and parameters computed from performance data (e.g., median solving time).
Typically modeled relationships between learning objects are
generalization (e.g., programming is a more general concept than loops),
inclusion (e.g., a problem set contains tasks),
prerequisites (e.g., single loops are prerequisite for nested loops),
and similarities (e.g., how similar are tasks with respect to their difficulty).
% NOTE: Relationships can be either hard (binary) or soft (continuous).
%\begin{itemize}
%\item Input data (vs. model data) -- content + collected (historical) data.
%\item Content:
% task statement (including name and world description),
% sample solution, labels (e.g. covered concepts), problem sets.
%\item Historical: observations (REF to discussion on performance in student models section).
%\item Model data: chunks and relationships between them.
%\item Chunks = all entities in the domain:
%\begin{itemize}
%\item tasks,
%\item other educational content (text, videos, interactive visualizations),
%\item problem sets (group of tasks usually presented in the user interface),
%\item concepts (aka. knowledge components, learning objectives; e.g. loops),
%\item misconceptions (e.g. "if-statement is a loop").
%\end{itemize}
%\item In addition to content attributes (e.g. setting, description),
% parameters can be associated with chunks, for example:
%\begin{itemize}
%\item median time,
%\item difficulty (?),
%\item mastery threshold.
%\end{itemize}
%\item Furthermore, relationships between chunks can be me modeled:
%\begin{itemize}
%\item inclusion/part-of (e.g., problem set contains tasks, tasks contain
% concepts (Q: direction?))
%\item generalization/subclass (e.g., programming is a more general concept than loops),
%\item prerequisiites (e.g., single loops are prerequisity for nested loops).
%\item TODO: Q: what is the interpretation of the edges in BN
% (vaguely it's something like "influence", or "directly depend on";
% missing edges encodes conditional independence (given the parents))
%\end{itemize}
%\item The graph of entities with the binary relationship betweeen them is
% called \emph{semantic net} (in the field of knowledge representation).
%\item Useful concept in semantic nets is \emph{inheritance}:
% properties of classes also holds for their subclasses and instances (transitively),
% unless an exception is specified.
% For example, instead of setting the same set of allowed blocks in each task
% in a problem set, it is enough to specify that toolbox only in the problem set.
% However, if there is a task in the problem set that needs to add one special block,
% it can override the default toolbox.
%\item All of these relationships can be either hard (binary) or soft (continuous).
%\item Modeling decisions: which type of chunks, (which parameters of chunks),
% which relationships, how to set/compute the values (e.g., structure between
% chunks, values of similarities between tasks), (interpretation/semantics?).
%\end{itemize}
%
%TODO: nonbinary relationships? needed for example to express CPTs in unconstrained BN
%
%TODO: ontologies (= formal description of terms and relationships betwwen them
%in given domain; -> knowledge graphs; knowledge representation field), Bayes Nets
%
%TODO: note: historical data vs. domain data (domain data = "compressed" version of
% "input data" (provided by content creators) and historical data.
%\subsection{Algorithms}
%% EXT:
%%In addition to the data, domain models include algorithms.
%%Domain algorithms can be divided into three categories:
%%learning, inference, and insight.
%Domain models include algorithms for learning from data, inference, and insight.
%Learning algorithms combine content data (e.g., task statements and solutions)
%and %collected
%historical performance data into a compact domain representation.
%Performance data are often used only to learn parameters
%(e.g., task difficulties, similarities), while the structure of the domain is
%specified by the content creator.
%%, but structure of the domain can be learned or improved as well (but that requires much more data) (CITE).
%% EXT: Domain representation can be learned offline, but if new tasks are introduced
%%often into the system, then online update of some parameters may be preferred.
%%, but that is usually not the case in the systems for learning programming.
%The second category, inference algorithms, extend interpretation of the domain data.
%For example, hierarchical domain model may include an algorithm for
%aggregating skills into a parent concept skill. % TODO: another examples
%The third category, insight algorithms, include various visualizations,
%such as projection of all tasks to a plane. % TODO:REF:example
%\begin{itemize}
%\item all but the simplest domain models contain some parameters,
% which can be either set manually or learned from collected data
%\item domain model = data (chunks, parameters, relationships) + algorithms:
% (REF: overview of components in \cite{pelanek-learner-modeling})
%\item 3 types of algorithms:
%\begin{enumerate}
%\item \emph{learning} domain data based on historical data
%\item \emph{inference} based on the domain data
% (? basically semantics/interpretation of the data)
% (e.g algorithms for mapping prerequisites to acceptance decision;
% for mapping task performances to a concept skill/mastery,
% for aggregating skills to a parent concept skill in a hierarchical model)
%\item ? getting \emph{insight} through visualization techniques
% (e.g., projections to plane, TODO: add t-sne example)
%\end{enumerate}
%\item inference must be fast (in our case the domain is small, having tens or
% hundreds of chunks, then linear complexity wrt. to the domain size is ok),
% learning and insight algorihtms can be slower
% (e.g., linear wrt. to the size of historical data)
%\end{itemize}
%\subsection{Tasks}
%
%\begin{itemize}
%\item aka problems, items
%\item name, setting, and solution
%\item parameters (features) --
% computed from setting (e.g., size of the grid),
% solution (e.g., length of the solution),
% and performance data (e.g., median time).
%\item TODO: tasks pool visualization (projection) -- add plot
%\end{itemize}
%
%\subsubsection{\textbf{Concept-free Models}}
%\begin{itemize}
%\item = all task are assumed to cover a single indivisible concept (e.g., "programming")
%\item the simplest domain model = only tasks (no other chunk types) and no relationships
%\item oven without concepts, the models can have
% rich structure (e.g., prerequisities between tasks,
% see right \cref{fig:chunks-prerequisites})
% and many parameters (e.g., similarities between tasks)
%\item REF: usage (most of the existing systems)
%\end{itemize}
\subsection{Concepts}
\emph{Concepts}, or \emph{knowledge components} \cite{knowledge-components},
are features of tasks that correspond to learnable skills % or "skills that students can learn"
required to solve the task.
% NOTE: Examples of concepts of different granularity are programming, loops, and while loops.
% TODO: improve/cite definition of a concept (see e.g., KLI paper -> KC)
\emph{Concept-free} models assume that all
tasks belong to a single indivisible concept.
%While this assumption is reasonable for many logic puzzles, it does not hold for introductory programming.
In introductory programming, this assumption does not hold;
for example, it is possible to master loops while not knowing functions
and vice versa.
\emph{Concept-aware} domain models
enable to build richer, more accurate student models.
% they describe relationships between tasks, which can help student models to
% better estimate performance on future tasks.
% TODO: note on concepts granularity + REF to hierarchy section
Depending on the multiplicity of the concept-task relationship,
concepts are either \emph{disjoint} (1:m) or \emph{overlapping} (n:m)
(\cref{fig:concepts-tasks-disjoint,fig:concepts-tasks-overlapping}).
% NOTE: disjoint model = flat clusters of tasks; aka "concept model", "flat
% concepts" (concepts are flat clusters of tasks, but this name stress that
% there is no hierarchy).
% Single programming task may require multiple skills at once, e.g., both loops
% and conditional commands.
Overlapping concepts can be represented as sets of tasks, a bipartite graph,
or a feature matrix
(\emph{Q-matrix} \cite{qmatrix}, \cref{fig:concepts-tasks-qmatrix}),
where rows correspond to tasks, columns to concepts,
and binary values denote whether given task contains given concept. % or not
In case of \emph{soft membership}, the sets are fuzzy, the bipartite graph has
edge weights, and the values in Q-matrix are continuous from the range $[0, 1]$.
% (\cref{fig:concepts-tasks-relationship}).
\begin{figure}[htb]
\centering
\begin{subfigure}[t]{0.25\textwidth}
\centering
\includegraphics[height=45mm]{img/concepts-tasks-disjoint}
\caption{Disjoint sets}
\label{fig:concepts-tasks-disjoint}
\end{subfigure}%
\begin{subfigure}[t]{0.44\textwidth}
\centering
\includegraphics[height=45mm]{img/concepts-tasks-overlapping}
\caption{Overlapping concepts}
\label{fig:concepts-tasks-overlapping}
\end{subfigure}
\begin{subfigure}[t]{0.3\textwidth}
\centering
\includegraphics[height=45mm]{img/concepts-tasks-qmatrix}
\caption{Q-matrix}
\label{fig:concepts-tasks-qmatrix}
\end{subfigure}
\caption{%
Relationship between tasks (light squares) and concepts (dark rectangles).
Darkness in the Q-matrix shows the strength of the relationship.} % TODO: grammar
\label{fig:concepts-tasks-relationships}
\end{figure}
%\imgW[0.8]{concepts-disjoint-overlapping}{%
% %Comparison of disjoint and overlapping concepts.
% In the disjoint model (left), each task belong to one concept,
% while in the overlapping model (right), single task can contain multiple concepts.}
%
%\vspace{-25pt}
%
%\begin{figure}[htb]
%\centering
%\begin{subfigure}{.48\textwidth}
%\centering
%\includegraphics[width=0.65\textwidth]{img/qmatrix-binary}
%\end{subfigure}
%\begin{subfigure}{.48\textwidth}
%\centering
%\includegraphics[width=0.65\textwidth]{img/qmatrix-continuous}
%\end{subfigure}
%\caption{%
% Binary and continuous Q-matrices corresponding to the
% bipartite graph of overlapping concepts from \cref{fig:concepts-disjoint-overlapping}.}
%\label{fig:qmatrix}
%\end{figure}
Concepts can be either set manually or detected automatically
% NOTE: Automatically: a clustering algoritm (e.g., k-means, k-medoids, spectral clustering)
% operating on task-features or task-task similarity matrix
% (REF: our paper about similarity of programming problems)
\cite{niznan-thesis, rihak-phd}. % TODO: spec.pages
To use collected data while keeping the interpretability of manually defined
concepts, automatic techniques can be used to suggest small improvements to the
current mapping of tasks to concepts \cite[chapter 3]{its-domain-models}.
%Manually defined concepts are interpretable and do not require collected data,
%but may be suboptimal for the intended usage of the domain model.
%% so they can be used for skills visualizations in the user interface
%% to provide students with the information about their learning progress.
%To combine advantages of both approaches, ALS can start with expert-provided
%concepts and later use automatic techniques to suggest how to improve
%the mapping from tasks to concepts \cite[chapter 3]{its-domain-models}.
%TODO: note on more complicated semantics of edges in the overlapping model,
%and assumptions leading to reduction of number of modeled parameters
%(e.g., conjunctive or conmpensatory concepts).
%\begin{itemize}
%\item (motivation) The assumption of a single concept for all tasks is
% reasonable for many logic puzzles (e.g., sudoku), but not in programming.
% For example, it is possible to master loops while struggling with functions,
% and vice versa.
%\item TODO: define/REF
%\item aka knowledge components \cite{knowledge-components}
%\item granularity: while-loop < loops < programming
%\item modeling decisions: which concepts, how granular, what are the
% relationships between them, which tasks belong to which concepts?
%\end{itemize}
%KLI framework \cite{kli-framework}, KCs with examples for programming:
%- variable-variable (principle):
% - very coarse: programming
% - coarse: loops
% - medium: while loops
% - fine: programs with a single while-not-end loop
%- variable-constant (category):
% - coarse: game elements and mechanics?
% - medium: asteroid?, winning rule?
% - fine: ?
%- constant-constant (fact):
% (names of game elements / names of parts of the environemnt / names of programming blocks),
% (behavior of game elements, e.g., what happend when you hit the asteroid)
%\subsubsection{\textbf{Disjoint Concepts}}
%\begin{itemize}
%\item task:concepts 1:m (each task in execatly 1 concept)
%\item aka "concept model", "flat concepts" (concepts are flat clusters of tasks)
%\item Concepts can be either defined manually or detected automatically
% (REF: \cite{niznan-thesis, rihak-phd}, spec.pages),
%\item automatically: a clustering algoritm (e.g., k-means, k-medoids, spectral clustering)
% operating on task-features or task-task similarity matrix
% (REF: our paper about similarity of programming problems)
%\item or semiautomatically, improving upon a mapping from tasks to concepts
% provided by an expert \cite{its-domain-models}, chapter 3).
%\item Manually selected concepts, such as loops and conditional commands,
% have the advantage of being interpretable,
% so they can be used for skills visualizations in the user interface
% to provide students with the information about their learning progress.
% Furthermore, no data needs to be collected in advance,
% while the automatic techniques require a lot of data to provide stable results.
% (TODO: specify "a lot of" + REF).
%\item example in \cref{fig:concepts-disjoint-overlapping} (left)
%\item REF: usage (? ProSo - single concept per problem type, e.g., all tasks in Robotanist are single concept)
%\end{itemize}
%
%\subsubsection{\textbf{Overlapping Concepts}}
%\begin{itemize}
%\item (motivation) Single programming task may require multiple skills
% at once, e.g., both loops and conditional commands (REF to figure with such task).
%\item task:concepts m:n (i.e. each task can contain to multiple concepts)
%\item represenation: bipartite graph between tasks and concepts
% (example in right part of \cref{fig:concepts-disjoint-overlapping})
%\item another representation: matrix tasks x concepts -> 1 if contained, 0 if
% not = "Q-matrix" (see \cref{fig:qmatrix})
%\item values: binary (hard containment) / continuous (soft containment --
% how much is given concept important for given task; concepts are fuzzy sets of tasks)
%\item Q-matrix is a special type of feature matrix, where all features correpond to concepts
% (and the values are normalized)
%\item constructing Q-matrix: manually vs. automatically
% (disadvantage of automatic approach is that it requires quite lot of data and
% that the discovered concepts are not-interpretable) (TODO: REF)
%\item human-in-the-loop approach: does existing Q-matrix (possibly created by
% expert) match collected performance data? what to change for better fit?
% (small "safe" improvements)
%%\item tradeoff between plausibility and complexity:
%% having multiple concepts per tasks introduces "credit assignement problem"
%% = "Which concept is responsible for poor performance?"
%% (details in \cite{pelanek-learner-modeling} + TODO: spec. page)
%\item semantics of the edges is now more complicated than for disjoint concepts,
% because each concept can be presented in the task to a different degree
% and skills in these concepts may interact in diverse ways,
% (?) generally: any function mapping the skills (or their probability
% distributions) of the parent concepts to the predicted performance (or its
% probability distribution) (e.g., in general BN);
%\item usually, some assumptions are made to decrease the number of modeled parameters;
% for example:
% additive model (skills are added, so a higher skill can compensate for a lower skill),
% conjunctive model (all skills needed to solve the task)
% disjunctive model (any single skill is enough),
% DINA and DINO (which are probabilistic versions of conjuctive and disjunctive modes
% respectively, that introduce a \emph{guess} and \emph{slip} factors to give a nonzero
% probability to the events such as when a student solves a task without
% having mastered all required skills).
% \cite[chapter 3]{its-domain-models}.
%\item Additive models can also include a normalization of the sum, e.g.,:
% $\hat{p}_{ij} = \sigma(s_j \cdot t_i)$, where
% $\hat{p}_{ij}$ is the predicted (continuous) performance of student $j$ on task $i$,
% $s_j$ is the vector of skills, $t_i$ is the row in Q-matrix for the task $i$,
% and $\sigma$ is logistic sigmoid. (TODO?: example)
% (TODO: fix: performance is undefined at this point...)
%% TODO: consider precise formulation for all other models as well,
%% see \cite[chapter 3]{its-domain-models}.
%% Note: We can also look on the interpretation from the other side: once the task
%% is failed, which skill(s) is/are to blame and how much (ie. how to decrease our estimates
%% if we predicted a success).
%\item TODO: is there an interpretation makes best sense in our domain?
% (DINA and additive models seem reasonable, others not;
% TODO: add an example to illustrate why the others are bad for us).
%\end{itemize}
%\subsection{Problem Sets}
%
%\begin{itemize}
%\item aka task sets, topics, units, chapters,
% (and we call them "missions" and "mission phases" in RoboMission)
%\item ? usually corresponds to concepts (or it is convenient if they do),
%\item can be hierarchical (and the hierarchy should match the hierarchy of
% corresponding concepts)
%\item can be ordered (and the ordering should follow the prerequisity structure
% of corresponding concepts)
%\item single concept can be practiced by multiple problem sets
% (e.g., loops in robot on grid and in turtle graphics)
%\item usually presented in the UI (? so it can be viewed as a part of the UI model instead)
%\item REF usage: everywhere (Umime programovat, Tutor -> Robotanist is a single PS)
%\item TODO: discuss example of Umime programovat (tree of concepts, problem
% sets, each PS maps to a (single?) concept; where are items?)
%\end{itemize}
\subsection{Hierarchical Models}
Concepts vary in granularity and create hierarchies.
For example, programming concept includes loops, loops include while loops,
and while loops include programs with a single while-not-end loop.
% TODO: CITE \cite{kli-framework}?
The hierarchy can be modeled either as a rooted tree (single parent concept allowed)
or as a directed acyclic graph (DAG) (\cref{fig:concepts-hierarchical}).
Although hierarchical concepts can be used without modeling the hierarchy
(using overlapping concepts, e.g., a task can contain while loops and
a more general loops concept), explicitly modeling the hierarchy of concepts in
the introductory programming can improve the accuracy of the overlaying student model
\cite{learner-models-integration-skills}.
% NOTE: paper: they model domain as BN with 4
%types of nodes: observations, base concepts, integration concepts (TODO:
%example), cognitive load node; they show that it's important to have also
%tasks linked directly to these integration concepts.
%\imgW{concepts-hierarchical}{Hierarchial concepts as a tree (a), or a DAG (b).}
\begin{figure}[htb]
\centering
\begin{subfigure}[t]{0.4\textwidth}
\centering
\includegraphics[height=45mm]{img/concepts-hierarchical-tree}
\caption{Tree of concepts}
\label{fig:concepts-hierarchical-tree}
\end{subfigure}%
\begin{subfigure}[t]{0.6\textwidth}
\centering
\includegraphics[height=45mm]{img/concepts-hierarchical-dag}
\caption{DAG of concepts}
\label{fig:concepts-hierarchical-dag}
\end{subfigure}
\caption{Hierarchical domain models.}
\label{fig:concepts-hierarchical}
\end{figure}
%\begin{itemize}
%\item in addition to the relationships between tasks and concepts,
% we can also model the relationships between concepts
%\item two commonly modelled relationships are generalization (this section) and
% prerequisities (next section)
%\item hierarchical model = allow for generalization relationship between concepts
%\item (relationship name: generalization / specialization / inclusion ?)
%\item representation: rooted tree of chunks, inner nodes = concepts, leaves = tasks
%\item extension: DAG instead of tree
% (comparision tree vs DAG in \cref{fig:concepts-hierarchical})
%\item Note that we can of course use hierarchical concepts and yet decide not to
% model a hiearachy (although in that case, overlapping concepts are necessary,
% e.g., if the task practices while loops, it also practices loops and programming concepts).
%\item construction: manually/automatically (hierarchical clustering?)
%\item TODO: discuss relationship between inclusion and prerequisities
% (Q: isn't inclusion just a special case of soft prerequisity?
% You need to master loops before you master programming (AND-node),
% you need to master at least one of these tasks to master the loop concept (OR-node).)
%\item REF usage: MatMat (math domain)
%\item tasks in leaves only / in all nodes (different semantics of inner nodes:
% "composition of independent concepts" vs "integration concepts"
%\item Experiment showing usefulness of hierarchial model in introductory programming:
% \cite{learner-models-integration-skills} -- they model domain as BN with 4
% types of nodes: observations, base concepts, integration concepts (TODO:
% example), cognitive load node; they show that it's important to have also
% tasks linked directly to these integration concepts.
%\end{itemize}
\subsection{Prerequisites}
Prerequisites specify which learning objects need to be mastered prior to
tackling a given learning object.
For example, \emph{single loops} are a prerequisite for \emph{nested loops}.
% If learning objects has multiple prerequisites, there are two common interpretations:
There are two conventional interpretations of multiple prerequisites:
\emph{conjunctive prerequisites} (all must be mastered)
and \emph{disjunctive prerequisites} (one mastered is enough).
Conjunctive and disjunctive prerequisites can be represented together by
\emph{and-or graph} (\cref{fig:prerequisites-and-or}).
If only conjunctive prerequisites are needed, then it is enough to represent
prerequisites by a DAG %, called \emph{Partial Order Knowledge Structure} (POKS \cite{poks}, ...)
\cite{poks} (\cref{fig:prerequisites-poks}).
More generally, each learning object can specify a function from skills of
its prerequisites
into a prior skill (and leave the \emph{ready-to-tackle decision} on a tutor model).
If the skills can be interpreted as probabilities, then the resulting prerequisite structure
is a \emph{Bayesian network}; this approach was used in \cite{its-programming}.
% TODO: CITE BN.
% NOTE: its-programming: prerequ. between concepts interpreted as BN (params
% computed from historical data);
%\imgW[0.9]{chunks-prerequisites}{%
% Left: prerequisites between first-level concepts (AND);
% right: prerequisites between tasks (AND-OR).
% TODO: "while+if-else"; add separate and-nodes and use arc for ANDs instead of ORs}
\begin{figure}[htb]
\centering
\begin{subfigure}[t]{0.54\textwidth}
\centering
\includegraphics[height=40mm]{img/prerequisites-and-or}
\caption{And-Or graph of tasks}
\label{fig:prerequisites-and-or}
\end{subfigure}
\begin{subfigure}[t]{0.45\textwidth}
\centering
\includegraphics[height=40mm]{img/prerequisites-poks}
\caption{DAG of concepts}
\label{fig:prerequisites-poks}
\end{subfigure}%
\caption{Domain models with prerequisites.}
\label{fig:chunks-prerequisites}
\end{figure}
%\begin{itemize}
%\item multiple edges -- multiple interpretations: e.g.,:
% AND (all prerequistes must be met),
% OR (at least one prerequisity must be met),
% (TODO?: noisy and, noisy or),
% ? additive (compensatory) prerequisites
% (analogous to the multiple concept skills to task performance mapping).
%\item Generally, the interpretation can be any function from skills/performance
% associated with prerequisites to a (binary) decision whether the prerequisites are met
% (when working with probabilities, this leads to Bayesian networks?)
%\item special case of only AND nodes = POKS ("Partial Order Knowledge Structure")
%\item representation: genarally BN, restricted: AND/OR directed acyclic graph (DAG),
% or even just DAG for POKS (examples in \cref{fig:chunks-prerequisites})
%\item REF usage:
% (1) KSI (existing systems) -- and/or prerequisities between tasks;
% (2) \cite{its-programming} -- soft (continuous) prerequisities (and only?)
% between concepts interpreted as BN (params computed from historical data);
% (3) another example (for math): Dybuster Calcularis (Design and evaluation of the computer-based training program calcularis for enhancing numerical cognition.)
%\item can be combined with the hieararchical models
% (?) and it can actually make the prerequisity structure easier, because
% many edges between two groups of chunks on the same level
% can be replaced by a single prerequisity between 2 higher-order chunks
% (this is an example of the inheritence property).
% (TODO: picture to illustrate the point, showing how many prerequisites between
% 2 groups of tasks can be replaced by a single prerequisity edge between 2 concepts)
%\end{itemize}
\subsection{Similarities}
%Similarity is a symmetric relationship between learning objects of the same type, for example tasks.
Similarities can be represented either as a matrix of values from the range $[0, 1]$
(the higher number, the more similar objects),
or as a graph with edges between the most similar learning objects
(\cref{fig:similarities-tasks}).
In the \emph{network model} \cite{rihak-phd}, task similarities are used to propagate
knowledge about one task (observed performance) to other tasks (estimated performance)
directly, without using concepts.
% example: if student solves a task -> update our performance estimates on all other tasks
The most crucial decision when computing similarities is what data to use
\cite{alg.similarity}.
The decision depends both on the intended usage and on the amount of collected data
available. For example, performance data are useful if the similarities are used in a
student model to predict future performance; however, it requires that enough
performance data is collected in order for the computed similarities to be stable.
%Similarities between tasks, can be computed from either a feature matrix using task settings and solutions,
% NOTE: 2nd level of similarity - often helps (when using performance data) \cite{rihak-phd}
% REF: to our research on item similarity in introductory programming
%(TODO: mention the most relevant results from the paper:
% which data to use -- important, which metric -- less important; recommended transformations)
% TODO: CITE relevant papers on computing similarities
\begin{figure}[htb]
\centering
\begin{subfigure}[t]{.48\textwidth}
\centering
\includegraphics[width=0.7\textwidth]{img/similarity-matrix}
\caption{Similarity matrix}
\end{subfigure}
\begin{subfigure}[t]{.48\textwidth}
\centering
\includegraphics[width=0.8\textwidth]{img/similarity-graph}
\caption{Similarity graph}
\end{subfigure}
\caption{%
Representation of soft and hard similarities between tasks.}
\label{fig:similarities-tasks}
\end{figure}
%\subsection{Evaluation}
%
%\begin{itemize}
%\item problem: many options, which one to choose
%\item again: no single best domain model depends on its intended usage
%\item thus: the model should be evaluated wrt. the usage,
% which can mean we can reduce the problem of evaluation the domain model
% to the evaluation of the application -- try a bunch of different domain
% models and see their effect on the performance in the application
%\item limitations:
% (1) Only works with a small number of domain models to try
% (if we want to optimize a continous parameters of the domain, then it
% is more difficult).
% (2) Requires the ability to evaluate the application, which is not
% always possible (e.g.,: getting insight, open learner model) or is
% slow (e.g., requires online experiment).
%\item REF to details on evaluation in the last sections of this chapter
%\item TODO: illustrate: select one example of evalution and describe properly
% (some approaches to evalution are e.g., in \cite{rihak-phd})
%\item TODO: example -- learning curve analysis \cite{its-domain-models}
%\item example: verification of homogeneity of tasks that are assumed to be
% homogenous (interchangeable) according to current model (ie. they should
% have similar average success and solving times; statistical test testing
% that solving times comes from different distributions can be performed)
% (TODO: perform such test and illustrate, showing the two distributions
% and result of the test)
%\end{itemize}
\section{Student Modeling}
\label{sec:student-modeling}
The student model captures the state of the student (e.g., skills) estimated from the
past performance and it usually enables to predict future performance
%Comprehensive overviews of student modeling:
\cite{student-models-review-2012, pelanek-learner-modeling,its-learner-models}.
It is used in tutor models to detect mastery, or to select tasks matching
student's skills, in the user interface to visualize skills \cite{instructor-dashboard-realtime},
and in the analyses to get insight into how the students are learning. % TODO: elaborate
% TODO: add citations of examples for usages
% NOTE: in tutor models += showing hints when a student is digressing from the
% path towards a solution.
% NOTE: In UI: showing feedback for the students and teachers
% (visualization of skills -- "open learner model").
%\subsection{Domain vs. Student}
%
%TODO: These are just internal notes. After incorporate clarifying comments
%to relevant places, consider removing this section.
%
%\begin{itemize}
%\item The line between "domain" and "student" is fuzzy.
% It differs a lot in different papers; some even don't distinguish a separated
% domain model. (REF examples)
%\item We have decided to take the following approach:
% The sole responsibility of student model is to track skills of a \emph{single}
% student. Thus, the domain model includes also population-specific parameters,
% such as initial skills, learning rate, chunk difficulties,
% precise (numeric) relationships between skills (prerequisites, mastery).
%\item ?? Some of these parameters are learned within the domain model
% and then used as fixed parameters in the student model.
%\item TODO: The above notes about population parameters to the domain section.
%\item We could define a separate \emph{population model}, which would be useful
% if ?? we would like to model more populations and/or
% estimate the population parameters online
% (?? REF: slepe mapy - prior knowledge + difficulties estimation)
%\item Note that even which chunks exist what are the relationships between them
% may depend on the population (if the population is diverse), so there is
% really no clear division on what should be a part of
% "population independent domain model" and "population model"
% (because it inherently depends on the population using the system,
% so we can decide only for the current population and provided we have collected
% enought data to analyze how large the differnces between subpopulations are
% and if it has significant impact on the application the model is used for).
%\item ?? While being non-standard, we found this division to best match separation
% of concerns and thus be suitable for both explaining (as in this text)
% and impelementation (as in the developed system).
%\item Domain vs Student:
% initial skills x current skills,
% concepts x skills,
% (tasks x performance),
% difficulties x skills,
% common for all students x for each student,
% offline x online.
%\item Domain = state space, student = point in that space space
% (\cite{its-learner-models}).
%\item example (from \cite{its-programming}):
% domain model is DAG of concepts together with a Bayesian network over this DAG
% (i.e. assignment of conditional probabilities to the edges),
% student model is (for each student) assignment from each concept to the
% knowledge (known / unknown / not-sure) -> knowlege for any concept can be
% then inferred using the Bayesian network.
%\end{itemize}
\subsection{Classification of Student Models}
A lot of diverse student models were proposed, to cover many possible scenarios
based on the available data and usage of the model. The following
are the main properties that differentiate the models.
\begin{itemize}
\item \emph{Modeled components.}
In addition to modeling skills, broader student models can
also include emotions (e.g., frustration, boredom), needs, preferences, motivation,
and metacognition \cite{affect-sensor-free,its-review-2010}.
In this thesis, we restrict our attention to the models of skill.
%(knowledge about their knowledge) (REF).
% NOTE: + preferences, e.g., about ideal challenge level, amount of text, theme,
% e.g., prefer tasks with a shooting spaceship or with ice-skating princesses
\item \emph{Underlying domain model.}
The simplest models assume a single concept,
% or each task as separate concept. %(REF: slepe-mapy).
more complex models can include multiple concepts,
hierarchies, prerequisites, or similarities (\cref{sec:domain-modeling}).
\item \emph{Time scale of modeled events.}
Some models track the state of the student during solving a task
\cite{bkt, sqltutor}, % TODO:CITE: rule-based models, constraint based models),
while others describe the state of the student only between tasks %sessions
\cite{kli-framework}. % TODO: check, add citation
% or even only between finished problem sets.
\item \emph{Discrete or continuous skills.}
Some models assume discrete skills (e.g., known/unknown, or with multiple levels),
% e.g., unknown -> known -> fluent; or LogisticHMM
%(CITE/REF:BKT)
while others assume continuous skill
%(CITE/REF: logistic models).
\cite{pelanek-learner-modeling}.
\item \emph{Representation of skill estimate.}
Instead of modeling full probability distribution of the skill, % discretized?
most models track only a single point estimate
(possibly with another parameter describing its uncertainty).
% TODO:CITE?
%?? or they assume a specific shape of the distribution that can be described by
%a few numbers (e.g., mean and standard deviation for normal distribution).
\item \emph{Representation of performance}.
Performance can be represented as binary correctness (solved or failed),
discrete performance levels (e.g., poor, good, and excellent),
continuous performance (in the range $[0, 1]$),
%(\emph{partial credit} CITE) ($p_{ij} \in [0, 1]$)
or (log-transformed) solving time.
%log-time (REF: why log; possibly also REF to a relevant figure in Analysis chapter),
% NOTE:score combining time and correctness \cite[p.106]{rihak-phd} -- not relevant for use
%\item ?? \emph{probabilistic models} (vs. deterministic)
% = predict a probability distribution of performance instead of a single point
% (?? and/or represent skill as probabilist distributions?)
\item \emph{Predictive or descriptive}.
Predictive models can predict the performance of the student on a given task,
while descriptive models only summarize the past performance of the student
(e.g., a model can count the number of consecutive tasks solved with good performance).
% TODO:CITE/example (NCC)
\item \emph{Online or offline.}
In online models, parameters can be updated gradually after each task session
(i.e., there exist an efficient online algorithm for learning model parameters).
% CITE: online algorithms.
\item \emph{Assumptions about learning.}
Models used in \emph{adaptive testing} \cite{cat} assume no learning.
% that no learning occurs during interaction of the student with the system.
%They can be reduced to models with
%learning by reestimating skills from the full student history after each task
%session, but this leads to offline models.
Models that include learning use additional assumptions
about how the learning happens. % TODO:CITE:examples
For example, some models assume constant skill increase after each solved task.
% TODO: cite (PFA / Rash?)
% e.g., a constant increase of skill after each attempted task (CITE:PFA?).
%For example, BKT (\cref{sec:bkt}) assumes a discrete transtion from unknown
%state to the known state.
%\item \emph{Complexity} (\cite{pelanek-learner-modeling} + TODO:page)
%The more skills and relationships between them the model includes,
%the more precisely it can capture the reality, but only
%if there is enough data to train the model; otherwise we are in danger of
%overfitting. (TODO: REF to the bias-variance tradeoff).
%The number of parameters that are specific for students must be low in order to
%estimate them quickly after just a few interactions of the student with the system.
%(+ they are assumed to change, no older observations loose their value)
%More complex models might be also more difficult to implement, debug and interpret.
% (?? this is a different kind of complexity; the first is size of hypothesis space)
\end{itemize}
%Which student model to used depends on the domain, intended usage, and also
%on the type and amount of data we have.
%In the rest of this section, we restrict our attention to the models relevant
%for the domain of introductory programming and the type of the system we
%are building. Specifically, we focus on models that
%model only skills of concepts and predict performance on tasks,
%allow for multiple skills per task,
%assume learning and can be updated online.
In \cref{sec:logistic-models,sec:dbn}, we describe two broad
families of predictive models of student's skills between tasks,
focusing on their versions % suitable for ALS for learning programming,
that can incorporate multiple concepts, learning and allow for online update. % of parameters.
\subsection{Skills and Performance}
%\subsection{Data and Algorithms}
Student models use a domain model as an underlying structure,
assigning estimated \emph{skills} to each concept, % either estimated or self-declared
and \emph{performances} (either observed or predicted) to each task.
% NOTE: space-time tradeoof: Typically, all but the predicted performances are stored.
%Skills can be represented as a single point estimage, or with uncertainty,
% or even full distribution of the estimated skill.
Similarly as skills summarize all previous task sessions of the student,
performance is a compressed information about the series of
interactions with the task (code edits, executions, taken hints, user rating). %self-evaluation).
Performance measurement can range from simple heuristics based on summary statistics
(e.g., specifying solving time thresholds for excellent and for good performance),
through more complex algorithms that consider all interactions with the task,
to a recurrent neural network reading the series
of program snapshots embeddings % AST transformed to vectors of floats
\cite{student-models-deep-learning}.
% NOTE: Sweat spot: somewhere in between these two rather extreme approaches.
While the compression causes a loss of information, it also reduces noise
present in the raw data. Moreover, it helps to avoid a combinatoric
explosion of considering each type of model with multiple different types of
input data and their combinations.
The most important consideration for performance measurement is which data to use
(e.g., correctness, solving time) \cite{alg.mastery}.
%Used data play an important role, e.g., in \cite{alg.mastery}
%Having a unified simple performance input makes the models simpler and easier to interpret.
%Used data play an important role, e.g., in \cite{alg.mastery} they achieved
%better results in mastery learning by incorporating solving times into the
%performance instead of using just binary correctness (TODO: domains? math,
%czech).
% EXT:
%There are three types of algorithms linked to student models: online update
%of skills after a new task session, prediction of performance on given task,
%and insight algorithms that work either with a single student (e.g., skills
%visualization), or a population (e.g., plotting learning curves).
%\subsection{Performance}
%\begin{itemize}
%\item Observed data from a task session:
% solved/not, solving time, number of code executions, number of edits,
% or even the individual edits (program snapshot), hints taken,
% rating or labels provided by the student (e.g., perceived difficulty).
%\item TODO: mention different granularity/frequency levels for taking program
% snapshots: edits (AST changes), executions
% (REF: Educational Data Mining and Learning Analytics in Programming:
% Literature Review and Case Studies -- they differentiate more levels:
% and instead of "AST changes" they specify 2 levels ("key strokes" and
% "line-level edits"), but only the two are relevant for us (and most online,
% block-base programming environmant).
%\item We first compress these \emph{observational data} into a
% single number representation of \emph{performance}.
%\item The chosen representation/computation may play important role for the usage
% of the student model, e.g., in \cite{alg.mastery} they achieved better results
% in mastery learning by incorporating solving times into the performance instead
% of using just binary correctness (?? domains: math, czech).
%\item Performance representation in introductory programming:
% most students solve most tasks given enough time, so correctness is out of
% question. We could still map task session data into a binary performance (1
% = good, 0 = poor), but that would not allow to distinguish between students
% for whom are the tasks just right and those for whom are too easy.
%\item Three-level domain $p_{ij} \in \{0, 0.5, 1\}$ (poor, good, excellent performance)