Teach
About
Privacy & Legal
2016 is the first year Code.org is reporting on student Basic Coding Proficiency. This is a metric that is based on student performance on Code Studio puzzles in our Computer Science Fundamentals courses. This metric takes into account the concepts used in each puzzle as well as their difficulty. To organize all this information, we have defined a matrix of learning objectives organized by concept and difficulty level. Every puzzle is tagged with one or more of these “concept-difficulty” values, and those values are fundamental to our metric of proficiency.
A concept-difficulty value is a programming concept (eg: Sequencing, Repeat Loops) and a difficulty level within that concept (from 1 to 5).
The Concepts are:
The Concept-difficulty tags are based on a matrix of learning objectives by concept and difficulty level within that concept. The concept-difficulty matrix is organized like this:
Difficulty Level | Sequencing | Repeat Loops | ... |
---|---|---|---|
D1 | Students will be able to... a) Add a single instruction at the end of a program b) Remove a block from existing instructions c) Modify text, numbers, or other parameters in existing instructions |
Students will be able to... a) Move existing code into a loop with prompting b) Construct a simple (1-instruction) loop with prompting c) Identify areas of a program that repeat exactly d) Modify or delete a single loop instruction with prompting e) Change loop run parameter |
|
D2 | Students will be able to... a) Add a single instruction anywhere but the end of a program b) Add multiple consecutive instructions at end of program c) Remove multiple blocks from a program |
Students will be able to... a) Construct a simple (1 or 2 instruction) loop without prompting b) Construct simple 3+ instruction loop with prompting c) Move existing code into a loop without prompting d) Modify or delete a single loop instruction without prompting |
|
D3 | ... | ... | |
D4 | ... | ... | |
D5 | Students will be able to... a) Move or rearrange branching elements, or code within branching elements b) Construct entire program including branching elements |
Students will be able to... a) Use a single nested loop layer without prompting b) Use multiple nested loops in sequence with or without prompting c) Use nested loops more than one layer deep with prompting |
You can find the complete matrix here. We have tagged every puzzle in our Computer Science Fundamentals courses with the appropriate concepts and difficulty levels.
To understand this matrix, let’s walk through some examples using a single concept: Repeat Loops.
The learning objectives that map to puzzles of difficulty level 1 for repeat loops are:
Students will be able to...
For example, in Course 2 Stage 13 Puzzle 1 students are prompted to use a repeat loop to get the bird to the pig using only “move forward” instructions.
The learning objectives for difficulty level 2 include:
Students will be able to...
For example, Course 2 Stage 8 Puzzle 2 instructs students to use a loop, but requires them to identify the three instructions that must be repeated:
The learning objectives for a difficulty 3 puzzle include:
Students will be able to...
This example comes from our Accelerated Course, stage 2 puzzle 8. To solve this puzzle, students are told they can try using multiple loops, but must identify the patterns and associated instructions:
Difficulty 4: In difficulty level 4 puzzles, students will be able to…
For example, in Course 3 Stage 13 Puzzle 5, students need to place a repeat 4 times loop inside a repeat 5 times loop:
The learning objectives for difficulty level 5 puzzles include:
Students will be able to…
This example - Course 3 Stage 21 Puzzle 13 - requires students to create two loops in sequence, and place them within an outer loop:
Most programming puzzles beyond the simplest examples require students to combine multiple concepts. For this reason, any puzzle can have more than one concept-difficulty tag. For example, Course 3 Stage 8 Puzzle 9 combines Sequencing, Repeat, and Conditional concepts:
This example has a Sequencing difficulty of 4 (“Students will be able to add instructions to branching elements”), Repeat difficulty of 4 (“Students will be able to create a program with one 'repeat until' of 3 or more instructions”), and Conditionals difficulty of 4 (“Students will be able to add instructions to both 'if' and 'else' portions of one or more conditionals.”)
If you’re interested in the full set of concept-difficulties, you can find the complete matrix here.
Every puzzle in Code Studio is an opportunity for students to demonstrate proficiency at the concepts used in that puzzle. When a student completes a puzzle without using any hints and with the optimal number of blocks, that is considered “successful completion.” Every successful completion of a puzzle is evidence of proficiency at the concept-difficulty level of the problem. After sufficient evidence at a level, a student is considered to be at that level of proficiency within the concept.
“Proficiency” within a concept is defined as the successful completion (using no hints and with the optimal number of blocks) of 3 puzzles of difficulty level 3 within that concept. Reaching “Basic Coding Proficiency” is defined as reaching proficiency in three different concepts.
In summary: To demonstrate Basic Coding Proficiency, a student must prove their skill in at least three different concepts. For each concept, the student must complete three or more puzzles of difficulty level 3 without hints and with the optimal number of blocks.