ABSTRACT
An approach to code comprehension in an introductory programming class is presented, drawing on the Text Surface, Functional and Machine aspects of Schulte’s Block Model, and emphasising programming as a modelling activity involving problem and machine domains. To visually connect the domains and a program, a key diagram conceptualising the three aspects lies at the approach’s heart, alongside instructional exposition and exercises, which are all presented. Students find the approach challenging initially, but most recognise its value later, and identify, unexpectedly, the value of the approach for problem decomposition, planning and coding.
- Quintin Cutts, Sarah Esper, Marlena Fecho, Stephen R. Foster, and Beth Simon. 2012. The Abstraction Transition Taxonomy: Developing Desired Learning Outcomes through the Lens of Situated Cognition. In Proceedings of the Ninth Annual International Conference on International Computing Education Research (Auckland, New Zealand) (ICER ’12). Association for Computing Machinery, New York, NY, USA, 63–70. https://doi.org/10.1145/2361276.2361290Google ScholarDigital Library
- 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 (Potsdam, Germany) (WiPSCE ’18). Association for Computing Machinery, New York, NY, USA, Article 19, 4 pages. https://doi.org/10.1145/3265757.3265776Google ScholarDigital Library
- Benedict Du Boulay. 1986. Some Difficulties of Learning to Program. Journal of Educational Computing Research 2, 1 (Feb. 1986), 57–73. https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9Google ScholarCross Ref
- Sally Fincher, Johan Jeuring, Craig S Miller, Peter Donaldson, Benedict Du Boulay, Matthias Hauswirth, Arto Hellas, Felienne Hermans, Colleen Lewis, Andreas Mühling, 2020. Capturing and Characterising Notional Machines. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education. 502–503.Google ScholarDigital Library
- Cruz Izu, Carsten Schulte, Ashish Aggarwal, Quintin Cutts, Rodrigo Duran, Mirela Gutica, Birte Heinemann, Eileen Kraemer, Violetta Lonati, Claudio Mirolo, and Renske Weeda. 2019. Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories. In Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education (Aberdeen, Scotland Uk) (ITiCSE-WGR ’19). Association for Computing Machinery, New York, NY, USA, 27–52. https://doi.org/10.1145/3344429.3372501Google ScholarDigital Library
- Mike Lopez, Jacqueline Whalley, Phil Robbins, and Raymond Lister. 2008. Relationships between reading, tracing and writing skills in introductory programming. In Proceedings of the fourth international workshop on computing education research. 101–112.Google ScholarDigital Library
- Orna Muller. 2005. Pattern Oriented Instruction and the Enhancement of Analogical Reasoning. In Proceedings of the First International Workshop on Computing Education Research (Seattle, WA, USA) (ICER ’05). Association for Computing Machinery, New York, NY, USA, 57–67. https://doi.org/10.1145/1089786.1089792Google ScholarDigital Library
- Carsten Schulte. 2008. Block Model: an educational model of program comprehension as a tool for a scholarly approach to teaching. In Proceeding of the fourth international workshop on Computing education research - ICER ’08. ACM Press, Sydney, Australia, 149–160. https://doi.org/10.1145/1404520.1404535Google ScholarDigital Library
- Elliot Soloway. 1985. From Problems to Programs Via Plans: The Content and Structure of Knowledge for Introductory LISP Programming. Journal of Educational Computing Research 1 (05 1985). https://doi.org/10.2190/WK8C-BYCF-VQ5C-E307Google ScholarCross Ref
- Benjamin Xie, Dastyni Loksa, Greg L Nelson, Matthew J Davidson, Dongsheng Dong, Harrison Kwik, Alex Hui Tan, Leanne Hwa, Min Li, and Amy J Ko. 2019. A theory of instruction for introductory programming skills. Computer Science Education 29, 2-3 (2019), 205–253.Google ScholarCross Ref
Index Terms
Introducing Modelling and Code Comprehension from the First Days of an Introductory Programming Class
Recommendations
The use of code reading in teaching programming
Koli Calling '13: Proceedings of the 13th Koli Calling International Conference on Computing Education ResearchProgramming is an intertwined process of reading and writing. So far, computing education research has often focused on the writing part. This paper takes a further look into the role of reading source code in learning to program. In order to complement ...
Introductory programming: what's happening today and will there be any students to teach tomorrow?
ACE '04: Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30This paper reports the findings of a census of introductory programming courses. Eighty five courses from Australian and New Zealand universities are included. The census aims to discover languages and paradigms taught, tools used, texts employed, method ...
Natural language in introductory programming: an experimental study
ITiCSE '11: Proceedings of the 16th annual joint conference on Innovation and technology in computer science educationAlthough characterized as being "high level", classical programming languages such as Pascal and C have a grammar that is very different from natural language. In this research field, two main streams are noteworthy, one of them is characterized by an ...
Comments