Mental Models Map
This document helps students understand the progression of thinking across courses.
The Three Mental Models
Each course in the embedded systems track emphasizes a different way of thinking about software:
┌─────────────────────────────────────────────────────────────────────────────┐
│ MENTAL MODEL PROGRESSION │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Programming 1 Programming 2 ES101 │
│ ───────────── ───────────── ───── │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ ALGORITHM │ │ MACHINE │ │ SYSTEM │ │
│ │ THINKING │ ───▶ │ THINKING │ ───▶ │ THINKING │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ "What does the "How does the "What does the │
│ code DO?" machine EXECUTE it?" system DO over TIME?" │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Course-by-Course Breakdown
| Course | Dominant Model | Core Question | Key Concepts |
|---|---|---|---|
| Programming 1 | Algorithm | "What does the code do?" | Variables, loops, functions, control flow, data structures |
| Programming 2 | Machine | "How does the machine execute it?" | Registers, memory, timing, interrupts, bare-metal |
| Digital Tech | Logic/State | "How does logic become behavior?" | FSMs, synchronous design, events, transitions |
| ES101 | System | "What does the system do over time?" | Physical constraints, noise, uncertainty, measurement, validation |
The Key Transitions
Programming 1 → Programming 2
What changes:
- Loops become time-consuming - Each iteration has measurable cost
- Functions have stack cost - Not just organization, but memory
while(1)becomes a scheduler - The main loop is your timing engine
New awareness:
"Code that works on PC may not work on MCU because time matters."
Programming 2 → ES101
What changes:
- From "correct" to "validated" - Working once is not enough
- From "code behavior" to "system behavior" - Physical world adds uncertainty
- From "debugging code" to "measuring systems" - Data explains behavior
New awareness:
"A system that works once without explanation does not meet engineering standards."
Digital Tech → ES101
What changes:
- FSMs become software architecture - Not just hardware diagrams
- Timing constraints become measurable - Jitter, latency, deadlines
- Events become interrupts - Hardware mechanisms for software patterns
New awareness:
"The concepts from digital design apply directly to embedded software."
Why This Matters
Students often struggle in ES101 not because the content is hard, but because they're using the wrong mental model.
Common Mistakes
| Mistake | Wrong Model | Correct Model |
|---|---|---|
| "I tested it once, it works" | Algorithm (correctness) | System (validation) |
| "I'll just add a delay" | Algorithm (sequence) | Machine (timing cost) |
| "The sensor reads 25cm" | Algorithm (single value) | System (uncertainty) |
| "Why does it drift over time?" | Machine (static) | System (dynamic) |
The ES101 Reframe
| Programming 1/2 View | ES101 View |
|---|---|
| "The code runs" | "The system behaves" |
| "It gives an answer" | "It gives an answer ± uncertainty" |
| "Fast enough" | "Meets deadline with margin" |
| "No bugs" | "Validated under conditions" |
One Slide Summary
Use this in Week 1 of any course to orient students:
┌──────────────────────────────────────────────────────────────┐
│ │
│ WHERE ARE WE IN THE CURRICULUM? │
│ │
│ Programming 1: "What does the code do?" │
│ Focus: LOGIC │
│ │
│ Programming 2: "How does the machine execute it?" │
│ Focus: HARDWARE │
│ │
│ ES101: "What does the system do over time?" │
│ Focus: BEHAVIOR + MEASUREMENT │
│ │
│ You are here: ──▶ [ ] │
│ │
└──────────────────────────────────────────────────────────────┘
Cross-Reference
- [[Tutorials/robot-unboxing|Tutorial: Robot Unboxing — Embedded Fundamentals]]
- [[Reference/extras/embedded-thinking-cheatsheet|Embedded Thinking Cheatsheet]]
- [[course-structure|Course Structure]]
For Instructors
When students seem lost or ask "why are we doing this differently?", refer them to this document. The answer is almost always:
"Because the question we're asking is different, even if the hardware is familiar."
This is the foundation of spiral learning: same concepts, deeper questions, new perspectives.