Knowledge comes in four core types: facts (what), procedures (how), concepts (why), and strategies (when). Knowing when to apply the right knowledge is oftentimes harder than knowing what or how.
One reason teaching advice is so messy is that people talk as if "learning" were one thing.
The KLI framework starts with a cleaner question: what kind of knowledge are we trying to build? The KLI framework identifies four types of "Knowledge Components" (KCs):
- Declarative (Facts): The static "what." (e.g., knowing Python is a language).
- Procedural (Skills): The "how-to." (e.g., knowing the syntax for a loop).
- Conceptual (Principles): The "why." (e.g., the logic of iteration).
- Strategic (Conditional): The "when." (e.g., knowing when to use a loop vs. recursion).
The paper emphasizes that learning the conditions of application, the "when", is oftentimes harder than learning the "what" or "how."
You might know every data structure and every algorithm, but still struggle to pick the right one for a specific problem.
This also relates to the Knowledge Component Taxonomy noted a few weeks ago, which categorized knowledge by whether conditions and responses are constant or variable.
The four types here map roughly to increasing complexity: facts are constant-constant, while strategies involve variable conditions and variable responses.