ABSTRACT
Understanding how programs execute is one of the critical activities in the learning journey of a programmer. A novice constructs a mental model of program execution while learning programming. Any misconceptions at this stage lead to the development of a discrepant mental model. If left untreated, learning in advanced subjects like data structures and compiler construction may suffer. One of the ways to prevent the situation is carefully and explicitly unveiling the details of program execution. We employed Little Man Computer (LMC) for this purpose. Its interactive visual interface helped them internalise how software interacted with the hardware to achieve the programmer’s objective. After spending a few sessions on the programming of LMC, we moved to Scratch. Scratch is a much higher-level language than the LMC assembly. So, while introducing Scratch programming constructs, we mapped the LMC equivalents of these instructions. The strategy helped evade several misconceptions by developing a deep understanding of the program execution model. It also served as a building block for introducing other concepts like state, abstraction, the need for higher-level languages and the role of compilers etc. We tried this approach in an Introduction to Computer Science module where most students had zero or very minimal exposure to programming. We received positive feedback from students and other fellow teachers teaching in the subsequent semesters.
- Mordechai Ben-Ari. 2001. Constructivism in Computer Science Education. Journal of Computers in Mathematics and Science Teaching 20, 1(2001), 45–73. https://www.learntechlib.org/p/8505Google ScholarDigital Library
- Irv Englander. 1996. The Architecture of Computer Hardware and Systems Software: An Information Technology Approach. John Wiley and Sons, Inc., USA.Google Scholar
- Peter Higginson. [n. d.]. Little man computer - CPU simulator. https://www.peterhigginson.co.uk/LMC/Google Scholar
- Chien-fei Chen Joseph Foy and Erin James Wills. 2014. Integrating Assembly Language Programming into High School STEM Education (work in progress). In 2014 ASEE Annual Conference & Exposition. ASEE Conferences, Indianapolis, Indiana. https://peer.asee.org/20660.Google Scholar
- Lisa C. Kaczmarczyk, Elizabeth R. Petrick, J. Philip East, and Geoffrey L. Herman. 2010. Identifying Student Misconceptions of Programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (Milwaukee, Wisconsin, USA) (SIGCSE ’10). Association for Computing Machinery, New York, NY, USA, 107–111. https://doi.org/10.1145/1734263.1734299Google ScholarDigital Library
- Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, and Yasmin Kafai. 2009. Scratch: Programming for All. Commun. ACM 52, 11 (Nov. 2009), 60–67. https://doi.org/10.1145/1592761.1592779Google ScholarDigital Library
- Simon, Raina Mason, Tom Crick, James H. Davenport, and Ellen Murphy. 2018. Language Choice in Introductory Programming Courses at Australasian and UK Universities. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (Baltimore, Maryland, USA) (SIGCSE ’18). Association for Computing Machinery, New York, NY, USA, 852–857. https://doi.org/10.1145/3159450.3159547Google ScholarDigital Library
Index Terms
- LMC + Scratch: A recipe to construct a mental model of program execution
Recommendations
A (Relatively) Unsatisfactory Experience of Use of Scratch in CS1
TEEM 2017: Proceedings of the 5th International Conference on Technological Ecosystems for Enhancing MulticulturalityScratch is a "rich-media programming language" that has become very popular at high school because students may learn it very quickly and produce surprisingly animated programs. Consequently, some instructors have proposed using Scratch at the ...
Use of problem-solving approach to teach scratch programming for adult novice programmers (abstract only)
SIGCSE '14: Proceedings of the 45th ACM technical symposium on Computer science educationNovice programmers usually fail to combine abstract concepts and knowledge into program design, even though they know the syntax and semantics of individual statement. Adult novice programmers with little computer background knowledge might face more ...
Scratch vs. Karel: impact on learning outcomes and motivation
WiPSCE '14: Proceedings of the 9th Workshop in Primary and Secondary Computing EducationThis paper presents the results of an experiment regarding the effects of using one of two different programming environments in secondary schools. Both "Scratch" and "Karel the Robot" have been successfully used in these settings previously. These two ...
Comments