3,820 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Functional Baby Talk: Analysis of Code Fragments from Novice Haskell Programmers

    Get PDF
    What kinds of mistakes are made by novice Haskell developers, as they learn about functional programming? Is it possible to analyze these errors in order to improve the pedagogy of Haskell? In 2016, we delivered a massive open online course which featured an interactive code evaluation environment. We captured and analyzed 161K interactions from learners. We report typical novice developer behavior; for instance, the mean time spent on an interactive tutorial is around eight minutes. Although our environment was restricted, we gain some understanding of Haskell novice errors. Parenthesis mismatches, lexical scoping errors and do block misunderstandings are common. Finally, we make recommendations about how such beginner code evaluation environments might be enhanced

    Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming

    Get PDF
    Block-based programming systems, such as Scratch or Alice, are the most popular environments for introducing young children to programming. However, mastery of text-based programming continues to be the educational goal for stu- dents who continue to program into their teenage years and beyond. Transitioning across the significant gap between the two editing styles presents a difficult challenge in school- level teaching of programming. We propose a new style of program manipulation to bridge the gap: frame-based edit- ing. Frame-based editing has the resistance to errors and approachability of block-based programming while retaining the flexibility and more conventional programming seman- tics of text-based programming languages. In this paper, we analyse the issues involved in the transition from blocks to text and argue that they can be overcome by using frame- based editing as an intermediate step. A design and imple- mentation of a frame-based editor is provided

    An evaluation of electronic individual peer assessment in an introductory programming course

    Get PDF
    [Abstract]: Peer learning is a powerful pedagogical practice delivering improved outcomes over conventional teacher-student interactions while offering marking relief to instructors. Peer review enables learning by requiring students to evaluate the work of others. PRAISE is an on-line peer-review system that facilitates anonymous review and delivers prompt feedback from multiple sources. This study is an evaluation of the use of PRAISE in an introductory programming course. Use of the system is examined and attitudes of novice programmers towards the use of peer review are compared to those of students from other disciplines, raising a number of interesting issues. Recommendations are made to introductory programming instructors who may be considering peer review in assignments

    Using theory to inform capacity-building: Bootstrapping communities of practice in computer science education research

    Get PDF
    In this paper, we describe our efforts in the deliberate creation of a community of practice of researchers in computer science education (CSEd). We understand community of practice in the sense in which Wenger describes it, whereby the community is characterized by mutual engagement in a joint enterprise that gives rise to a shared repertoire of knowledge, artefacts, and practices. We first identify CSEd as a research field in which no shared paradigm exists, and then we describe the Bootstrapping project, its metaphor, structure, rationale, and delivery, as designed to create a community of practice of CSEd researchers. Features of other projects are also outlined that have similar aims of capacity building in disciplinary-specific pedagogic enquiry. A theoretically derived framework for evaluating the success of endeavours of this type is then presented, and we report the results from an empirical study. We conclude with four open questions for our project and others like it: Where is the locus of a community of practice? Who are the core members? Do capacity-building models transfer to other disciplines? Can our theoretically motivated measures of success apply to other projects of the same nature

    Novice programming environments: lowering the barriers, supporting the progression

    Get PDF
    In 2011, the author published an article that looked at the state of the art in novice programming environments. At the time, there had been an increase in the number of programming environments that were freely available for use by novice programmers, particularly children and young people. What was interesting was that they offered a relatively sophisticated set of development and support features within motivating and engaging environments, where programming could be seen as a means to a creative end, rather than an end in itself. Furthermore, these environments incorporated support for the social and collaborative aspects of learning. The article considered five environments—Scratch, Alice, Looking Glass, Greenfoot, and Flip— examining their characteristics and investigating the opportunities they might offer to educators and learners alike. It also considered the broader implications of such environments for both teaching and research. In this chapter, the author revisits the same five environments, looking at how they have changed in the intervening years. She considers their evolution in relation to changes in the field more broadly (e.g., an increased focus on “programming for all”) and reflects on the implications for teaching, as well as research and further development

    An Exploration Of The Effects Of Enhanced Compiler Error Messages For Computer Programming Novices

    Get PDF
    Computer programming is an essential skill that all computing students must master and is increasingly important in many diverse disciplines. It is also difficult to learn. One of the many challenges novice programmers face from the start are notoriously cryptic compiler error messages. These report details on errors made by students and are essential as the primary source of information used to rectify those errors. However these difficult to understand messages are often a barrier to progress and a source of discouragement. A high number of student errors, and in particular a high frequency of repeated errors – when a student makes the same error consecutively – have been shown to be indicators of students who are struggling with learning to program. This instrumental case study research investigates the student experience with, and the effects of, software that has been specifically written to help students overcome their challenges with compiler error messages. This software provides help by enhancing error messages, presenting them in a straightforward, informative manner. Two cohorts of first year computing students at an Irish higher education institution participated over two academic years; a control group in 2014-15 that did not experience enhanced error messages, and an intervention group in 2013-14 that did. This thesis lays out a comprehensive view of the student experience starting with a quantitative analysis of the student errors themselves. It then views the students as groups, revealing interesting differences in error profiles. Following this, some individual student profiles and behaviours are investigated. Finally, the student experience is discovered through their own words and opinions by means of a survey that incorporated closed and open-ended questions. In addition to reductions in errors overall, errors per student, and the key metric of repeated error frequency, the intervention group is shown to behave more cohesively with fewer indications of struggling students. A positive learning experience using the software is reported by the students and the lecturer. These results are of interest to educators who have witnessed students struggle with learning to program, and who are looking to help remove the barrier presented by compiler error messages. This work is important for two reasons. First, the effects of error message enhancement have been debated in the literature – this work provides evidence that there can be positive effects. Second, these results should be generalisable at least in part, to other languages, students and institutions

    Evaluating a Course for Teaching Advanced Programming Concepts with Scratch to Preservice Kindergarten Teachers: A Case Study in Greece

    Get PDF
    Coding is a new literacy for the twenty-first century, and as a literacy, coding enables new ways of thinking and new ways of communicating and expressing ideas, as well as new ways of civic participation. A growing number of countries, in Europe and beyond, have established clear policies and frameworks for introducing computational thinking (CT) and computer programming to young children. In this chapter, we discuss a game-based approach to coding education for preservice kindergarten teachers using Scratch. The aim of using Scratch was to excite students’ interest and familiarize them with the basics of programming in an open-ended, project-based, and personally meaningful environment for a semester course in the Department of Preschool Education in the University of Crete. For 13 weeks, students were introduced to the main Scratch concepts and, afterward, were asked to prepare their projects. For the projects, they were required to design their own interactive stories to teach certain concepts about mathematics or physical science to preschool-age students. The results we obtained were more satisfactory than expected and, in some regards, encouraging if one considers the fact that the research participants had no prior experiences with computational thinking
    • …
    corecore