skip to main content
10.1145/3341525.3387404acmconferencesArticle/Chapter ViewAbstractPublication PagesiticseConference Proceedingsconference-collections
research-article

Engage Against the Machine: Rise of the Notional Machines as Effective Pedagogical Devices

Published: 15 June 2020 Publication History

Abstract

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.

References

[1]
Brett A. Becker and Keith Quille. 2019. 50 Years of CS1 at SIGCSE: A Review of the Evolution of Introductory Programming Education Research. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE '19). Association for Computing Machinery, New York, NY, USA, 338--344. https://doi.org/10.1145/3287324.3287432
[2]
Mordechai Ben-Ari. 1998. Constructivism in Computer Science Education. In Proceedings of the Twenty-Ninth SIGCSE Technical Symposium on Computer Science Education (SIGCSE '98). Association for Computing Machinery, New York, NY, USA, 257--261. https://doi.org/10.1145/273133.274308
[3]
Michael Berry and Michael Kölling. 2016. Novis: A Notional Machine Implementation for Teaching Introductory Programming. In 2016 International Conference on Learning and Teaching in Computing and Engineering (LaTICE). 54--59.
[4]
Michael Berry and Michael Kölling. 2013. The Design and Implementation of a Notional Machine for Teaching Introductory Programming. In Proceedings of the 8th Workshop in Primary and Secondary Computing Education (WiPSE '13). ACM, New York, NY, USA, 25--28. https://doi.org/10.1145/2532748.2532765
[5]
Michael Berry and Michael Kölling. 2014. The State of Play: A Notional Machine for Learning Programming. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education (ITiCSE '14). ACM, New York, NY, USA, 21--26. https://doi.org/10.1145/2591708.2591721
[6]
Kathryn Cunningham, Sarah Blanchard, Barbara Ericson, and Mark Guzdial. 2017. Using Tracing and Sketching to Solve Programming Problems: Replicating and Extending an Analysis of What Students Draw. In Proceedings of the 2017 ACM Conference on International Computing Education Research (ICER '17). ACM, New York, NY, USA, 164--172. https://doi.org/10.1145/3105726.3106190
[7]
Kathryn Cunningham, Shannon Ke, Mark Guzdial, and Barbara Ericson. 2019. Novice Rationales for Sketching and Tracing, and How They Try to Avoid It. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '19). ACM, New York, NY, USA, 37--43. https://doi.org/10.1145/3304221.3319788
[8]
Tonci Dadic, Slavomir Stankov, and Marko Rosic. 2008. Meaningful Learning in the Tutoring System for Programming. In ITI 2008--30th International Conference on Information Technology Interfaces. IEEE, 483--488.
[9]
Andrew R. Dalton and William Kreahling. 2010. Automated Construction of Memory Diagrams for Program Comprehension. In Proceedings of the 48th Annual Southeast Regional Conference (ACM SE '10). ACM, New York, NY, USA, Article 22, 6 pages. https://doi.org/10.1145/1900008.1900040
[10]
Peter Donaldson and Quintin Cutts. 2018. Flexible Low-cost Activities to Develop Novice Code Comprehension Skills in Schools. In Proceedings of the 13th Workshop in Primary and Secondary Computing Education (WiPSCE '18). ACM, New York, NY, USA, Article 19, 4 pages. https://doi.org/10.1145/3265757.3265776
[11]
Toby Dragon and Paul E. Dickson. 2016. Memory Diagrams: A Consistant Approach Across Concepts and Languages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE '16). ACM, New York, NY, USA, 546--551. https://doi.org/10.1145/2839509.2844607
[12]
Benedict du Boulay. 1986. Some Difficulties of Learning to Program. Journal of Educational Computing Research, Vol. 2, 1 (1986), 57--73. https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
[13]
Benedict du Boulay, Tim O'Shea, and John Monk. 1981. The Black Box Inside the Glass Box: Presenting Computing Concepts to Novices. International Journal of Man-Machine Studies, Vol. 14, 3 (1981), 237--249.
[14]
Kathi Fisler, Shriram Krishnamurthi, and Preston Tunnell Wilson. 2017. Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17). ACM, New York, NY, USA, 213--218. https://doi.org/10.1145/3017680.3017777
[15]
Mark Guzdial, Shriram Krishnamurthi, Juha Sorva, and Jan Vahrenhold. 2019. Notional Machines and Programming Language Semantics in Education (Dagstuhl Seminar 19281). Dagstuhl Reports, Vol. 9, 7 (2019), 1--23. https://doi.org/10.4230/DagRep.9.7.1
[16]
Matthew Hertz and Maria Jump. 2013. Trace-based Teaching in Early Programming Courses. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE '13). ACM, New York, NY, USA, 561--566. https://doi.org/10.1145/2445196.2445364
[17]
Jeisson Hidalgo-Céspedes, Gabriela Mar'in-Raventós, and Vladimir Lara-Villagrán. 2016. Understanding Notional Machines Through Traditional Teaching with Conceptual Contraposition and Program Memory Tracing. CLEI Electronic Journal, Vol. 19, 2 (2016), 3--3.
[18]
Fionnuala Johnson, Stephen McQuistin, and John O'Donnell. 2020. Analysis of Student Misconceptions Using Python as an Introductory Programming Language. In Proceedings of the 4th Conference on Computing Education Practice 2020 (CEP 2020). Association for Computing Machinery, New York, NY, USA, Article Article 4, 4 pages. https://doi.org/10.1145/3372356.3372360
[19]
Ioannis Karvelas, Annie Li, and Brett A. Becker. 2020. The Effects of Compilation Mechanisms and Error Message Presentation on Novice Programmer Behavior. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (SIGCSE '20). Association for Computing Machinery, New York, NY, USA, 759--765. https://doi.org/10.1145/3328778.3366882
[20]
Shriram Krishnamurthi and Kathi Fisler. 2019. Programming Paradigms and Beyond. In The Cambridge Handbook of Computing Education Research, Sally A. Fincher and Anthony V. Robins (Eds.). Cambridge University Press, Chapter 13, 377--413. https://doi.org/10.1017/9781108654555.014
[21]
Derrell Lipman. 2014. LearnCS!: A New, Browser-based C Programming Environment for CS1. J. Comput. Sci. Coll., Vol. 29, 6 (June 2014), 144--150. http://dl.acm.org/citation.cfm?id=2602724.2602752
[22]
Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail Giannakos, Amruth N. Kumar, Linda Ott, James Paterson, Michael James Scott, Judy Sheard, and Claudia Szabo. 2018. Introductory Programming: A Systematic Literature Review. In Proceedings Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018 Companion). Association for Computing Machinery, New York, NY, USA, 55--106. https://doi.org/10.1145/3293881.3295779
[23]
Thomas L. Naps, Guido Rossling, Vicki Almstrum, Wanda Dann, Rudolf Fleischer, Chris Hundhausen, Ari Korhonen, Lauri Malmi, Myles McNally, Susan Rodger, and J. Angel Velazquez-Iturbide. 2002. Exploring the Role of Visualization and Engagement in Computer Science Education. SIGCSE Bull., Vol. 35, 2 (June 2002), 131--152. https://doi.org/10.1145/782941.782998
[24]
Greg L. Nelson, Benjamin Xie, and Andrew J. Ko. 2017. Comprehension First: Evaluating a Novel Pedagogy and Tutoring System for Program Tracing in CS1. In Proceedings of the 2017 ACM Conference on International Computing Education Research (ICER '17). ACM, New York, NY, USA, 2--11. https://doi.org/10.1145/3105726.3106178
[25]
Amanda Oleson and Matthew T. Hora. 2014. Teaching the Way They Were Taught? Revisiting the Sources of Teaching Knowledge and the Role of Prior Experience in Shaping Faculty Teaching Practices. Higher Education, Vol. 68, 1 (01 Jul 2014), 29--45. https://doi.org/10.1007/s10734-013--9678--9
[26]
Josh Pollock, Jared Roesch, Doug Woos, and Zachary Tatlock. 2019. Theia: Automatically Generating Correct Program State Visualizations. In Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E (SPLASH-E 2019). ACM, New York, NY, USA, 46--56. https://doi.org/10.1145/3358711.3361625
[27]
Lorraine Sherry. 1995. A Model Computer Simulation as an Epistemic Game. SIGCSE Bull., Vol. 27, 2 (June 1995), 59--64. https://doi.org/10.1145/201998.202016
[28]
Juha Sorva. 2008. The Same but Different Students' Understandings of Primitive and Object Variables. In Proceedings of the 8th International Conference on Computing Education Research (Koli '08). ACM, New York, NY, USA, 5--15. https://doi.org/10.1145/1595356.1595360
[29]
Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education; Visuaalinen Ohjelmasimulaatio Ohjelmoinnin Alkeisopetuksessa. Ph.D. Dissertation. Aalto University, Espoo, Finland. http://urn.fi/URN:ISBN:978--952--60--4626--6
[30]
Juha Sorva. 2013. Notional Machines and Introductory Programming Education. Trans. Comput. Educ., Vol. 13, 2, Article 8 (July 2013), 31 pages. https://doi.org/10.1145/2483710.2483713
[31]
Juha Sorva, Ville Karavirta, and Lauri Malmi. 2013. A Review of Generic Program Visualization Systems for Introductory Programming Education. Trans. Comput. Educ., Vol. 13, 4, Article 15 (Nov. 2013), 64 pages. https://doi.org/10.1145/2490822
[32]
Juha Sorva and Otto Seppala. 2014. Research-based Design of the First Weeks of CS1. In Proceedings of the 14th Koli Calling International Conference on Computing Education Research (Koli Calling '14). ACM, New York, NY, USA, 71--80. https://doi.org/10.1145/2674683.2674690
[33]
Juha Sorva and Teemu Sirkia. 2010. UUhistle: A Software Tool for Visual Program Simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (Koli Calling '10). ACM, New York, NY, USA, 49--54. https://doi.org/10.1145/1930464.1930471
[34]
Li Sui, Jens Dietrich, Eva Heinrich, and Manfred Meyer. 2016. A Web-Based Environment for Introductory Programming Based on a Bi-Directional Layered Notional Machine. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '16). ACM, New York, NY, USA, 364--364. https://doi.org/10.1145/2899415.2925487
[35]
Preston Tunnell Wilson, Kathi Fisler, and Shriram Krishnamurthi. 2018. Evaluating the Tracing of Recursion in the Substitution Notional Machine. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE '18). ACM, New York, NY, USA, 1023--1028. https://doi.org/10.1145/3159450.3159479

Cited By

View all

Index Terms

  1. Engage Against the Machine: Rise of the Notional Machines as Effective Pedagogical Devices

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ITiCSE '20: Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education
June 2020
615 pages
ISBN:9781450368742
DOI:10.1145/3341525
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 June 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code tracing
  2. code writing
  3. memory diagrams
  4. notional machines
  5. pedagogy
  6. program construction
  7. stack traces
  8. visualization

Qualifiers

  • Research-article

Conference

ITiCSE '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 552 of 1,613 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)80
  • Downloads (Last 6 weeks)7
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media