This taxonomy design is being discussed here: https://github.com/learn-awesome/learn/issues/14
Feel free to suggest better approaches.
"juggling 3 balls" depends on "juggling 2 balls" depends on "throw 1 ball to your other hand without that hand moving much".
I'm thinking of a big skill tree like Path of Exile: https://media.esportsedition.com/wp-content/uploads/2017/04/...
[0] https://khanacademy.fandom.com/wiki/Knowledge_Map [1] https://github.com/beneater/kmap-editor
I'm not sure if a "tree" is the right data-structure. See this article called "The Spiral Approach to Thinking & Learning": https://learnawesome.org/items/1ef5ff78-7c37-4f5d-bbdd-1cd0b...
For this spiral approach, I think, for every skill we could have certain levels (beginner/intermediate/advanced/elite) and the dependencies could be to those levels.
In anything you've linked here, I feel overwhelmed as a student. I get that, in the spiral approach, the starting point isn't so important, but if I don't know where to start, it's much easier for the teacher to pick for me, then for the teacher to tell me, "it doesn't matter where you start, so pick whatever". If the choice really doesn't matter, then don't make students choose.
In this way I think the skill dependencies approach allows the student some visibility into why they might choose one starting point over another.
There's also a problem where students come in with some prior knowledge, so when you're trying to teach them a complex idea, you need to fill in the gaps in their skill prerequisites. It seems like with the spiral approach, you'll get there eventually, and in a class where you can't go through each student and pinpoint the missing prerequisites, the spiral approach seems to make sense--but the negative side effect here is that you're going to be reviewing stuff for a lot of students who already know it. With individual students, this is a complete waste of time, and it's better to test what they know and then fill in gaps. A skill dependency tree might do better at empowering students to test their OWN knowledge and fill in the gaps.
Please do join our Slack for these ideas, even if, you can't contribute code.
Drop me an email at team AT website, please ?