37 research outputs found
Dcc --help: Generating Context-Aware Compiler Error Explanations with Large Language Models
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
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)
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)
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)
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)
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)
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)
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)
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)
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