Notional Machines
Find Misconceptions by Notional Machine

A notional machine is a pedagogic device to assist the understanding of some aspect of programs or programming. Select a notional machine to see misconceptions it can express:

Control Flow as Graph
Represent execution paths through a method or function as a graph
Expression as Tree
Represent operators and operands as tree nodes
Stack Heap Global Diagram
Represent variables as boxes, organized in different memory areas

To learn more about notional machines, read:

ITiCSE-WGR '20: Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education

To browse a curated collection of notional machines used in programming education, check out notionalmachines.github.io.