org.problets.tutor.problemsequencer.competence
Class CompetenceProblemSequencerLimited
java.lang.Object
org.problets.tutor.problemsequencer.AbstractProblemSequencer
org.problets.tutor.problemsequencer.competence.CompetenceProblemSequencerLimited
- Direct Known Subclasses:
- RoundRobinLimited
public class CompetenceProblemSequencerLimited
- extends AbstractProblemSequencer
Problem sequencer to help students learn till competent -
picks the problems applicable to the learning objectives
presents them in "appropriate" order
This is different from CompetenceProblemSequencer in the following ways:
1) It does not generate more than a fixed number of templates for a learning objective
Set BaseLearnObjSelector.maxProblems
2) It can select learning objectives sequentially or randomly -
Set BaseLearnObjSelector.sequenceType
3) It can select templates for a learning objective sequentially or randomly -
Set BaseTemplateSelector.sequenceType
3) When templates are generated randomly, it avoids duplicates within the last n/2
problems, n being the size of the template list.
When templates are generated sequentially, if there are more templates for a
learning objective than BaseLearnObjSelector.maxProblems, on subsequent rounds,
it picks up from where it left off rather than repeat the same initial maxProblems
templates on each round. E.g., on round 1: 101, 102, 103, on round 2: 104, 105, 101
instead of 101, 102, 103 again on round 2.
- Author:
- Amruth Kumar
Method Summary |
Template |
getNextTemplate()
Returns the next template. |
java.lang.String |
getStatus()
Returns the number of problems that remain to be solved and the
number of concepts that remain to be learned |
boolean |
isSequenceDone()
Returns true if all the learning objectives have been met, false otherwise |
static void |
main(java.lang.String[] args)
|
void |
printMatchingTemplates()
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CompetenceProblemSequencerLimited
public CompetenceProblemSequencerLimited(java.lang.String inTopic,
java.util.Vector correctKMObjectives,
java.util.Vector inLearningObjectives)
getNextTemplate
public Template getNextTemplate()
- Returns the next template.
Starts over from the beginning if there are no more templates.
Adaptation works as follows: if the student meets a learning objective,
StudentModel will set learning objectives that have been met to KnowledgeModel.OBJ_MET
ProblemSequencer sets an objective to start with KnowledgeModel.OBJ_MET if no templates are found for it.
This method ASSUMES that not all the learning objectives have been met yet.
- Specified by:
getNextTemplate
in class AbstractProblemSequencer
isSequenceDone
public boolean isSequenceDone()
- Returns true if all the learning objectives have been met, false otherwise
- Specified by:
isSequenceDone
in class AbstractProblemSequencer
getStatus
public java.lang.String getStatus()
- Returns the number of problems that remain to be solved and the
number of concepts that remain to be learned
- Specified by:
getStatus
in class AbstractProblemSequencer
printMatchingTemplates
public void printMatchingTemplates()
main
public static void main(java.lang.String[] args)