org.problets.tutor.problemsequencer.competence
Class CompetenceProblemSequencerLimited

java.lang.Object
  extended by org.problets.tutor.problemsequencer.AbstractProblemSequencer
      extended by 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

Field Summary
 
Fields inherited from class org.problets.tutor.problemsequencer.AbstractProblemSequencer
PREDEFINED_FILE_EXT, PREDEFINED_FILE_INDEX, TEMPLATE_FILE
 
Constructor Summary
CompetenceProblemSequencerLimited(java.lang.String inTopic, java.util.Vector correctKMObjectives, java.util.Vector inLearningObjectives)
           
 
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 org.problets.tutor.problemsequencer.AbstractProblemSequencer
getProblemSequencer, loadTemplates, loadTemplates, preProcess
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompetenceProblemSequencerLimited

public CompetenceProblemSequencerLimited(java.lang.String inTopic,
                                         java.util.Vector correctKMObjectives,
                                         java.util.Vector inLearningObjectives)
Method Detail

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)