Sometimes, Rainfall Accumulates: Talk-Alouds with Novice Functional Programmers
learning to program = learning to construct mechanisms and explanations .