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 "practise block". 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 practise blocks, learn blocks (explanations), quizzes and a final unit tests,
a practise block 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
    │   ├── Learn: string and number operator
    │   ├── Practise: number arithmetic: +, -, *, /, % 
    │   │   ├── Question: Q1
    │   │   ├── Question: Q2
    │   │   ├── Question: Q3
    │   │   └── Question: Q4
    │   ├── Practise: string concatenation, indexing, slicing
    │   ├── Quiz 1 (optional)
    │   ├── Learn: logical and comparison operators
    │   ├── Practise: bool: and or !
    │   ├── Practise: comparison == <= >= < > != (num & string)
    │   ├── Practise: operator precedence
    │   ├── Quiz 2 (optional)
    │   └── Unit Test
    ├── Unit: Factoring code
    └── Unit: Structuring data

Mastery

A practise block consists of 4 or 7 questions. The practise block 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 practise blocks 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 practise blocks. The whole unit and all its individual practise blocks are tracked as "mastered" ("100%") only if the unit test is answered perfectly.

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

Explanatory screenshot from Khanacademy for practise block mastery levels:

Screenshot 2023-05-13 at 11 31 32 AM