ABSTRACT
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.
- Eran Avidan and Dror G. Feitelson. 2017. Effects of Variable Names on Comprehension: An Empirical Study. In 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC). 55--65. Google ScholarDigital Library
- Liam Bannon. 2011. Reimagining HCI: Toward a More Human-centered Perspective, interactions 18, 4 (July 2011), 50--57. Google ScholarDigital Library
- Jennie Carrol, Steve Howard, Jane Peck, and John Murphy. 2002. A field study of perceptions and use of mobile telephones by 16 to 22 years old. Journal of Information Technology Theory and Application 4, 2 (2002), 49--61.Google Scholar
- Sangil Choi. 2016. Understanding people with human activities and social interactions for human-centered computing. Human-centric Computing and Information Sciences 6, 1 (05 Jul 2016), 9. Google ScholarDigital Library
- Clarisse Sieckenius de Souza. 2005. The Semiotic Engineering of Human-Computer Interaction (Acting with Technology). The MIT Press. Google ScholarDigital Library
- Clarisse Sieckenius de Souza, Renato F. de G. Cerqueira, Luiz Marques Afonso, Rafael R. de M. Brandão, and Juliana S. J. Ferreira. 2016. Software Developers As Users: Semiotic Investigations in Human-Centered Software Development (1st ed.). Springer Publishing Company, Incorporated. Google ScholarDigital Library
- Paul Dourish. 2003. The Appropriation of Interactive Technologies: Some Lessons from Placeless Documents. Computer Supported Cooperative Work (CSCW) 12, 4 (01 Dec 2003), 465--490. Google ScholarDigital Library
- Umberto Eco. 1976. A Theory of Semiotics. Indiana University Press. https://books.google.com.br/books?id=BoXO4ItsuaMCGoogle Scholar
- Alessio Gaspar and Sarah Langevin. 2007. Restoring "Coding with Intention" in Introductory Programming Courses. In Proceedings of the 8th ACM SIGITE Conference on Information Technology Education (SIGITE '07). ACM, New York, NY, USA, 91--98. Google ScholarDigital Library
- Alexandra Georgakopoulou. 2011. Pragmatics in Practice. John Benjamins Publishing, 326.Google Scholar
- Christopher M. Hoadley, Marcia C. Linn, Lydia M. Mann, and Michael J. Clancy. 1996. When and why do novice programmers reuse code? Ablex Publishing Company, 109--130.Google Scholar
- Alejandro Jaimes, Daniel Gatica-Perez, Thomas S. Huang, and Nicu Sebe. 2007. Guest Editors' Introduction: Human-Centered Computing--Toward a Human Revolution. Computer 40 (05 2007), 30--34. Google ScholarDigital Library
- John Kammersgaard. 1988. Four Different Perspectives on Human-computer Interaction. Int. J. Man-Mach. Stud. 28, 4 (April 1988), 343--362. Google ScholarDigital Library
- Caitlin Kelleher and Randy Pausch. 2005. Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers. ACM Comput. Surv. 37, 2 (June 2005), 83--137. Google ScholarDigital Library
- Walid Maalej, Rebecca Tiarks, Tobias Roehm, and Rainer Koschke. 2014. On the Comprehension of Program Comprehension. ACM Trans. Softw. Eng. Methodol. 23, 4, Article 31 (Sept. 2014), 37 pages. Google ScholarDigital Library
- Katherine Malan and Ken Halland. 2004. 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 (OOPSLA '04). ACM, New York, NY, USA, 83--87. Google ScholarDigital Library
- Luana Müller, Milene Selbach Silveira, and Clarisse Sieckenius de Souza. 2015. 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 (IHC '15). ACM, New York, NY, USA, Article 30, 10 pages. Google ScholarDigital Library
- Brad A. Myers, Andrew J. Ko, Thomas D. LaToza, and YoungSeok Yoon. 2016. Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools. Computer 49, 7 (July 2016), 44--52.Google ScholarDigital Library
- Lisa R. Neal. 1989. A System for Example-based Programming. SIGCHI Bull. 20, SI (March 1989), 63--68. Google ScholarDigital Library
- Charles S. Peirce, Charles Hartshorne, and Paul Weiss. 1932. Collected Papers of Charles Sanders Peirce. Belknap Press of Harvard University Press. https://books.google.com.br/books?id=u9fWAAAAMAAJGoogle Scholar
- Donald A. Schön. 2017. The Reflective Practitioner: How Professionals Think in Action. Taylor & Francis. https://books.google.com.br/books?id=OT9BDgAAQBAJGoogle Scholar
- Manuel Sojer. 2010. Reusing Open Source Code: Value Creation and Value Appropriation Perspectives on Knowledge Reuse. Gabler Verlag. https://books.google.com.br/books?id=-z60hspDTIACGoogle Scholar
- Gunnar Stevens, Volkmar Pipek, and Volker Wulf. 2009. Appropriation Infrastructure: Supporting the Design of Usages. Springer Berlin Heidelberg, Berlin, Heidelberg, 50--69.Google Scholar
- James V. Wertsch. 1998. Mind as Action. Oxford University Press. https://books.google.com.br/books?id=73Vv7Y3vf14CGoogle Scholar
- Jeannette M. Wing. 2006. Computational Thinking. Commun. ACM 49, 3 (March 2006), 33--35. Google ScholarDigital Library
Index Terms
- Do I Know What My Code is "Saying"?: A study on novice programmers' perceptions of what reused source code may mean
Recommendations
Reusable execution replay: execution record and replay for source code reuse
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software EngineeringA key problem during source code reuse is that, to reuse even a small section of code from a program, a programmer must include a huge amount of dependency source code from elsewhere in the same program. These dependencies are no- toriously large and ...
Towards the detection of cross-language source code reuse
NLDB'11: Proceedings of the 16th international conference on Natural language processing and information systemsInternet has made available huge amounts of information, also source code. Source code repositories and, in general, programming related websites, facilitate its reuse. In this work, we propose a simple approach to the detection of cross-language source ...
Are We There Yet? Novices' Code Smells linked to Loop Constructs
SIGCSE 2022: Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2Research on novice programmers has focused heavily on identifying errors and misconceptions and helping novices to correct them. In contrast, there is a sparse but growing effort into helping students to evaluate and improve the quality of their code ...
Comments