DOI: 10.1145/3478431.3499314
Terbit pada 22 Februari 2022 Pada Technical Symposium on Computer Science Education

Novice Reflections During the Transition to a New Programming Language

J. Prather Brett A. Becker Nigel Bosch + 3 penulis

Abstrak

As computing students progress through their studies they become proficient with multiple programming languages. Prior work investigating language transitions for novices has tended to analyze program artifacts rather than explore the benefits and difficulties as perceived by students in their own words, and has often overlooked problems that may arise in switching paradigms or where familiar syntax has a different meaning in the new language. In this paper, we ask students to reflect on the transition from an interpreted language and environment (MATLAB) to a compiled language (C), prompting comments on the aspects of learning the new language that they found both easier and harder. Analysis of over 70,000 words written by 771 students revealed that the highest-performing students expressed more negative sentiments towards the language transition -- a surprising result that we hypothesize is explained by their generally stronger metacognitive skills. We also report the most common difficulties described by students, which include challenges with syntax, error messages, and the process of compilation, and suggest teaching practices that might help students as they transition to a new programming language.

Artikel Ilmiah Terkait

Hedy: A Gradual Language for Programming Education

F. Hermans

1 Agustus 2020

One of the aspects of programming that learners often struggle with is the syntax of programming languages: remembering the right commands to use and combining those into a working program. Prior research demonstrated that students submit source code with syntax errors in 73% of cases and even the best students do so in 50% of cases. An analysis of 37 million compilations by 250.000 students found that the most common error was a syntax error, which occurred in almost 800.000 compilations. It was also found that Java and Perl are not easier to understand than a programming language with randomly generated keywords, stressing the difficulties that novices face in understanding syntax. This paper presents Hedy: a new way of teaching the syntax of a programming language to novices, inspired by educational methods by which punctuation is taught to children. Hedy starts as a simple programming language without any syntactic elements such as brackets, colons or indentation. The rules slowly and gradually change until the novices are programming in Python. Hedy is evaluated on 9714 programs.

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

Valeria Guerrero-Bequis Alejandro Espinal Camilo Vieira

2 Juni 2022

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.

Compiler Error Messages: Their Content and Accessibility in Novice Programming Environments

Ioannis Karvelas Joe Dillane Brett A. Becker

25 Februari 2020

Improving the feedback that novices receive from programming environments is an important and often overlooked aspect of computing education research. This work in progress examines the effects of various mechanisms by which environments deliver feedback to users. By providing insights on the effects of these mechanisms, we aim to inform designers, developers and educators about more effective design and use of such environments for students.

Here We Go Again: Why Is It Difficult for Developers to Learn Another Programming Language?

Chris Parnin Titus Barik Colton Botta + 1 lainnya

27 Juni 2020

Once a programmer knows one language, they can leverage concepts and knowledge already learned, and easily pick up another programming language. But is that always the case? To understand if programmers have difficulty learning additional programming languages, we conducted an empirical study of Stack Overflow questions across 18 different programming languages. We hypothesized that previous knowledge could potentially interfere with learning a new programming language. From our inspection of 450 Stack Overflow questions, we found 276 instances of interference that occurred due to faulty assumptions originating from knowledge about a different language. To understand why these difficulties occurred, we conducted semi-structured interviews with 16 professional programmers. The interviews revealed that programmers make failed attempts to relate a new programming language with what they already know. Our findings inform design implications for technical authors, toolsmiths, and language designers, such as designing documentation and automated tools that reduce interference, anticipating uncommon language transitions during language design, and welcoming programmers not just into a language, but its entire ecosystem.

Novice Use of the Java Programming Language

Pierre Weill-Tessier A. Costache Maksymilian Sekula + 2 lainnya

1 Agustus 2022

Objectives. Java is a popular programming language for use in computing education, but it is difficult to get a wide picture of the issues that it presents for novices; most studies look only at the types or frequency of errors. In this observational study, we aim to learn how novices use different features of the Java language. Participants. Users of the BlueJ development environment have been invited to opt in to anonymously record their activity data for the past 8 years. This dataset is called Blackbox, which was used as the basis for this study. BlueJ users are mostly novice programmers, predominantly male, with a median age of 16 years. Our data subset featured approximately 225,000 participants from around the world. Study Methods. We performed a secondary data analysis that used data from the Blackbox dataset. We examined over 320,000 Java projects collected over the course of 8 years and used source code analysis to investigate the prevalence of various specifically selected Java programming usage patterns. As this was an observational study without specific hypotheses, we did not use significance tests. Instead, we present the results themselves with commentary, having applied seasonal trend decomposition to the data. Findings. We found many long-term trends in the data over the course of the 8 years, most of which were monotonic. There was a notable reduction in the use of the main method (common in Java but unnecessary in BlueJ) and a general reduction in the complexity of the projects. We find that there is only a small number of frequently used types: int, String, double, and Boolean, but also a wide range of other infrequently used types. Conclusions. We find that programming usage patterns gradually change over a long period of time (a period in which the Java language was not seeing major changes) once seasonal patterns are accounted for. Any changes are likely driven by instructors and the changing demographics of programming novices. The novices use a relatively restricted subset of Java, which implies that designers of languages specifically targeted at novices can satisfy their needs with a smaller set of language constructs and features. We provide detailed recommendations for the designers of educational programming languages and supporting development tools.

Daftar Referensi

0 referensi

Tidak ada referensi ditemukan.

Artikel yang Mensitasi

0 sitasi

Tidak ada artikel yang mensitasi.