Investigating the Under-Usage of Code Decomposition and Reuse Among High School Students: The Case of Functions

Functions can provide substantial benefits for programmers. They offer ways that can be used to simplify a given programming task through decomposition, reusability and abstraction. As observed by the first author, a graduate student and high school computer science (CS) teacher, students do not spontaneously use functions when they are asked to solve a certain task; instead they provide one procedural solution, even in situations where functions can clearly be helpful. This research aims to investigate how and when students use functions, as well as the reasons underlying their decisions whether to use them. This paper presents our ongoing research including some results from a pilot study. For data analysis we use the dual-process theory of human cognition and three related concepts: comfort zone, principle of least effort and cognitive laziness. We discuss how these can be useful in order to better understand the problem at hand.

[1]  George Kingsley Zipf,et al.  Human Behaviour and the Principle of Least Effort: an Introduction to Human Ecology , 2012 .

[2]  Toni R. Black Helping novice programming students succeed , 2006 .

[3]  Donna Teague,et al.  Losing their marbles: syntax-free programming for assessing problem-solving skills , 2009, ACE '09.

[4]  Mike Brown,et al.  Comfort Zone: Model or metaphor? , 2008 .

[5]  Jeff Kramer,et al.  Is abstraction the key to computing? , 2007, CACM.

[6]  David Ginat The greedy trap and learning from mistakes , 2003, SIGCSE.

[7]  Orit Hazzan,et al.  Assessing abstraction skills , 2016, Commun. ACM.

[8]  Cláudia Maria Lima Werner,et al.  Packaging reusable components using patterns and hypermedia , 1996, ICSR.

[9]  Marie Nordström,et al.  An evaluation of object oriented example programs in introductory programming textbooks , 2010, SGCS.

[10]  Uri Leron,et al.  The Slippery Road from Actions on Objects to Functions and Variables , 2009 .

[11]  D. Kahneman MAPS OF BOUNDED RATIONALITY: A PERSPECTIVE ON INTUITIVE JUDGMENT AND CHOICE , 2003 .

[12]  S. Fiske,et al.  Thinking is for doing: portraits of social cognition from daguerreotype to laserphoto. , 1992, Journal of personality and social psychology.

[13]  Irit Hadar,et al.  How intuitive is object-oriented design? , 2008, CACM.

[14]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[15]  Khairuddin Hashim,et al.  A SOFTWARE MAINTAINABILITY ATTRIBUTES MODEL , 1970 .

[16]  Bente Anda,et al.  Experiences from conducting semi-structured interviews in empirical software engineering research , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[17]  Juha Sorva,et al.  Exploring programming misconceptions: an analysis of student mistakes in visual program simulation exercises , 2012, Koli Calling.

[18]  Irit Hadar When intuition and logic clash: The case of the object-oriented paradigm , 2013, Sci. Comput. Program..

[19]  Mary Beth Rosson,et al.  The Cognitive Consequences of Object-Oriented Design , 1990, Hum. Comput. Interact..

[20]  Neil Brown,et al.  Investigating novice programming mistakes: educator beliefs vs. student data , 2014, ICER '14.

[21]  Laura Lehtola,et al.  Using the focus group method in software engineering: obtaining practitioner and user experiences , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[22]  Judea Pearl,et al.  Heuristics : intelligent search strategies for computer problem solving , 1984 .