Motivation. Many people interested in learning a programming language choose online courses to develop their skills. The concept of variables is one of the most foundational ones to learn, but can... Show moreMotivation. Many people interested in learning a programming language choose online courses to develop their skills. The concept of variables is one of the most foundational ones to learn, but can be hard to grasp for novices. Variables are researched, but to our knowledge, few empirical observations on how the concept is taught in practice exist. Objective. We investigate how the concept of variables, and the respective naming practices, are taught in introductory Massive Open Online Courses (MOOCs) teaching programming languages. Methods. We gathered qualitative data related to variables and their naming from 17 MOOCs. Collected data include connections to other programming concepts, formal definitions, used analogies, and presented names. Results. We found that variables are often taught in close connection to data types, expressions, and program execution and are often explained using the 'variable as a box' analogy. The latter finding represents a stronger focus on 'storing values', than on naming, memory, and flexibility. Furthermore, MOOCs are inconsistent when teaching naming practices. Conclusions. We recommend teachers and researchers to pay deliberate attention to the definitions and analogies used to explain the concept of variables as well as to naming practices, and in particular to variable name meaning. Show less
Werf, V. van der.; Aivaloglou, E.; Hermans, F.F.J.; Specht, M.M. 2022
Motivation. Code reading skills are important for comprehension. Explain-in-plain-English tasks (EiPE) are one type of reading exercises that show promising results on the ability of such exercises... Show moreMotivation. Code reading skills are important for comprehension. Explain-in-plain-English tasks (EiPE) are one type of reading exercises that show promising results on the ability of such exercises to differentiate between particular levels of code comprehension. Code reading/explaining skills also correlate with code writing skills. Objective. This paper aims to provide insight in what novice students express in their explanations after reading a piece of code, and what these insights can tell us about how the students comprehend code. Method. We performed an exploratory analysis on four reading assignments extracted from a university-level beginners course in Python programming. We paid specific attention to 1) the core focus of student answers, 2) elements of the code that are often included or omitted, and 3) errors and misconceptions students may present. Results. We found that students prioritize the output that is generated by print-statements in a program. This is indication that these statements may have the ability to aid students make sense of code. Furthermore, students appear to be selective about which elements they find important in their explanation. Assigning variables and asking input was less often included, whereas control-flow elements, print statements and function definitions were more often included. Finally, students were easily confused or distracted by lines of code that seemed to interfere with the newly learned programming constructs. Also domain knowledge (outside of programming) both positively and negatively interfered with reading and interpreting the code. Discussion. Our results pave the way towards a better understanding of how students understand code by reading and of how an exercise containing self-explanations after reading, as a teaching instrument, may be useful to both teachers and students in programming education. Show less
Motivation Only 27% of computer and mathematical scientists in the United States and 18% of IT specialists in Europe are women. The under-representation of women in the field of Computer Science is... Show moreMotivation Only 27% of computer and mathematical scientists in the United States and 18% of IT specialists in Europe are women. The under-representation of women in the field of Computer Science is, among other things, influenced by stereotypes of computer scientists. These stereotypes include being male, asocial and having an (obsessive) interest in computers. Even though stereotypical beliefs can develop at an early age, research on children’s stereotypes of computer scientists is sparse and inconclusive. Objectives Stereotypes we hold can be implicit or unconscious beliefs, or explicit or conscious beliefs. In this study, we focus on children’s implicit and explicit stereotypes regarding computer scientists’ gender, social skills and interests. We also study whether explaining what a computer scientist does affects these stereotypes. Method We study the implicit stereotypes through the reduced-length Child Implicit Association Test and the explicit stereotypes through self-reported absolute and relative Likert scale questions. We gathered data on 564 children between the age of 7 and 18 who were visiting a science museum. The participants in the experiment group (n=352) watch a video of either a man or woman explaining what a computer scientist does at the start of the study. Results We found weak implicit stereotypical beliefs on computer scientists’ social skills and moderate implicit stereotypical beliefs on computer scientists’ interests. We also found explicit stereotypes on computer scientists’ gender, social skills and interests. Measuring the effects of the intervention, we found significant differences between the control and experiment group in their explicit stereotypes on computer scientists’ social skills. Discussion The amount of scientific work on children’s stereotypes regarding computer scientists is still limited. Applying the reduced-length Child Implicit Association Test to measure children’s stereotypes on computer scientists has, to our knowledge, not been done before. Understanding children’s stereotypes and how to tackle them contributes to closing the gender gap in Computer Science. Show less
Spreadsheets are the most popular live programming environments, but they are also notoriously fault-prone. One reason for this is that users actively rely on copy-paste to make up for the lack of... Show moreSpreadsheets are the most popular live programming environments, but they are also notoriously fault-prone. One reason for this is that users actively rely on copy-paste to make up for the lack of abstraction mechanisms. Adding abstraction however, introduces indirection and thus cognitive distance. In this paper we propose an alternative: copy-paste tracking. Tracking copies that spreadsheet users make, allows them to directly edit copy-pasted formulas, but instead of changing only a single instance, the changes will be propagated to all formulas copied from the same source. As a result, spreadsheet users will enjoy the benefits of abstraction without its drawback. Show less