37 research outputs found

    Dcc --help: Generating Context-Aware Compiler Error Explanations with Large Language Models

    Full text link
    In the challenging field of introductory programming, high enrollments and failure rates drive us to explore tools and systems to enhance student outcomes, especially automated tools that scale to large cohorts. This paper presents and evaluates the dcc --help tool, an integration of a Large Language Model (LLM) into the Debugging C Compiler (DCC) to generate unique, novice-focused explanations tailored to each error. dcc --help prompts an LLM with contextual information of compile- and run-time error occurrences, including the source code, error location and standard compiler error message. The LLM is instructed to generate novice-focused, actionable error explanations and guidance, designed to help students understand and resolve problems without providing solutions. dcc --help was deployed to our CS1 and CS2 courses, with 2,565 students using the tool over 64,000 times in ten weeks. We analysed a subset of these error/explanation pairs to evaluate their properties, including conceptual correctness, relevancy, and overall quality. We found that the LLM-generated explanations were conceptually accurate in 90% of compile-time and 75% of run-time cases, but often disregarded the instruction not to provide solutions in code. Our findings, observations and reflections following deployment indicate that dcc-help provides novel opportunities for scaffolding students' introduction to programming.Comment: 7 pages, 2 figures. Accepted in SIGCSE'2

    Real Talk: illuminating online student understanding with authentic discussion tools

    Full text link
    In supporting online student cohorts, we experienced challenges in achieving the same quality of engagement asynchronously as we do through face-to-face discussions in a classroom setting. The educational model we use is based upon students progressing through weekly tasks designed to support development, and measure achievement of learning outcomes. In this model, once a student has completed a task, interactions between the student and instructor provide feedback to the instructor of the student's understanding. The feedback system gives confidence that the student understands their work and AIDS in identifying learning intervention opportunities. To achieve this asynchronously, we developed and integrated an audio-discussion tool known as Real Talk into our Learning Management System (LMS). The tool allows instructors to record discussion prompts tailored to a student's completed task and has the LMS replay the prompt(s) and immediately capturing the student's response. These interactions replicate essential aspects of face-to-face, in-person discussions by not affording the student opportunities to research and rehearse responses, which we previously experienced when using asynchronous discussion or quiz tools for this purpose. In this paper, we present the implementation of the Real Talk tool and discuss results evaluating how effective it was at allowing instructors to identify opportunities for learning interventions in introductory computing courses. The results confirmed that the tool has assisted in identifying knowledge gaps not identifiable in students' submissions alone

    Programs and sequence (Swinburne CodeCasts - Introduction to Programming in C 1.1)

    No full text
    In this video, Andrew and Reuben demonstrate how code is executed by a computer in sequence

    Arrays in Pascal (Swinburne CodeCasts - Introduction to Programming in Pascal 5.1)

    No full text
    In this video, Andrew and Jake take a look at creating arrays in your programs which allow you to store multiple values within a single variable

    Compiling using terminal (Swinburne CodeCasts - Introduction to Programming 1.1)

    No full text
    In this video, Andrew and Jake demonstrate how to navigate using the terminal as well as how to compile programs using the Free Pascal Compiler

    Functions pointers (Swinburne CodeCasts - Introduction to Programming in Pascal 4.4)

    No full text
    In this video, Andrew and Jake talk through incorporating function pointers in your code to create variables that point to your functions

    Enumerations (Swinburne CodeCasts - Introduction to Programming in Pascal 4.2)

    No full text
    In this video, Andrew and Cliff demonstrate the usefulness of Enumerations in your programs, and how they help you write more meaningful code

    Case statements (Swinburne CodeCasts - Introduction to Programming in Pascal 3.4)

    No full text
    In this video, Andrew and Cliff demonstrate how you can implement case statements within you programs to control the execution of code based on many different possible branches

    Dynamic arrays in Pascal (Swinburne CodeCasts - Introduction to Programming in Pascal 5.2)

    No full text
    In this video, Andrew and Reuben take a look at using Dynamic Arrays, which allow you to change the size of an array during run time

    Records (Swinburne CodeCasts - Introduction to Programming in C 4.1)

    No full text
    In this video, Andrew and Jake have a look at creating our own basic data structures in our programs, known as records or structs. These allow you to create custom, meaningful data types in your code
    corecore