Source Code Comprehension and Appropriation by Novice Programmers: Understanding Novice Programmers’ Perception about Source Code Reuse
Keywords:Source code reuse, Semiotic Engineering, Novice programmers, Metacommunication
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 the source code that they inject it in their programs. The question is even more important for novices, who are trying to learn what programming is and how it should be practiced on a larger scale. In this paper we present the results of an ongoing research using a semiotic approach to investigate how novice programmers reuse source code, and how, through messages inscribed in the source code of the programs they write or reuse, they communicate, implicitly or explicitly, what such source code "means" to them and others. We carried out three studies with novice programmers, and results suggest that source code reuse may impact what programmers take their source code to mean.
C. Kelleher and R. Pausch, "Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers", ACM Comput. Surv., vol. 37, no. 2, pp. 83-137, Jun. 2005. [Online]. Available: http://doi.acm.org/10.1145/1089733.1089734
L. R. Neal, "A system for example-based programming", SIGCHI Bull., vol. 20, no. SI, pp. 63-68, Mar. 1989. [Online]. Available: http://doi.acm.org/10.1145/67450.67464
K. Malan and K. Halland, "Examples that can do harm in learning programming", in Companion to the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, ser. OOPSLA '04. New York, NY, USA: ACM, 2004, pp. 83-87. [Online]. Available: http://doi.acm.org/10.1145/1028664.1028702
A. Gaspar and S. Langevin, "Restoring "coding with intention" in introductory programming courses", in Proceedings of the 8th ACM SIGITE Conference on Information Technology Education, ser. SIGITE '07. New York, NY, USA: ACM, 2007, pp. 91-98. [Online]. Available: http://doi.acm.org/10.1145/1324302.1324323
E. Avidan and D. G. Feitelson, "Effects of variable names on comprehension: An empirical study", in 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC), May 2017, pp. 55-65.
W. Maalej, R. Tiarks, T. Roehm, and R. Koschke, "On the comprehension of program comprehension", ACM Trans. Softw. Eng. Methodol., vol. 23, no. 4, pp. 31:1-31:37, Sep. 2014. [Online]. Available: http://doi.acm.org/10.1145/2622669
C. W. Krueger, "Software reuse", ACM Comput. Surv., vol. 24, no. 2, pp. 131-183, Jun. 1992. [Online]. Available: http://doi.acm.org/10.1145/130844.130856
C. M. Hoadley, M. C. Linn, L. M. Mann, and M. J. Clancy, When and why do novice programmers reuse code? Ablex Publishing Company, 1996, pp. 109-130.
M. Sojer, Reusing Open Source Code: Value Creation and Value Appropriation Perspectives on Knowledge Reuse, ser. Innovation und Entrepreneurship. Gabler Verlag, 2010. [Online]. Available: https://books.google.com.br/books?id=-z60hspDTlAC
C. S. de Souza, The Semiotic Engineering of Human-Computer Interaction (Acting with Technology). The MIT Press, 2005.
A. Georgakopoulou, Pragmatics in Practice. John Benjamins Publishing, 2011, p. 326.
J. Kammersgaard, "Four different perspectives on human-computer interaction", Int. J. Man-Mach. Stud., vol. 28, no. 4, pp. 343-362, Apr. 1988. [Online]. Available: http://dx.doi.org/10.1016/S00207373(88)80017-8
B. A. Myers, A. J. Ko, T. D. LaToza, and Y. Yoon, "Programmers are users too: Human-centered methods for improving programming tools", Computer, vol. 49, no. 7, pp. 44-52, July 2016.
L. Müller, M. S. Silveira, and C. S. de Souza, "Do i know what my code is "saying"?: A study on novice programmers' perceptions of what reused source code may mean", in Proceedings of the 17th Brazilian Symposium on Human Factors in Computing Systems, ser. IHC 2018. New York, NY, USA: ACM, 2018, pp. 17:1-17:10. [Online]. Available: http://doi.acm.org/10.1145/3274192.3274209
C. S. Peirce, C. Hartshorne, and P. Weiss, Collected Papers of Charles Sanders Peirce, ser. Collected Papers of Charles Sanders Peirce. Belknap Press of Harvard University Press, 1932. [Online]. Available: https://books.google.com.br/books?id=u9fWAAAAMAAJ
U. Eco, A Theory of Semiotics, ser. Advances in semiotics. Indiana University Press, 1976. [Online]. Available: https://books.google.com.br/books?id=BoXO4ItsuaMC
L. Bannon, "Reimagining hci: Toward a more human-centered perspective", interactions, vol. 18, no. 4, pp. 50-57, Jul. 2011. [Online]. Available: http://doi.acm.org/10.1145/1978822.1978833
S. Choi, "Understanding people with human activities and social interactions for human-centered computing", Human-centric Computing and Information Sciences, vol. 6, no. 1, p. 9, Jul 2016. [Online]. Available: https://doi.org/10.1186/s13673-016-0066-1
A. Jaimes, D. Gatica-Perez, T. S. Huang, and N. Sebe, "Guest editors' introduction: Human-centered computing-toward a human revolution", Computer, vol. 40, pp. 30-34, 05 2007. [Online]. Available: doi.ieeecomputersociety.org/10.1109/MC.2007.169
J. V. Wertsch, Mind as Action. Oxford University Press, 1998. [Online]. Available: https://books.google.com.br/books?id=73Vv7Y3vf14C
J. Carrol, S. Howard, J. Peck, and J. Murphy, "A field study of perceptions and use of mobile telephones by 16 to 22 years old", Journal of Information Technology Theory and Application, vol. 4, no. 2, pp. 49-61, 2002.
G. Stevens, V. Pipek, and V. Wulf, Appropriation Infrastructure: Supporting the Design of Usages. Berlin, Heidelberg: Springer Berlin Heidelberg, 2009, pp. 50-69.
P. Dourish, "The appropriation of interactive technologies: Some lessons from placeless documents", Computer Supported Cooperative Work (CSCW), vol. 12, no. 4, pp. 465-490, Dec 2003. [Online]. Available: https://doi.org/10.1023/A:1026149119426
M. B. Rosson, J. Ballin, and H. Nash, "Everyday programming: Challenges and opportunities for informal web development", in 2004 IEEE Symposium on Visual Languages - Human Centric Computing, Sept 2004, pp. 123-130.
M. Ichinco and C. Kelleher, "Exploring novice programmer example use", in 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Oct 2015, pp. 63-71.
M. P. Robillard, "What makes apis hard to learn? answers from developers", IEEE Softw., vol. 26, no. 6, pp. 27-34, Nov. 2009. [Online]. Available: https://doi.org/10.1109/MS.2009.193
L. M. Afonso, "Communicative dimensions of application programming interfaces (apis)", Ph.D. dissertation, Pontifícia Universidade Católica do Rio de Janeiro, 2015.
C. S. de Souza, R. F. d. G. Cerqueira, L. M. Afonso, R. R. d. M. Brandão, and J. S. J. Ferreira, Software Developers As Users: Semiotic Investigations in Human-Centered Software Development, 1st ed. Springer Publishing Company, Incorporated, 2016.
L. Müller, M. S. Silveira, and C. S. de Souza, "Mine, yours, ours: Examples reuse and the self-expression of programming students", in Proceedings of the 14th Brazilian Symposium on Human Factors in Computing Systems, ser. IHC '15. New York, NY, USA: ACM, 2015, pp. 30:1-30:10. [Online]. Available: http://doi.acm.org/10.1145/3148456.3148486
L. Müller, "Uma abordagem semiótica para apoiar programadores iniciantes durante o processo de reúso e de apropriação de códigos-fonte", Ph.D. dissertation, Pontifícia Universidade Católica do Rio Grande do Sul, 2017.
J. Brandt, P. J. Guo, J. Lewenstein, M. Dontcheva, and S. R. Klemmer, "Two studies of opportunistic programming: Interleaving web foraging, learning, and writing code", in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '09. New York, NY, USA: ACM, 2009, pp. 1589-1598. [Online]. Available: http://doi.acm.org/10.1145/1518701.1518944
T. Roehm, R. Tiarks, R. Koschke, and W. Maalej, "How do professional developers comprehend software?” in Proceedings of the 34th International Conference on Software Engineering, ser. ICSE '12. Piscataway, NJ, USA: IEEE Press, 2012, pp. 255-265. [Online]. Available: http://dl.acm.org/citation.cfm?id=2337223.2337254
I. T. Monteiro, L. C. de Castro Salgado, M. P. Mota, A. L. Sampaio, and C. S. de Souza, "Signifying software engineering to computational thinking learners with agentsheets and polifacets", Journal of Visual Languages & Computing, vol. 40, pp. 91 - 112, 2017, semiotics, HumanComputer Interaction and End-User Development. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1045926X16300234
D. A. Schön, The Reflective Practitioner: How Professionals Think in Action. Taylor & Francis, 2017. [Online]. Available: https://books.google.com.br/books?id=OT9BDgAAQBAJ
How to Cite
JIS is free of charges for both authors and readers, and all papers published by JIS follow the Creative Commons Attribution 4.0 International (CC BY 4.0) license.