e-Learning-by-SSE / nm-skill-lib

Apache License 2.0
0 stars 0 forks source link

Composite LearningUnits #10

Closed Elscha closed 9 months ago

Elscha commented 11 months ago

Actual Situation

We can only model LearningUnits, which do not include/reference further units directly.

Target Situation

We want to model LearningUnits that reference/include other LearningUnits in one block. These blocks should not be split up into several separate blocks by the path planning algorithm and may contain additional units, e.g., an additional introduction at the beginning and an additional exercise at the end of the block.

Purpose

This should allow the user to model chapters inside a learning path. For instance, a chapter about loops, which includes:

Type Modifications

We need a new type CompositeUnit, which refer to an arbitrary amount of nested LearningUnits but also CompositeUnits. The class structure needs to be adapted so that we can use polymorphism to return the skills:

Image

Modifications to the Algorithm

The algorithm should try not to break the CompositeUnits. Therefore, it should first try to find a path by considering the CompositeUnits as one single item. After a path was detected, the algorithm may find a sub path recursively inside each of the used CompositeUnits. Further, LearningUnits that are used inside a CompositeUnit must not be used be passed separately to the algorithm (otherwise the algorithm will treat them as alternative and may break the structure).

Elscha commented 9 months ago

Open Questions

Additional Taught/Required Skills of the CompositeUnit

Should CompositeUnits only return the taught/required skills of the nested LearningUnits or may they define additional skills? For instance: May teach a CompositeUnit additional skills regarding "The Introduction of Loops" and "Choosing Among Loops" or must they be included by adding additional LearningUnits?

Advantages of Additional Skills

Disadvantages of Additional Skills

Proposal

CompositeUnits may not define additional taught/required skills.

What Skills Should be Displayed for a CompositeUnit

When returning the taught/required skills of a CompositeUnit, the following skills should be returned (needs to be clarified):

For instance, given the following CompositeUnit with its nested elements: Image

SK:10 and SK:11 should be marked as requirements, SK:21, SK:22, and SK:23 should be marked as taught skills. Image

Teaching parts of a CompositeUnit

Can a CompositeUnit be split into its nested elements?

Proposal

It should be possible, iff only a supset is to be learned, otherwise its kept as complete block. Or more general:

  1. First add the composite and place the complete CompositeUnit at the path
  2. Do not split the CompositeUnit. Otherwiese there won't be a use case to model such elements. I.e. avoid that other LearningUnitswere added between "Introduction of Loops" and "While Loop" if they are part of a CompositeUnit.
  3. Find a path inside the CompositeUnit:
    1. Bring the nested Elements into an order
    2. Remove unrequired elements

Consequence

This allows:

Elscha commented 9 months ago

Discussion moved to e-Learning-by-SSE/nm-concept#21