The Debugging C Compiler (DCC), developed by CSE researcher Dr Andrew Taylor, makes the C programming language more accessible to beginners. As such, it allows UNSW to continue to use C in introduction to programming courses.

C compilers take human-written C code and turn it into instructions that a computer can understand and execute. DCC is a new type of C compiler, which also generates machine instructions, but does so in a way that explains common errors and catches problems that regular C compilers often miss.

The research paper by Dr Jake Renzella, Dr Andrew Taylor and Dr Sasha Vassar presenting DCC and measuring it’s efficacy in aiding novice C programmers was recently accepted by the 2023 SIGCSE Technical Symposium.

C runs the world, especially when performance and efficiency are essential. C powers many operating systems such as Windows (1.4 billion active devices) and Android and iOS Kernels (5 billion active machines). Many things we use in our daily lives are programmed in C, such as coffee machines, microwaves, cars, and 3D movies.

However, current literature indicates that there is a decline in teaching C as the first programming language, whereas it used to be the dominant language. In the Group of Eight (Australia’s 8 most research-intensive universities), UNSW is the only university still teaching C as the introductory language. Most other universities have moved to Python.

“One reason behind this decline is C's difficulty. As a low-level language, C can be challenging to understand for beginners. Newer, higher-level languages such as Python abstract some of the difficulty away, which is why these tend to be preferred,” said Dr Renzella.

“While these higher-level languages do more for the programmer and take care of memory management and data structures, C requires students to build things and handle memory management themselves, which teaches valuable skills and habits early on,” Dr Vassar added.

“C can be hard to learn, but the many rewards pay off over a lifetime in computing,” said Professor Aaron Quigley, Head of School for CSE.

“By taking a foundations first approach to teaching programming, UNSW produces the most technically sophisticated graduates in Australia.”

DCC can contribute to students’ success in learning C as a first language, making it more accessible by catching bugs and explaining common errors in comprehensible language. The tool has proved itself extremely useful:

“There are an estimated 5 million compilations of DCC here at UNSW. These have led to an 11% increase in the detection of compile-time errors, as well as a 65% increase in the detection of run-time errors,” said Dr Taylor.

“That is an estimated 3.8 million times we have assisted students in catching nasty bugs, which would have been missed if using standard C compilers.”

The introductory programming course COMP1511, which teaches C, is now the largest undergraduate course by enrolment at UNSW, with a student satisfaction score of 97%.  

“We set students up for success by teaching C, and our success is facilitated in part by DCC,” said Dr Renzella.

The paper on DCC will be presented in person at the SIGCSE Technical Symposium in Toronto on Thursday 16 March 2023.

The Technical Symposium is organised by SIGCSE and is its flagship computer education research conference. It provides a forum for sharing new ideas and addresses problems common among educators working to develop, implement and/or evaluate computing programs, curricula, and courses.