Semantic Transfer in Programming Languages: Exploratory Study of Relative Novices

It is a natural part of a student's computing education to transfer from language to language, hence adopting to a new programming language (PL) quickly is a necessary skill. Prior work in computer science research mainly brings awareness of the success and difficulties that students face when learning new languages. In addition, work that directly relates to PL transfer mainly concerns experienced programmers problem solving in a new language, evidencing plan transfer. We could not find research attempting to devise a model of PL transfer based on code comprehension. We explore this phenomenon in the context of five university students transitioning from procedural Python to object-oriented Java, over a period of 10 weeks. We analyse the results through the lens of a model of second language acquisition using the notion of Semantic transfer and the Mindshift learning theory (MLT). The findings indicate that during the initial learning stages, learners relied mostly on their syntactic matching between Python and Java and subsequent semantic transfer which affected their learning positively on Carryover concepts and negatively on Changed concepts. Students could not transfer their semantic knowledge on concepts they perceived as Novel. An understanding of the transfer process learners go through during a shift can help inform our pedagogy on how to ease the transition process and achieve an effective learning process, and we provide pointers in this direction.

[1]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[2]  Jean Scholtz,et al.  Learning second and subsequent programming languages: A problem of transfer , 1990, Int. J. Hum. Comput. Interact..

[3]  Nan Jiang Semantic Transfer and Its Implications for Vocabulary Teaching in a Second Language , 2004 .

[4]  Tony Clear,et al.  An introduction to program comprehension for computer science educators , 2010, ITiCSE-WGR '10.

[5]  K. Crowley,et al.  The microgenetic method. A direct means for studying cognitive development. , 1991, The American psychologist.

[6]  David A. Watt,et al.  Programming language design concepts , 2004 .

[7]  Karen P. Walker,et al.  Obstacles to Learning a Second Programming Language: An Empirical Study , 1996, Comput. Sci. Educ..

[8]  David Weintrop,et al.  Using Commutative Assessments to Compare Conceptual Understanding in Blocks-based and Text-based Programs , 2015, ICER.

[9]  Jean Scholtz,et al.  Using Unfamiliar Programming Languages: The Effects on Expertise , 1993, Interact. Comput..

[10]  Ben Shneiderman,et al.  Syntactic/semantic interactions in programmer behavior: A model and experimental results , 1979, International Journal of Computer & Information Sciences.

[11]  Gretchen Irwin,et al.  Journeys up the mountain: Different paths to learning object-oriented programming , 1997 .

[12]  Michael Thuné,et al.  Novice Java programmers' conceptions of "object" and "class", and variation theory , 2005, ITiCSE '05.

[13]  Nan Jiang,et al.  Lexical representation and development in a second language , 2000 .

[14]  Thomas Leich,et al.  A Look into Programmers’ Heads , 2020, IEEE Transactions on Software Engineering.

[15]  Leanne M. Hirshfield,et al.  Through the looking glass: teaching CS0 with Alice , 2007, SIGCSE.

[16]  Colleen M. Lewis The importance of students' attention to program state: a case study of debugging behavior , 2012, ICER '12.

[17]  Michael Homer,et al.  Combining Tiled and Textual Views of Code , 2014, 2014 Second IEEE Working Conference on Software Visualization.

[18]  Nischal Shrestha Towards Supporting Knowledge Transfer of Programming Languages , 2018, 2018 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[19]  William R. Cook,et al.  On understanding data abstraction, revisited , 2009, OOPSLA '09.

[20]  John R. Anderson,et al.  Problem-Solving Transfer among Programming Languages , 1990 .

[21]  Jean Scholtz,et al.  An analysis of novice programmers learning a second language , 1992, PPIG.

[22]  Neil Brown,et al.  Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming , 2015, WiPSCE.

[23]  David Weintrop,et al.  How block-based, text-based, and hybrid block/text modalities shape novice programming practices , 2018, Int. J. Child Comput. Interact..

[24]  Winston Tellis,et al.  Introduction to Case Study , 1997 .

[25]  Carsten Schulte,et al.  Block Model: an educational model of program comprehension as a tool for a scholarly approach to teaching , 2008, ICER '08.

[26]  Raymond Lister,et al.  Longitudinal think aloud study of a novice programmer , 2014, ACE.

[27]  Thomas Leich,et al.  Understanding understanding source code with functional magnetic resonance imaging , 2014, ICSE.

[28]  Steve Cooper,et al.  Mediated transfer: Alice 3 to Java , 2012, SIGCSE '12.

[29]  Jean Scholtz,et al.  Learning a new programming language: a model of the planning process , 1991, Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.

[30]  Yasmin B. Kafai,et al.  Boys' Needlework: Understanding Gendered and Indigenous Perspectives on Computing and Crafting with Electronic Textiles , 2015, ICER.

[31]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[32]  Deborah J. Armstrong,et al.  Understanding Mindshift Learning: The Transition to Object-Oriented Development , 2007, MIS Q..

[33]  Andreas Stefik,et al.  An Empirical Investigation into Programming Language Syntax , 2013, TOCE.

[34]  Håkan Ringbom,et al.  Cross-linguistic Similarity in Foreign Language Learning , 2006 .