Litcius/Paper detail

Student ability and difficulties with transfer from a block-based programming language into other programming languages: a case study in Colombia

Alejandro Espinal, Camilo Vieira, Valeria Guerrero-Bequis

2022Computer Science Education29 citationsDOI

Abstract

Background and context Transfer is a process where students apply their learning to different contexts. This process includes using their knowledge to solve problems with similar complexity, and in new contexts. In the context of programming, transfer also includes being able to understand and use different programming languages.Objective This study explores: (a) student ability to transfer from a block-based programming language into another block-based programming language; (b) student ability to transfer from a block-based programming language to a text-based programming language; (d) student ability to transfer their learning within the same programming language; and (d) the difficulties students had to transfer in these contexts.Method A group of students participating in a program called Coding For Kids explained three different programs in different programming languages during an interview protocol. The students used the programming language MakeCode, and worked on transfer activities in Scratch and Python.Findings The results suggest that while most students are able to transfer between block-based programming languages, most of them struggle to explain a program in a text-based programming language, and to solve a new coding challenge.Implications Instructional designers should consider different strategies to facilitate student transfer into professional programming languages, which is particularly difficult for non-English speakers.

Topics & Concepts

Computer scienceFirst-generation programming languageProgramming languageProgramming domainProgramming paradigmFifth-generation programming languageVery high-level programming languagePython (programming language)Programming language implementationNatural language programmingCoding (social sciences)Inductive programmingContext (archaeology)Natural language processingNatural languageUniversal Networking LanguageComprehension approachMathematicsPaleontologyStatisticsBiologyTeaching and Learning Programming