13 research outputs found

    On Novices\u27 Interaction with Compiler Error Messages: A Human Factors Approach

    Get PDF
    The difficulty in understanding compiler error messages can be a major impediment to novice student learning. To alleviate this issue, multiple researchers have run experiments enhancing compiler error messages in automated assessment tools for programming assignments. The conclusions reached by these published experiments appear to be conflicting. We examine these experiments and propose five potential reasons for the inconsistent conclusions concerning enhanced compiler error messages: (1) students do not read them, (2) researchers are measuring the wrong thing, (3) the effects are hard to measure, (4) the messages are not properly designed, (5) the messages are properly designed, but students do not understand them in context due to increased cognitive load. We constructed mixed-methods experiments designed to address reasons 1 and 5 with a specific automated assessment tool, Athene, that previously reported inconclusive results. Testing student comprehension of the enhanced compiler error messages outside the context of an automated assessment tool demonstrated their effectiveness over standard compiler error messages. Quantitative results from a 60 minute one-on-one think-aloud study with 31 students did not show substantial increase in student learning outcomes over the control. However, qualitative results from the one-on-one thinkaloud study indicated that most students are reading the enhanced compiler error messages and generally make effective changes after encountering them

    Conceptions and Misconceptions about Computational Thinking among Italian Primary School Teachers

    Get PDF
    International audienceMany advanced countries are recognizing more and more the importance of teaching computing, in some cases even as early as in primary school. "Computational thinking" is the term often used to denote the conceptual core of computer science or "the way a computer scientist thinks", as Wing put it. Such term - given also the lack of a widely accepted definition - has become a "buzzword" meaning different things to different people. We investigated the Italian primary school teachers' conceptions about computational thinking by analyzing the results of a survey (N=972) conducted in the context of "Programma il Futuro" project. Teachers have been asked to provide a definition of computational thinking and to answer three additional related closed-ended questions. The analysis shows that, while almost half of teachers (43.4%) have included in their definitions some fundamental elements of computational thinking, very few (10.8%) have been able to provide an acceptably complete definition. On a more positive note, the majority is aware that computational thinking is not characterized by coding or by the use of information technology

    Growth Mindset in Computational Thinking Teaching and Teacher Training

    Get PDF
    International audienceTeacher training in computational thinking is becoming more and more important, as many countries are introducing it at all K-12 school levels. Introductory programming courses are known to be difficult and some studies suggest they foster a fixed-mindset views of intelligence, reinforcing the idea that only some people have the so called "geek gene". This is particularly dangerous if thought by future school teachers. Interventions to stimulate "CS growth mindset" in students and their teachers are fundamental and worth CS education research

    NuzzleBug: Debugging Block-Based Programs in Scratch

    Full text link
    While professional integrated programming environments support developers with advanced debugging functionality, block-based programming environments for young learners often provide no support for debugging at all, thus inhibiting debugging and preventing debugging education. In this paper we introduce NuzzleBug, an extension of the popular block-based programming environment Scratch that provides the missing debugging support. NuzzleBug allows controlling the executions of Scratch programs with classical debugging functionality such as stepping and breakpoints, and it is an omniscient debugger that also allows reverse stepping. To support learners in deriving hypotheses that guide debugging, NuzzleBug is an interrogative debugger that enables to ask questions about executions and provides answers explaining the behavior in question. In order to evaluate NuzzleBug, we survey the opinions of teachers, and study the effects on learners in terms of debugging effectiveness and efficiency. We find that teachers consider NuzzleBug to be useful, and children can use it to debug faulty programs effectively. However, systematic debugging requires dedicated training, and even when NuzzleBug can provide correct answers learners may require further help to comprehend faults and necessary fixes, thus calling for further research on improving debugging techniques and the information they provide.Comment: To appear at the 2024 IEEE/ACM 46th International Conference on Software Engineering (ICSE '24), April 14--20, 2024, Lisbon, Portuga

    Programming environment for teaching introductory programming for secondary school

    Get PDF
    Programming subject was become one of the syllabus in Malaysia national school start from 2017. To introduce youth to programming, suitable programming environment to teach introductory programming should be determined. Many initiatives are proceeding to bring powerful ideas of computing into classroom around the world. A popular strategy being employed in this effort is the use of block-based programming environment. This environment found to be effective among younger learners. Their suitability in high school context is an open question. The existing tools was analysed to identify the suitable environment to teach introductory programming in high school. An experiment involving 30 participants was conducted to get their perception on three different programming environments; text-based, block-based and hybrid. Findings from the study reveal that participants in hybrid group scoring highest in content assessment and reporting higher level in enjoyment and engagement to traditional programming structure. After the completion of literature and exploratory research, a bidirectional hybrid programming environment was developed. This environment combines features of block-based and text-based interface to provides the platform and engagement of block-based tools with the power and authenticity of textbased introductory environment. A traditional hybrid programming creates a gap between block-based and text-based programming. It was be used to run in evaluation workshop involving of 13 students aged 16 - 17 years old. The evaluation of enhanced programming environment was determined by using triangulation of data; students’ perception and result from their assessment using an enhanced hybrid programming environment. Participants have positive perception on confidence and understanding of programming concept. Besides, they agreed that bidirectional hybrid programming environment offered a more effective way of introductory programming subject compared to existing environment they are using in classroom. Suggestions for future work are outlined and intended that this research will assist the development and use a bidirectional hybrid environment in teaching introductory programming

    PROud - a gamification framework based on programming exercises usage data

    Get PDF
    Solving programming exercises is the best way to promote practice in computer programming courses and, hence, to learn a programming language. Meanwhile, programming courses continue to have an high rate of failures and dropouts. The main reasons are related with the inherent domain complexity, the teaching methodologies, and the absence of automatic systems with features such as intelligent authoring, profile-based exercise sequencing, content adaptation, and automatic evaluation on the student’s resolution. At the same time, gamification is being used as an approach to engage learners’ motivations. Despite its success, its implementation is still complex and based on ad-hoc and proprietary solutions. This paper presents PROud as a framework to inject gamification features in computer programming learning environments based on the usage data from programming exercises. This data can be divided into two categories: generic data produced by the learning environment—such as, the number of attempts and the duration that the students took to solve a specific exercise—or code-specific data produced by the assessment tool—such as, code size, use memory, or keyword detection. The data is gathered in cloud storage and can be consumed by the learning environment through the use of a client library that communicates with the server through an established Application Programming Interface (API). With the fetched data, the learning environment can generate new gamification assets (e.g., leaderboards, quests, levels) or enrich content adaptations and recommendations in the inner components such as the sequencing tools. The framework is evaluated on its usefulness in the creation of a gamification asset to present dynamic statistics on specific exercises.info:eu-repo/semantics/publishedVersio

    Dual Modality Code Explanations for Novices: Unexpected Results

    Get PDF
    The research in both cognitive load theory and multimedia principles for learning indicates presenting information using both diagrams and accompanying audio explanations yields better learning performance than using diagrams with text explanations. While this is a common practice in introductory programming courses, often called live coding, it has yet to be empirically tested. This paper reports on an experiment to determine if auditory explanations of code result in improved learning performance over written explanations. Students were shown videos explaining short code segments one of three ways: text only explanations, auditory only explanations, or both text and auditory explanations, thus replicating experiments from other domains. The results from this study do not support the findings from other disciplines and we offer explanations for why this may be the case

    Applied Cognitive Sciences

    Get PDF
    Cognitive science is an interdisciplinary field in the study of the mind and intelligence. The term cognition refers to a variety of mental processes, including perception, problem solving, learning, decision making, language use, and emotional experience. The basis of the cognitive sciences is the contribution of philosophy and computing to the study of cognition. Computing is very important in the study of cognition because computer-aided research helps to develop mental processes, and computers are used to test scientific hypotheses about mental organization and functioning. This book provides a platform for reviewing these disciplines and presenting cognitive research as a separate discipline

    Eye on Collaborative Creativity : Insights From Multiple-Person Mobile Gaze Tracking in the Context of Collaborative Design

    Get PDF
    Early Career WorkshopNon peer reviewe
    corecore