Mastery Levels Framework

I was roaming around the internet and I stumbled across the Computer Science Curricula 2013 - Curriculum Guidelines for Undergraduate Degree Programs in Computer Science by ACM and IEEE.

To my great surprise, I found a little gem, a section that talks about mastery levels — like a small framework to understand how deep your knowledge is on something.

The framework

Chapter 4: Introduction to the Body of Knowledge, Paragraph: Guidance on Learning Outcomes on page 33, within the report.

Just to give you a little bit more context, this is the section that tells how the teacher will evaluate the student.

The report defines three knowledge levels that are:

  • Familiarity, basic understanding of the concepts;
  • Usage, ability to use or apply a concept;
  • Assessment, ability to decide when to apply a concept.

The text uses the word student because of the academic purpose but you could swap it with the word developer or person without any problem.

Here is the text for reference:

Familiarity
The student understands what a concept is or what it means. This level of mastery concerns a basic awareness of a concept as opposed to expecting real facility with its application. It provides an answer to the question “What do you know about this?”
Usage
The student is able to use or apply a concept in a concrete way. Using a concept may include, for example, appropriately using a specific concept in a program, using a particular proof technique, or performing a particular analysis. It provides an answer to the question “What do you know how to do?”
Assessment
The student is able to consider a concept from multiple viewpoints and/or justify the selection of a particular approach to solve a problem. This level of mastery implies more than using a concept; it involves the ability to select an appropriate approach from understood alternatives. It provides an answer to the question “Why would you do that?”

Familiarity, Usage, Assessment: these are my new three favourite words. It doesn’t have a formal name in the report so I’ll call it the Mastery Levels Framework.

Just to give you a sense of how profound was the impact of reading this on me, let me tell you this: now, every time I’m using or even thinking about a piece of tech I think, “am I just familiar with XYZ or am I able to actually use it? would I know how to assess it?”

I’ve literally got a picture in my mind with three levels while I’m thinking this. The best part? Now I’m able to put in words what before was just a feeling or discomfort.

This is so relieving to me.

Once you transform that discomfort into words something magic happens. First, the discomfort disappears or is greatly reduced. Second, now I’ve got a guesstimation about how much i don’t know about a topic and it’s easier for me to act on it (eg: read the manual or watch some tutorial).

Summary

Familiarity, Usage, Assessment: Mastery Levels Framework was a splendid surprise considering the scope of the report — a lucky strike if you like — from Computer Science Curricula 2013 - Curriculum Guidelines for Undergraduate Degree Programs in Computer Science by ACM and IEEE.

“What do you know about this?”, “What do you know how to do?”, “Why would you do that?” can be a practical framework that helps you with knowledge self-evaluation which will hopefully support you on your journey.

Note: The report is quite interesting in general, and it’s worth reading it or at least skimming through as a whole for sure.

Thanks, ACM and IEEE for that.