Skip to content
Julia Ogris edited this page May 13, 2023 · 7 revisions

Learning framework - the current plan

This wiki contains learning framework content, as intended to be published on https://evy.dev for a novice, child or grown-up, to learn programming.

The materials are mastery-based, meaning that you can try questions and tests as many times as you need to. However, to complete a unit, you must get all of the questions correct. There are no grades.

The questions are designed to build on each other gradually, so that one can learn without needing many extra explanations.

The future user interface will change significantly to accommodate user accounts and progress tracking.

Question taxonomy

Questions build on top of each other and should be done in order. They are labeled Q1, Q2 etc. within a "skill". Alternatives to a question are suffixed, e.g. Q1.1, Q1.2. This ensures that the same questions don't keep coming up and the student is presented with new challenges.

Content structure

The structure of the learning framework draws inspiration from Khan Academy's Maths curriculum: A course contains units,
a unit contain skills, explanations, quizzes and a final unit tests,
a skill contains questions.

For example:

.
├── Course: Animations
├── Course: Algorithms and Data Structures
└── Course: Learn to Program
    ├── Unit: Sequential Instruction Execution
    ├── Unit: Variables and types
    ├── Unit: Flow control
    ├── Unit: Operators
    │   ├── Explanation: string and number operator
    │   ├── Skill: number arithmetic: +, -, *, /, % 
    │   │   ├── Question: Q1
    │   │   ├── Question: Q2
    │   │   ├── Question: Q3
    │   │   └── Question: Q4
    │   ├── Skill: string concatenation, indexing, slicing
    │   ├── Quiz 1 (optional)
    │   ├── Explanation: logical and comparison operators
    │   ├── Skill: bool: and or !
    │   ├── Skill: comparison == <= >= < > != (num & string)
    │   ├── Skill: operator precedence
    │   ├── Quiz 2 (optional)
    │   └── Unit Test
    ├── Unit: Factoring code
    └── Unit: Structuring data

A skill consists of 4 or 7 questions. The skill is tracked as "proficient" if all 4 or 7 questions have been answered correctly. With 3 out of 4 or 5 out of 7 correct answers one can progress to the next quiz to become "proficient". Quizzes are not required if skills have been answered perfectly.

At the end of the unit there is a unit test with around 10 to 20 questions, similar to the already answered questions in skills. The whole unit and all its individual skills are tracked as "mastered" ("100%") when the unit test too is answered perfectly.

If the unit test is done particularly poorly score is taken away from the corresponding skills.

Explanatory screenshot from Khanacademy for skill mastery level:

Screenshot 2023-05-13 at 11 31 32 AM