A notional machine is an abstract representation of a program’s execution. These alternate representations serve to highlight otherwise hidden or subtle behavior in program execution, and eliminate unnecessary or irrelevant details that can obstruct understanding. Prior work has established that, by construction, there is no universal
notional machine that is appropriate for the entirety of a CS1 curriculum. How, then, does an educator choose an appropriate notional machine for a given learning sequence?
We present initial work on helping educators choose an effective sequence of notional machines for a CS1 course. Our key insight is to leverage a concept map capturing hard and soft dependencies between computing concepts. By characterizing concepts and notional machines together, we show that it is possible to design feasible sequences of notional machines that cover a desired learning sequence.