Computer programming is no longer an option. It is now a vital skill that is integrated into various industries, a key to leveraging one’s business resume. Learning the fundamentals of programming allows one to understand how the digital world functions and gears towards coming up with creative solutions for the world. To aid those who are learning how to program, Korea University’s (KU) Professor Oh Hakjoo (Department of Computer Science and Engineering) and Professor Lee Woo-suk’s (Department of Computer Science, Hanyang University) research teams as well as Song Do-won (Integrated Ph.D. Program at Department of Computer Science and Engineering) co-developed a new technology called *CAFE*, a context and data-driven feedback generator for programming assignments.

It is no exaggeration to say that programming is the foundation of all technological innovation. Thanks to programming, it is possible to look forward to cutting-edge technology that can meet the rapidly changing demands of the public. Programming is ever more present in the world today, as a large part of people’s lives has been shifted to the online world due to the coronavirus disease (COVID-19) pandemic. The transition from in-person to online meetings has raised the value of programming, leading to a great programming boom.

Professor Oh Hakjoo. Provided by Professor Oh Hakjoo
Professor Oh Hakjoo. Provided by Professor Oh Hakjoo

The Programming Boom

The rapid technological development has made the public accustomed to seeing consecutive launches of new devices. In order to keep up with this trend, computer programs need to be smarter, faster, and better. For computers to assist humans, they first need to understand exactly what they need to do. To satisfy this requirement, an intricate communication technique, also known as coding, is used.

In hopes of better understanding the basics of software, young generations these days are trying to learn computer languages in depth. The demand for programming education is skyrocketing, with online educational programming sites gaining immense popularity. In South Korea, programming is now seen as a crucial skill for job applicants, as tech giants like Naver require applicants to be able to solve basic coding problems.

As a result, many are feverishly purchasing coding books and are trying to register for coding classes. The student age range is diverse, from those in elementary school to those who already have a strong career. In contrast to this rush of demand for programming, however, the supply of educators is failing to keep up. Such an unequal growth rate between the number of learners and the number of educators makes it impossible for educators to provide individual feedback, leaving students helplessly stuck on questions they cannot find the answer to.

How *CAFE* will Change the Digital World

In order to relieve this problem, researchers have created feedback generation techniques that point out coding mistakes without the help of a physical teacher. However, because these current techniques are largely data-driven and reliant on singular functions, such programs are only able to catch errors if the mistake is similar to what they have learned in the past. In other words, if the error is unlike any reference solution the program has seen before, it has a hard time figuring out what is wrong and may overlook errors.

To overcome this limitation, KU and Hanyang University co-developed an innovative system that does not fully rely on data collection to find errors and singular functions to give appropriate feedback on programming exercises. Also known as *CAFE*, this newly developed technology differentiates itself from prior techniques by being a “context-aware, function-level repair algorithm,” as stated in the research paper published by the KU and Hanyang University team titled *Context-aware and Data-Driven Feedback Generation for Programming Assignments*.

CAFE Automatically Fixing Errors and Giving Feedback. Provided by KU News.
CAFE Automatically Fixing Errors and Giving Feedback. Provided by KU News.

The meaning behind *context-aware* is that *CAFE* does not try to find a specific solution reference that exactly matches the error. Instead, it works to find multiple references that partially match the mistake, which allows it to find exactly where the student made the mistake. Figuring out the core reason behind students’ errors makes *CAFE* an inventive technology that shows the potential of artificial intelligence (AI) to learn without direct answers being inputted into its system.

To evaluate *CAFE*, the technique was implemented in a real-life classroom setting. Specifically, it was used for a functional programming language called *OCaml*, which is widely used for teaching how to program. The team collected a total of 644 incorrect and 3,547 correct student submissions from the course and ran *CAFE* to test its accuracy. The result was quite promising, with a repair rate of 83 percent, 548 out of the 644 incorrect submissions. *CAFE*’s accuracy was proven again when it was found that *CAFE* had a 48 percent higher repair rate than a leading technique called *FixML* that relies on a data-driven solution program. This was due to *CAFE*’s diverse repair abilities and the fact that it does not rely on the availability of data.

However, this does not mean that *CAFE* does not have limitations. The main limitation to this technique is that it fails to repair submissions with a large number of errors as the search space expands with the increase in the number of repairs. Also, the team found that *CAFE* sometimes made data matches that were defective, which led to an incorrect fix. According to Professor Oh, “*CAFE* has been created with the underlying assumption that the submitted code is not entirely wrong. Thus, if the answer has too many mistakes or if the student has mistaken the purpose of the question entirely, it is hard to create an effective feedback whereas people such as professors and assistants are able to give partial feedback in such cases.”

The creation of *CAFE* opens up a bounty of opportunities for the coding community. Not only does it assist students in understanding what went wrong, but it also lessens the work and burden of educators who are expected to provide detailed feedback. This makes it possible for coding education to become more widespread and accessible to many, and significantly shrinks the gap between the number of learners and the number of teachers. The power of AI is becoming increasingly visible and it has now gained a spot in the education industry as both a teacher and teaching assistant.

저작권자 © The Granite Tower 무단전재 및 재배포 금지