Do I Know What My Code is "Saying"?: A study on novice programmers' perceptions of what reused source code may mean

Software development practices rely extensively on reusing source code written by other programmers. One of the recurring questions about such practice is how much programmers, acting as users of somebody else's code, really understand about the source code that they inject it in their own programs. The question is even more important for novices, who are trying to learn what programming is and how it should be practiced in larger scale. In this paper we present the results of an ongoing research using a semiotic approach to investigate how programmers send and receive, through messages inscribed in the source code of the programs they write or reuse, implicit and explicit communication about what such source code "means" to them and others. We carried out two studies with novice programmers and results suggest that source code reuse may impact the comprehension that programmers have about their own source code. In addition, how it impacts their understanding about the messages that are being communicated through their programs.

[1]  Manuel Sojer Foundations of value creation and value appropriation , 2011 .

[2]  Katalin Szili,et al.  Pragmatics in practice , 2016 .

[3]  Donald A. Sch,et al.  The Reflective Practitioner: How Professionals Think in Action , 2017 .

[4]  J. Wertsch Mind as action , 1998 .

[5]  Nicu Sebe,et al.  Guest Editors' Introduction: Human-Centered Computing--Toward a Human Revolution , 2007, Computer.

[6]  Sangil Choi,et al.  Understanding people with human activities and social interactions for human-centered computing , 2016, Human-centric Computing and Information Sciences.

[7]  John Kammersgaard Four Different Perspectives on Human-Computer Interaction , 1988, Int. J. Man Mach. Stud..

[8]  Katherine Malan,et al.  Examples that can do harm in learning programming , 2004, OOPSLA '04.

[9]  Clarisse Sieckenius de Souza,et al.  Mine, yours, ours: examples reuse and the self-expression of programming students , 2015, IHC.

[10]  Jan-Ola Östman,et al.  Pragmatics in practice , 2011 .

[11]  Clarisse Sieckenius deSouza The Semiotic Engineering of Human-Computer Interaction (Acting with Technology) , 2005 .

[12]  Dror G. Feitelson,et al.  Effects of Variable Names on Comprehension: An Empirical Study , 2017, 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).

[13]  Clarisse Sieckenius de Souza,et al.  A Software Development Story , 2016 .

[14]  Manuel Sojer Reusing open source code: value creation and value appropriation perspectives on knowledge reuse , 2011 .

[15]  Liam J. Bannon,et al.  Reimagining HCI: toward a more human-centered perspective , 2011, INTR.

[16]  Volker Wulf,et al.  Appropriation Infrastructure: Supporting the Design of Usages , 2009, IS-EUD.

[17]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

[18]  Alessio Gaspar,et al.  Restoring "coding with intention" in introductory programming courses , 2007, SIGITE '07.

[19]  C. Hartshorne,et al.  Collected Papers of Charles Sanders Peirce , 1935, Nature.

[20]  Umberto Eco,et al.  A theory of semiotics , 1976, Advances in semiotics.

[21]  Thomas D. LaToza,et al.  Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools , 2016, Computer.

[22]  S. Howard,et al.  A Field Study of Perceptions and Use of Mobile Telephones by 16 to 22 Year Olds , 2002 .

[23]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[24]  Rainer Koschke,et al.  On the Comprehension of Program Comprehension , 2014, TSEM.

[25]  Marcia C. Linn,et al.  When and why do novice programmers reuse code , 1996 .

[26]  Paul Dourish,et al.  The Appropriation of Interactive Technologies: Some Lessons from Placeless Documents , 2003, Computer Supported Cooperative Work (CSCW).