Techniques for Teaching Scala
summary
Five concrete teaching moves: use notional machine substitution to reason about pure code; teach ten repeatable programming strategies and show three—algebraic data types, structural recursion, and follow the types—with the map-on-list worked example so types force the implementation; prefer live coding to expose editor use and compiler error recovery; enforce thinking time and prompts rather than rescuing students; use peer teaching (pair/mob programming, the rubber duck). ScalaBridge examples show beginners reaching conference-quality Scala after a short course.
AI-written summary · about
chapters (25)
- 0:00Intro
- 0:22Outline
- 0:55Teaching is a distinct skill
- 1:40Seniors teach juniors
- 3:52Notional Machines
- 4:39Understanding requires a simplified machine model
- 5:02Substitution
- 6:10For methods
- 6:34For types
- 6:49For pure code
- 8:42Programming Strategies
- 8:55Systematic and repeatable programming
- 10:09Algebraic data types Structural recursion Following the types
- 14:14Pattern matching or Polymorphism
- 17:23What is the goal? What is available? Assemble the jigsaw
- 21:47Debugging and tool use are essential to programming
- 23:57Demonstrate error recovery
- 24:15Demonstrate tool use
- 26:17Give prompts for thinking
- 26:39What strategy are you using?
- 28:06The teachers job is to uncover and correct flaws in their mental models
- 28:44The best way to learn is to teach
- 30:34Pair Programming
- 36:29Your own practice
- 37:52Notional machine Strategies 3 More than coding Shut up
related talks
48mTeaching Scala A Roundtable Discussion
22mTeaching Scala to the statically challenged
44mTeaching Scala to the Statically Challenged
37mLessons from Teaching Scala to 80,000 People
46mTeaching Scala - A Roundtable Discussion
41mTeaching Domain Specific Languages in Scala
34mSystematic Software with Scala
15mWhat Scala Taught Me About Software Engineering
