210 likes | 414 Views
Course Generation Based on Hierarchical Task Network (HTN) Planning. Carsten Ullrich, ABIS’05. Course Generation, Example. Learn about “derivation”. Course Generator. Repository. Pedagogical Aims. : : Represent advanced pedagogical knowledge
E N D
Course Generation Based on Hierarchical Task Network (HTN) Planning Carsten Ullrich, ABIS’05
Course Generation, Example Learn about “derivation” Course Generator Repository
Pedagogical Aims • : : Represent advanced pedagogical knowledge • Joint work with University of Augsburg,Lehrstuhl für Didaktik der Mathematik • Formalization of pedagogical strategies based on OECD PISA • Focus on mathematical literacy & competencies • problem solving, • use of mathematical language, • mathematical modeling • … • 6 scenarios: LearnNew, Rehearse, Overview, trainCompetency, Workbook, ExamSimulation.
Basics of Hierarchical Task Network Planning • Similar to classical AI planning • World state represented byset of atoms • Actions correspond to state transitions • Differences to classical AI planning • What it plans for: Sequence of actions that perform a task network • How it plans: • Methods decomposetasks • down to primitive tasks performed by operators
Basics of HTN-Planning • Domain description • Tasks: Activities to perform • Primitive/Compound • Operators: Perform primitive tasks (task, precondition, delete list, add list) • Methods: Decompose compound tasks (task,precondition, subtasks) • Axioms: Infer preconditions not asserted in world state • Shop2/JShop2: D. Nau et.al., University of Maryland
Challenges Learn about “derivation” Repository Examples for “derivation” • Reasoning about Content • Reasoning about User • Tool Support • Adaptivity++, Interactivity, Service Provision • Pedagogical Knowledge ? ? Course Generator ? Repository ? ? Repository
Connecting Course Generation and HTN • Input: Pedagogical Task • Pedagogical Objective • List of Content Identifiers (learnNew (def_function def_deriv)) (getAppropriateExercise (def_function)) • Output: Actions generating structured sequence of LOs ((!startSection def_derivation) (!insertElement intro_def_funct) (!insertElement def_function) … (!endSection))
Course Generation by HTN, Example (:method (learnConceptLearnNew ?c) MethodLearnConceptLearnNew () ((!startSection LearnNew) (introduce ?c) (developConcept ?c) (practice! ?c) (connect ?c) (reflect ?c) (!endSection))) Goal Task Preconditions Subtask
Course Generation by HTN, Example (:method (learnConceptLearnNew ?c) MethodLearnConceptLearnNew () ((!startSection LearnNew) (introduce ?c) (developConcept ?c) (practice! ?c) (connect ?c) (reflect ?c) (!endSection)))
Decomposing a Task (:method (introduce ?c) MethodIntroduce () ((!startSection (introduce ?c)) (insertMotivation ?c) (introductionExamplify ?c) (learnPrerequisitesConceptsShort ?c) (!endSection))) • Optional tasks: Should be achieved, but do not fail (:method (introduce ?c) MethodIntroduceFallback () ())
Critical Tasks • Critical tasks: Have to be fulfilled, otherwise fail (:method (learnConceptProblemBased ?c) () ((insertProblem! ?c) (do something …)))
Reasoning about User (:method (introductionExamplify ?c) MethodIntroductionExamplify ((learnerProperty anxiety ?an)(call > ?an 2) (assignIterator ?element (call GetElements ((class example) (property difficulty easy) (relation for ?c))))) ((!insertElement ?element))) (:- (learnerProperty ?property ?value) (same ?value (call queryLM ?property)))
Reasoning about Content (:method (introductionExamplify ?c) MethodIntroductionExamplify ((learnerProperty anxiety ?an)(call > ?an 2) (assignIterator ?element (call GetElements ((class example) (property difficulty easy) (relation for ?c))))) ((!insertElement ?element))) (:- (assignIterator ?element (?head . ?tail)) ((same ?element ?head))) (:- (assignIterator ?element (?head . ?tail)) ((assignIterator ?element ?tail))) (id1 id2 id3 …)
Course Generation by HTN, Example (:method (learnConceptLearnNew ?c) MethodLearnConceptLearnNew () ((!startSection LearnNew) (introduce ?c) (developConcept ?c) (practice ?c) (connect ?c) (reflect ?c) (!endSection) ) )
Crucial and Fallback Methods (:method (developConcept ?c) ((learnerProperty competencyLevel ?c ?cl) (call > ?cl 3)) ((!startSection (develop ?c)) (!insertElement ?c) (!endSection)) ((learnerProperty competencyLevel ?c ?cl) (call <= ?cl 3) (learnerProperty motivation ?c ?mo) (call >= ?mo 3)) ((!startSection (develop ?c)) (!insertElement ?c) (explain ?c) (selectAppropriateExample ?c) (!endSection)) () ((!startSection (develop ?c)) (!insertElement ?c) (explain ?c) (!endSection))) Crucial methods Fallback method
Course Generation by HTN, Example (:method (learnConceptLearnNew ?c) MethodLearnConceptLearnNew () ((!startSection LearnNew) (introduce ?c) (developConcept ?c) (practice ?c) (connect ?c) (reflect ?c) (!endSection) ) )
Selecting Exercises (:method (selectAppropriateExercise ?c) MethodSelectExerciseHighMotivation ((learnerProperty field ?field) (learnerProperty educationalLevel ?el) (learnerProperty motivation ?c ?m) (call >= ?m 3) (learnerProperty competencyLevel ?c ?cl) (equivalent (call + 1 ?cl) ?ex_cl) (assignIterator ?exercise (call GetElements ((class exercise) (relation for ?c) (property learningcontext ?el) (property competencylevel ?ex_cl) (property field ?field))))) ((insertElement ?exercise))) Service Provision!
Course Generation by HTN, Example (:method (learnConceptLearnNew ?c) MethodLearnConceptLearnNew () ((!startSection LearnNew) (introduce ?c) (developConcept ?c) (practice ?c) (connect ?c) (reflect ?c) (!endSection) ) )
Service Integration (:method (reflect ?c) MethodReflectWithOLM ((learningServiceAvailable OLM)) ((!startSection reflect) (!insertLearningService OLM) (!endSection)) MethodReflectManual () ((!startSection reflect) (!text reflect) (!endSection))) (:- (learningServiceAvailable ?tool) ((call checkService ?tool)))
Conclusion • Using HTN-planning for Course Generation • Representing pedagogical knowledge • Distributed content, integration of learning services • Adaptivity++, interactivity, service provision, sub-goal recognition • Efficient: • Generation of a course with 15 LO ≈ 700ms • with caching ≈ 200ms
Thanks www.activemath.org cullrich@activemath.org