Package org.problets.tutor.problemsequencer.competence

Class Summary
BaseLearnObjSelector Serves as the base class for learning objective selectors Helps select the next learning objective for CompetenceProblemSequencer Could select next learning objective in Sequence, or Random Also, limits the number of problems generated in sequence for a learning objective
BaseTemplateSelector Serves as the base class for tempalate selectors Helps select the next template for a learning objective Could select next template in Sequence, or Random Ensures that templates are not reused Could help audit the problems generated for each learning objective
CompetenceProblemSequencerLimited 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.
RandomLearnObjSelector Helps select the next learning objective for CompetenceProblemSequencer Selects the next learning objective in random Prevents using the same learning objective back to back unless it is the only one left Limits the number of problems generated in sequence
RandomTemplateSelector Helps select the next template for a learning objective Selects the next template in random Ensures that templates are not reused (at least in as many templates as the size of history) Could help audit the problems generated for each learning objective
RoundRobinLimited Problem sequencer to be used for control groups when testing adaptive problem generation - 1) It generates problems for all the learning objectives, in the order in which they appear in the correct knowledge model (not student knowledge model) 2) Regardless of whether a student has met a learning objective, it continues to generate problems on the learning objective 3) For each learning objective, it does not generate more than a fixed number of templates, the number decided by BaseLearnObjSelector.maxProblems By virtue of inheriting from CompetenceProblemSequencerLimited, it also does the following: 4) It can select learning objectives sequentially or randomly - Set BaseLearnObjSelector.sequenceType 5) It can select templates for a learning objective sequentially or randomly - Set BaseTemplateSelector.sequenceType 6) When templates are generated randomly, it avoids duplicates within the last n/2 problems, n being the size of the template list.
SequenceLearnObjSelector Helps select the next learning objective for CompetenceProblemSequencer Selects the next learning objective in Sequence Limits the number of problems generated in sequence
SequenceTemplateSelector Helps select the next template for CompetenceProblemSequencer Selects the next template in Sequence