Notional machines and introductory programming education | Synapse