V. van der Werf
Please Note
7 records found
1
Promoting Deliberate Naming Practices in Programming Education
A Set of Interactive Educational Activities
Despite extensive studies from the software engineering community on how naming practices influence programming behavior, the topic receives little attention in education. Prior work indicated little agreement on good naming because it depends on many factors. Students are told that "naming is important'' and "should be meaningful,'' yet its practical implementation is rarely discussed and feedback is lacking. The current work presents a dialogic teaching approach focused on teaching a critical reflection on naming practices through five activity types: (A) perceptions and experiences, (B) create names, (C) evaluate through ranking, (D) compare codes, and (E) locate a mistake. We developed, ran, and analyzed a one-hour workshop, that we present here and share our experiences, leading to recommendations for teachers. Our contribution is twofold: (1) we provide a set of (adaptable) activities and exercises for supporting deliberate naming practices, thereby assisting teachers interested in adopting naming practices into their curriculum; (2) we provide insights regarding the student perspective on naming practices, derived from the activities, revealing potential issues and opportunities in teaching the topic.
Motivation. Variable naming practices are part of the software developer’s profession, influencing program comprehension and code quality. Yet, little is known about how variable naming practices are taught in beginner courses. Objective. This paper investigates naming beliefs, self-reported teaching practices, and observations regarding variable naming practices of teachers of introductory Python programming courses. Methods. We adopted an in-depth qualitative approach by interviewing ten teachers from secondary education and higher education and developed several themes in order to answer our research questions. Results. Among various opinions and practices, we found that teachers agree on using meaningful names, but have conflicting beliefs about what is meaningful. Moreover, the described teaching practices do not always match teacher’s views on meaningful names, and teachers rarely encourage students to use them. Instead, they express that naming practices should not be enforced and that students will develop them by example. Whereas some teachers report focusing solely on conventions, others deliberately dedicate time for students to engage with naming, create their own guidelines, provide continuous feedback, or include naming exercises on exams. Discussion. Naming practices do not seem to be deliberately taught, even though they influence program understanding and code quality. We also identified inconsistencies in teachers’ self-reported naming practices. As such, we encourage intentional conversations about naming practices in educational settings, specifically linking naming to code quality and readability. We see room for group and peer activities as a means to this end, as well as providing formative feedback dedicated to naming.
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 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.
The Use of Digital Peer Assessment in Higher Education
An Umbrella Review of Literature
Virtual reality and collaborative learning
A systematic literature review