Notional Machines and Introductory Programming Education is an outstanding survey — focused on a key element in teaching year-1 CS students: “notional machines” (which are not the same as “mental models”!). Teaching is a huge part of my job, and this was quite illuminating.