Engage Against the Machine: Rise of the Notional Machines as Effective Pedagogical Devices
Open accessAbstract
The term "the machine" is commonly used to refer to the complicated physical hardware running similarly complex software that ultimately executes programs. The idea that programmers write programs for a notional machine - an abstract model of an execution environment - not the machine itself, has risen to the point of gaining acceptance as a useful device in computing education. This has seeded a growing discussion about how explicitly utilizing notional machines in teaching can help students construct more accurate mental models, which is essential for learning programming. Much of the existing literature necessarily involves specific languages, visualization, and/or facilitating tools, and is not very accessible to many practitioners. Less focus has been put on how teachers can make explicit use of notional machines in their teaching. In this paper we describe notional machines and their use in a manner that is more accessible to a general educator audience in order to facilitate more effective computing education at all levels. We advocate explicitly delineating between visualization tools and the notional machines they depict, isolating and clarifying the notional machine so that it is conspicuous, apparent and useful. We present examples of how this approach can facilitate a more consistent method of teaching computing, and be used in more effective pedagogical practice for teaching computing.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Generative AI is likely to alter how students conceptualise the computer and program execution.
“It is also interesting, given how little is known about the true role of notional machines in the classroom [76], that generative AI is likely to alter how students conceptualise the computer and program execution.”
From The Robots Are Here: Navigating the Generative AI Revolution in Computing Education (2023) · cites this paper as [76]
Cites
Some Difficulties of Learning to Program
Du Boulay, B. (1986) · Journal of Educational Computing Research · doi:10.2190/3lfx-9rrf-67t8-uvk9 · Cited by 648 · see citing works
Exploring the role of visualization and engagement in computer science education
Naps, T. L., Rößling, G., Almstrum, V. L., Dann, W. P., Fleischer, R., Hundhausen, C., Korhonen, A., Malmi, L., McNally, M. F., Rodger, S. H., et al. (2002) · ACM SIGCSE Bulletin · doi:10.1145/782941.782998 · Cited by 643 · see citing works
Introductory programming: a systematic literature review
Luxton-Reilly, A., Simon, Al-Bluwi, I., Becker, B. A., Giannakos, M. N., Kumar, A. N., Ott, L. M., Paterson, J. H., Scott, M., Sheard, J., et al. (2018) · doi:10.1145/3293881.3295779 · Cited by 511 · see citing works
Self-citationConstructivism in computer science education
Ben‐Ari, M. (1998) · ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/273133.274308 · Cited by 417 · see citing works
Oleson, A. K., & Hora, M. T. (2013) · Higher Education · doi:10.1007/s10734-013-9678-9 · Cited by 399 · see citing works
A Review of Generic Program Visualization Systems for Introductory Programming Education
Sorva, J., Karavirta, V., & Malmi, L. (2013) · ACM Transactions on Computing Education · doi:10.1145/2490822 · Cited by 367 · see citing works
Notional machines and introductory programming education
Sorva, J. (2013) · ACM Transactions on Computing Education · doi:10.1145/2483710.2483713 · Cited by 327 · see citing works
The black box inside the glass box: presenting computing concepts to novices
du Boulay, B., O’Shea, T., & Monk, J. (1999) · International Journal of Human-Computer Studies · doi:10.1006/ijhc.1981.0309 · Cited by 274 · see citing works
The black box inside the glass box: presenting computing concepts to novices
du Boulay, B., O’Shea, T., & Monk, J. (1981) · International Journal of Man-Machine Studies · doi:10.1016/s0020-7373(81)80056-9 · Cited by 235 · see citing works
Visual program simulation in introductory programming education
Sorva, J. (2012) · Aaltodoc (Aalto University) · Cited by 155 · see citing works
Nelson, G. L., Xie, B., & Ko, A. J. (2017) · ACM Conference on International Computing Education Research (ICER) · doi:10.1145/3105726.3106178 · Cited by 130 · see citing works
Sorva, J., & Sirkiä, T. (2010) · Koli Calling International Conference on Computing Education Research · doi:10.1145/1930464.1930471 · Cited by 114 · see citing works
50 Years of CS1 at SIGCSE: A Review of the Evolution of Introductory Programming Education Research
Becker, B. A., & Quille, K. (2019) · Proceedings of the 50th ACM Technical Symposium on Computer Science Education · doi:10.1145/3287324.3287432 · Cited by 107 · see citing works
Self-citationUsing Tracing and Sketching to Solve Programming Problems
Cunningham, K. I., Blanchard, S., Ericson, B. J., & Guzdial, M. (2017) · ACM Conference on International Computing Education Research (ICER) · doi:10.1145/3105726.3106190 · Cited by 79 · see citing works
Programming Paradigms and Beyond
Krishnamurthi, S., & Fisler, K. (2019) · Cambridge University Press eBooks · doi:10.1017/9781108654555.014 · Cited by 65 · see citing works
Trace-based teaching in early programming courses
Hertz, M., & Jump, M. (2013) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/2445196.2445364 · Cited by 63 · see citing works
Berry, M., & Kölling, M. (2014) · doi:10.1145/2591708.2591721 · Cited by 56 · see citing works
The same but different students' understandings of primitive and object variables
Sorva, J. (2008) · doi:10.1145/1595356.1595360 · Cited by 52 · see citing works
The Effects of Compilation Mechanisms and Error Message Presentation on Novice Programmer Behavior
Karvelas, I., Li, A. D. R., & Becker, B. A. (2020) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/3328778.3366882 · Cited by 33 · see citing works
Self-citationAssessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates
Fisler, K., Krishnamurthi, S., & Wilson, P. T. (2017) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/3017680.3017777 · Cited by 30 · see citing works
Novice Rationales for Sketching and Tracing, and How They Try to Avoid It
Cunningham, K. I., Ke, S., Guzdial, M., & Ericson, B. J. (2019) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/3304221.3319788 · Cited by 28 · see citing works
Analysis of Student Misconceptions using Python as an Introductory Programming Language
Johnson, F., McQuistin, S., & O’Donnell, J. T. (2020) · doi:10.1145/3372356.3372360 · Cited by 26 · see citing works
Research-based design of the first weeks of CS1
Sorva, J., & Seppälä, O. (2014) · Koli Calling International Conference on Computing Education Research · doi:10.1145/2674683.2674690 · Cited by 20 · see citing works
The design and implementation of a notional machine for teaching introductory programming
Berry, M., & Kölling, M. (2013) · Workshop in Primary and Secondary Computing Education · doi:10.1145/2532748.2532765 · Cited by 19 · see citing works
Novis: A Notional Machine Implementation for Teaching Introductory Programming
Berry, M., & Kölling, M. (2016) · International Conference on Learning and Teaching in Computing and Engineering (LaTICE) · doi:10.1109/latice.2016.5 · Cited by 17 · see citing works
Evaluating the Tracing of Recursion in the Substitution Notional Machine
Wilson, P. T., Fisler, K., & Krishnamurthi, S. (2018) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/3159450.3159479 · Cited by 16 · see citing works
Dragon, T., & Dickson, P. E. (2016) · doi:10.1145/2839509.2844607 · Cited by 13 · see citing works
Self-citationNotional Machines and Programming Language Semantics in Education (Dagstuhl Seminar 19281)
Guzdial, M., Krishnamurthi, S., Sorva, J., & Vahrenhold, J. (2019) · DROPS (Schloss Dagstuhl – Leibniz Center for Informatics) · doi:10.4230/dagrep.9.7.1 · Cited by 12 · see citing works
A model computer simulation as an epistemic game
Sherry, L. (1995) · ACM SIGCSE Bulletin · doi:10.1145/201998.202016 · Cited by 10 · see citing works
Visual Computing in Materials Sciences (Dagstuhl Seminar 19151)
Heinzl, C., Kirby, R. M., Lomov, S. V., Requena, G. C., & Westermann, R. (2019) · DROPS (Schloss Dagstuhl – Leibniz Center for Informatics) · doi:10.4230/dagrep.9.4.1 · Cited by 9 · see citing works
LearnCS!: a new, browser-based C programming environment for CS1
Lipman, D. (2014) · Journal of computing sciences in colleges · Cited by 8 · see citing works
Meaningful learning in the tutoring system for programming
Dadić, T., Stankov, S., & Rosić, M. (2008) · doi:10.1109/iti.2008.4588458 · Cited by 8 · see citing works
Theia: automatically generating correct program state visualizations
Pollock, J., Roesch, J., Woos, D., & Tatlock, Z. (2019) · doi:10.1145/3358711.3361625 · Cited by 8 · see citing works
Flexible low-cost activities to develop novice code comprehension skills in schools
Donaldson, P., & Cutts, Q. I. (2018) · Workshop in Primary and Secondary Computing Education · doi:10.1145/3265757.3265776 · Cited by 7 · see citing works
Automated construction of memory diagrams for program comprehension
Dalton, A. R., & Kreahling, W. C. (2010) · ACM Southeast Regional Conference (ACMSE) · doi:10.1145/1900008.1900040 · Cited by 6 · see citing works
Maldonado‐Mahauad, J., Bermeo, J. L., & Pacheco, G. (2016) · CLEI electronic journal · doi:10.19153/cleiej.19.1.3 · Cited by 6 · see citing works
Hidalgo‐Céspedes, J., Marín, G., & Lara‐Villagrán, V. (2016) · CLEI electronic journal · doi:10.19153/cleiej.19.2.2 · Cited by 6 · see citing works
Sui, L., Dietrich, J. B., Heinrich, E., & Meyer, M. (2016) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/2899415.2925487 · Cited by 2 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
The Robots Are Here: Navigating the Generative AI Revolution in Computing Education
Prather, J., Denny, P., Leinonen, J., Becker, B. A., Albluwi, I., Craig, M., Keuning, H., Kiesler, N., Kohn, T., Luxton-Reilly, A., et al. (2023) · Proceedings of the 2023 Working Group Reports on Innovation and Technology in Computer Science Education · doi:10.1145/3623762.3633499 · Cited by 396 · see citing works
Self-citationMy AI Wants to Know if This Will Be on the Exam: Testing OpenAI’s Codex on CS2 Programming Exercises
Finnie-Ansley, J., Denny, P., Luxton-Reilly, A., Santos, E. A., Prather, J., & Becker, B. A. (2023) · Proceedings of the 25th Australasian Computing Education Conference · doi:10.1145/3576123.3576134 · Cited by 186 · see citing works
Self-citationA Game-Based Approach for Teaching Algorithms and Data Structures using Visualizations
Su, S. M., Zhang, E., Denny, P. C., & Giacaman, N. (2021) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/3408877.3432520 · Cited by 27 · see citing works
A Grounded Conceptual Model for Ownership Types in Rust
Crichton, W., Gray, G., & Krishnamurthi, S. (2023) · Proceedings of the ACM on Programming Languages · doi:10.1145/3622841 · Cited by 26 · see citing works
CrossCode: Multi-level Visualization of Program Execution
Hayatpur, D., Wigdor, D., & Xia, H. (2023) · CHI Conference on Human Factors in Computing Systems · doi:10.1145/3544548.3581390 · Cited by 23 · see citing works
Duran, R., Sorva, J., & Seppälä, O. (2021) · ACM Transactions on Computing Education · doi:10.1145/3469128 · Cited by 22 · see citing works
Computational Thinking and Notional Machines: The Missing Link
Munasinghe, B., Bell, T., & Robins, A. V. (2023) · ACM Transactions on Computing Education · doi:10.1145/3627829 · Cited by 8 · see citing works
Experiences Implementing and Utilizing a Notional Machine in the Classroom
Dickson, P. E., Richards, T. D., & Becker, B. A. (2022) · ACM Technical Symposium on Computer Science Education (SIGCSE) · doi:10.1145/3478431.3499320 · Cited by 7 · see citing works
Self-citationFuchs, W., McDonald, A. R., Gautam, A., & Kazerouni, A. M. (2024) · Journal of Chemical Education · doi:10.1021/acs.jchemed.4c00219 · Cited by 6 · see citing works
Computing Education Research in the UK & Ireland
Becker, B. A., Bradley, S., Maguire, J., Black, M. M., Crick, T., Saqr, M., Sentance, S., & Quille, K. (2023) · Springer eBooks · doi:10.1007/978-3-031-25336-2_19 · Cited by 5 · see citing works
Self-citationContextualized Programming Language Documentation
Potter, H., Madadi, A., Just, R., & Omar, C. (2022) · Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software · doi:10.1145/3563835.3567654 · Cited by 4 · see citing works
Jayathirtha, G. (2022) · Workshop in Primary and Secondary Computing Education · doi:10.1145/3556787.3556798 · Cited by 3 · see citing works
A Memory Diagram for All Seasons
Dickson, P. E., & Dragon, T. (2021) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/3430665.3456317 · Cited by 3 · see citing works
Self-citationJohnson, F., McQuistin, S., O’Donnell, J. T., & Cutts, Q. I. (2022) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/3502718.3524775 · Cited by 2 · see citing works
Mazumder, S. F. (2021) · International Computing Education Research Workshop · doi:10.1145/3446871.3469775 · Cited by 2 · see citing works
An Initial Exploration of Code Diagram Query Effectiveness
Himbeault, L., & Latulipe, C. (2024) · Western Canadian Conference on Computing Education · doi:10.1145/3660650.3660664 · Cited by 1 · see citing works
Program Behavior Gaps: An Extension of the Rules of Program Behavior Framework
Hoobergs, J., Schrijvers, T., & Hermans, F. (2026) · ACM Transactions on Computing Education · doi:10.1145/3796523 · Cited by 1 · see citing works
Scripted Step-based Visualizations: A Pilot Study
Lukkarinen, A., Haaranen, L., & Malmi, L. (2021) · International Conference on Computer Supported Education · doi:10.5220/0010454502400247 · Cited by 1 · see citing works
Sarsa, S., Pettersson, J., & Hellas, A. (2022) · IEEE Frontiers in Education Conference (FIE) · doi:10.1109/fie56618.2022.9962561 · Cited by 1 · see citing works
Programmers' Views on IDE Compilation Mechanisms
Karvelas, I., Dillane, J., & Becker, B. A. (2023) · ACM Global Computing Education Conference (CompEd) · doi:10.1145/3576882.3617915
Self-citationBarbieri, M., Amaral, J. V., & Duran, R. (2024) · Anais do Workshop sobre Educação em Computação (WEI) · doi:10.5753/wei.2024.2325
Mselle, L. J., & Kowero, O. N. (2024) · International Journal of Innovative Teaching and Learning in Higher Education · doi:10.4018/ijitlhe.356385
The Untaught Parts of the Programming Language: A Theoretical Framework
Hoobergs, J. (2025) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/3724389.3731289
Mapcode Machines for Expressing and Tracing Iterative Algorithms
Kulindala, G., Srikanth, A., Choppella, V., & Karippayi, M. S. (2025) · ACM Global Computing Education Conference (CompEd) · doi:10.1145/3736181.3747152
Visualization of Data Structures and Algorithms with Dynamic Memory Allocation
Tom, E. M., Singhal, N., & Saxena, S. (2025) · International Conference on Computing, Communication and Automation · doi:10.1109/iccca66364.2025.11325325
Kerr, O., Ball, L. J., & Danino, N. (2026) · ACM Transactions on Computing Education · doi:10.1145/3806059
Patterns for Classifying Notional Machines
Bertels, A. (2026) · Lecture notes in computer science · doi:10.1007/978-3-032-19157-1_14
Striegnitz, K., Barr, V., Tartaro, A., Maxwell, B., Li, Y., Taylor, S. R., & Webb, N. (2026) · ACM Transactions on Computing Education · doi:10.1145/3819076
Quantifying Student Mistakes and Misconceptions of the Run-Time Memory Layout of Java Programs
Pham, M. L., & Schreib, R. (2026) · ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) · doi:10.1145/3803400.3809331
Kalelıoğlu, F., & Keskinkılıç, F. (2026) · Ankara Universitesi Egitim Bilimleri Fakultesi Dergisi · doi:10.30964/auebfd.1703365
Nolan, K., Quille, K., Faherty, R., Nolan, K., & Farrell, A. O. (2026) · Lecture notes in networks and systems · doi:10.1007/978-3-032-31755-1_26
- Authors
- Dickson, P. E., Brown, N. C. C., & Becker, B. A.
- Affiliations
- Ithaca College (US)
- King's College London (GB)
- University College Dublin (IE)
- Venue
- Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education
- Publisher
- ACM
- Published
- 2020-06-15
- Pages
- 159-165
- OpenAlex
- W3033106251
- Cited by
- 32
- References
- 38
- Citations by year
- 2026: 7 · 2025: 3 · 2024: 5 · 2023: 7 · 2022: 5 · 2021: 5
- FWCI
- 4.93
- Type
- conference paper
- Language
- en
- Open access
- green
- hdl.handle.net
- Licence
- Locations
- ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE) (publishedVersion)
- Research Repository UCD (University College Dublin) (publishedVersion, cc-by-nc-nd)
- Digital Collections - Ithaca College Library (Ithaca College) (submittedVersion, public-domain)
- Research Portal (King's College London) (submittedVersion, other-oa)
- Topics
- Physical Sciences › Computer Science › Computer Science Applications › Teaching and Learning Programming
- Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
- Social Sciences › Psychology › Experimental and Cognitive Psychology › Visual and Cognitive Learning Processes
- Keywords
- notional machine, abstract machine model, programming education, mental models, visualization tools, teaching computing
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review