Teaching programming as judgment, not just syntax

Students can learn syntax quickly and still struggle to make sound decisions. That is why I treat programming courses as courses in judgment as much as courses in language.

Writing code is one part of the work. Explaining tradeoffs, naming things well, testing behavior, and revising bad assumptions are part of the work too.

What I want early courses to build

Intro courses should help students see programming as a disciplined way of thinking rather than a collection of tricks that happen to compile.

That means spending time on structure, debugging habits, and the language students use to describe their own decisions.

  • Break a problem into pieces that can be reasoned about.
  • Explain why a solution works, not just that it works once.
  • Revise code without treating revision as failure.

Energy matters too

High expectations work best when students can feel that the room is energetic, attentive, and on their side.

Participation, honesty about confusion, and visible iteration make the classroom more ambitious and more humane at the same time.