63 research outputs found

    Meaningful Categorisation of Novice Programmer Errors

    Get PDF
    The frequency of different kinds of error made by students learning to write computer programs has long been of interest to researchers and educators. In the past, various studies investigated this topic, usually by recording and analysing compiler error messages, and producing tables of relative frequencies of specific errors diagnostics produced by the compiler. In this paper, we improve on such prior studies by investigating actual logical errors in student code, as opposed to diagnostic messages produced by the compiler. The actual errors reported here are more precise, more detailed and more accurate than the diagnostic produced automatically

    Flexible Low-cost Activities to Develop Novice Code Comprehension Skills in Schools

    Get PDF
    The lack of code comprehension skills in novice programming students is recognised as a major factor underpinning poor learning outcomes. We use Schulte’s Block Model to support teachers’ understanding of how to break the skill down into component parts that are more manageable for a learner. This analysis is operationalised in three code annotation-based learning/assessment exercise formats, two helping students to identify and describe programming concepts and the third enabling them to parse code correctly and carry out desk executions. A great benefit of the activities is that they are low cost and can be applied to any imperative style code and so can be easily adopted by schools anywhere; furthermore, they are active, not passive, an issue with some animation-based visualisation approaches. The exercise formats were included as part of a national schools computing science professional learning programme (PLAN C)

    Analysis of Student Misconceptions Using Python as an Introductory Programming Language

    Get PDF
    Python has become a popular language for the delivery of introductory programming courses. Two reasons for this are Python's convenience and syntactic simplicity, giving a low entry barrier for beginners and the ability to solve complex problems with short snippets of code. However, students exhibit widespread misconceptions about the meaning of basic language constructs, inhibiting their ability to solve problems and damaging their understanding of fundamental concepts. In this paper, we document our observations of level 1 university students over several years, as well as surveys probing the nature of their misconceptions. We analyze the misconceptions in relation to a notional machine model for Python, and show that many students form inadequate and brittle mental models of the language. Our results indicate that one of the major sources of misunderstanding is the heavy use of overloading in Python. Overloading hides the complexity of algorithms and data structures, often leading students to write code that involves mutability, sharing, copying, side effects, coroutines, concurrency, and lazy evaluation -- and none of those topics are accessible to students who haven't yet mastered basic assignments, conditionals, and looping. We suggest that Python, when taught alone, is insufficient as an introductory language: students can gain a firmer grasp of programming fundamentals when Python is presented alongside a complementary low level language that makes a notional machine clear and explicit

    Improving the Thymio Visual Programming Language Experience through Augmented Reality

    Get PDF
    This document is a roadmap describing two directions for improving the user experience of the Thymio robot and its visual programming language using augmented reality techniques

    An Exploratory Study of Students' Mastery of Iteration in the High School

    Get PDF
    Although a number of studies report about novices\u2019 diffi-culties with basic flow-control constructs, concerning both the under-standing of the underlying notional machine and the logical connectionswith the application domain, this issues have not yet been extensivelyexplored in the context of high-school education. As part of a projectwhose long-run goal is identifying methodological tools to improve thelearning of iteration, we analyzed how a sample of 164 high-school stu-dents\u2019 approached three small programming tasks involving basic loopingconstructs, as well as two questions on their subjective perception of dif-ficulty. If, on the one hand, most students seem to have developed aviable mental model of the basic workings of the underlying machine,on the other, dealing at a more abstract level with loop conditions andnested flow-control structures appears to be challenging. As to the impli-cations for teachers, the results of the analysis suggest that more effortsshould be addressed to develop a method for testing the conjecturesabout program behavior, as well as to the treatment of loop conditionsin connection with the problem statement

    An Exploration of High School Students' Self-Confidence while Analysing Iterative Code

    Get PDF
    A number of studies on novice programming report that loops and conditionals can be potential sources of errors and misconceptions. We then felt the need to engage in a more systematic and in-depth investigation about the teaching and learning of iteration in some representative high schools of our regional area. As a medium-term outcome of this endeavour we expect to get fine-grained insights about the nature of students' difficulties, on the one hand, as well as to identify possible pedagogical approaches to be adopted by teachers, on the other. As a step of this project, we designed and administered a survey composed of a set of small tasks, addressing students’ understanding of iteration in terms of code reading abilities. After summarising the motivations underlying the choice of the tasklets and the overall structure of the instrument, in this paper we will focus on a particular aspect which has not yet received extensive attention in the computer science education literature. Specifically, we will consider students' perception of self-confidence, in connection with their actual performance in each task, the specific program features, the cognitive demands (procedural vs. higher-level thinking skills), and the use of code vs. flow-charts. A noteworthy result of this analysis is that students’ perception of self-confidence is poorly correlated to actual performance in the task at hand. The main implications of our study are twofold, pertaining our understanding of less conspicuous facets of the learning of iteration as well as possible pedagogical strategies to strengthen metacognitive skills

    Combining program visualization with programming workspace to assist students for completing programming laboratory task

    Get PDF
    Numerous Program Visualization tools (PVs) have been developed for assisting novice students to understand their source code further. However, none of them are practical to be used in the context of completing programming laboratory task; students are required to keep switching between PV and programming workspace since PV’s features are considerably limited for developing programming solution from scratch. This paper combines PV with programming workspace to handle such issue. Resulted tool (which is named PITON) has 13 features extracted from PythonTutor (a program visualization tool), PyCharm (a programming workspace), and student’s feedbacks about PythonTutor. According to think-aloud and user study, PITON is more practical to be used than a combination of PythonTutor and PyCharm. Further, its features are considerably helpful; students rated these features as useful and frequently usedPeer Reviewe
    • …
    corecore