All Students Must, Some Students Might — Prioritizing Goals in CS Learning

Framing Principle

We believe that all students are capable of deep computational thinking. Not all students begin at the same place, and not all students are ready to move at the same pace—but all students can be “some students” if the environment invites growth, not judgment.

“If you told your piano teacher you understood how to play the piano, they would have something to say about it.”

Understanding is not a checkbox. It’s a practice. A fluency. A way of being shaped over time by structured experience. g This is the heart of our planning: we identify what all students must experience and internalize, what some students might go further with, and what should happen in class vs what can live outside of class. We build this contract not to stratify, but to make room.


Goal Threads in Unit 0

Goals fall into three main categories:

  • Technical — fluency with computing tools (shell, Git, markdown, diagrams)
  • Cognitive — systems thinking, abstraction, algorithmic reasoning
  • Affective — self-efficacy, reflection, cultural critique, authorship

Each goal is mapped below with:

  • ✅ = Needs class time
  • ALL = All students must encounter this
  • SOME = Some students may reach fluency or depth
  • Offramp = Where the practice continues (at home or later in course)

🔧 Technical Goals

Goal Class Time Must/Might Offramp
Navigate file systems (CLI) ALL Bash Dungeon + cheatsheet checkpoints
Understand version control conceptually ALL Practice using “name this version” in Docs or Git
Operate a Git repository   SOME Homework repo setup, commit tasks
Write + publish in Markdown ALL Blogs + journals with scaffolded templates
Diagram a system ALL Revision practice, visual gallery, peer review
Begin structured prompting for AI ALL Homework: prompt refinement tasks

💡 Cognitive Goals

Goal Class Time Must/Might Offramp
Understand what a system is ALL Map known systems (e.g., lunchroom, vending)
Procedural thinking (algorithms) ALL Pseudocode writing, journals on thinking steps
Abstraction + naming clarity SOME Reflection on naming, iterative revision
Metacognitive habits   ALL Journal prompts, blog entries
Articulate structure in computing   SOME Unit 0 final writing/reflection

❤️ Affective Goals

Goal Class Time Must/Might Offramp
Connect to computing history ALL Reading assignments + blog response
Discuss marginalization in computing ALL Exhibit critique, reading groups
Build self-efficacy through error ALL Reflections on mistakes, journaling
Articulate AI authorship norms ALL Responsible AI use reflections, peer examples
Normalize confusion + inquiry ALL Participation rubric, exit slips, journal notes

Class Time Is For

  • Modeling durable routines (journaling, diagrams, blog writing)
  • Introducing essential tools (shell, Git, markdown)
  • Framing historical and ethical context (computing as cultural system)
  • Creating shared learning experiences (algorithms, systems thinking, games)
  • Surfacing and normalizing confusion (meta-discussion, exit slips)
  • Rehearsing critical feedback (studio, peer review, self-assessment)

Out-of-Class Work Is For

  • Repetition + fluency building (Dungeon game, markdown blogs)
  • Reading + reflection (histories, AI policy, representation)
  • Prompt and revision practice (AI logs, self-critique)
  • Low-stakes failure (outside experimentation before inside application)

This contract doesn’t limit students. It protects them. All students can participate in high-level thinking. Some students might demonstrate it fluently early. The goal is not to sort them—it’s to scaffold them.

We teach like everyone is capable of fluency. Because they are.