Overview
Syllabus
Intro
Outline
Teaching is a distinct skill
Seniors teach juniors
Notional Machines
Understanding requires a simplified machine model
Substitution
For methods
For types
For pure code
Easy!
Programming Strategies
Systematic and repeatable programming
Algebraic data types Structural recursion Following the types
Pattern matching or Polymorphism
What is the goal? What is available? Assemble the jigsaw
Debugging and tool use are essential to programming
Demonstrate error recovery
Demonstrate tool use
Give prompts for thinking
What strategy are you using?
The teachers job is to uncover and correct flaws in their mental models
The best way to learn is to teach
Pair Programming
Your own practice
Your own deliberate practice and reflection
Notional machine Strategies 3 More than coding Shut up
Taught by
Scala Days Conferences