Evaluating Code Generation of LLMs in Advanced Computer Science Problems
By: Emir Catir, Robin Claesson, Rodothea Myrsini Tsoupidi
Potential Business Impact:
Helps computers write harder code, but not perfectly.
Large Language Models (LLMs), such as GitHub Copilot and ChatGPT have become popular among programming students. Students use LLMs to assist them in programming courses, including generating source code. Previous work has evaluated the ability of LLMs in solving introductory-course programming assignments. The results have shown that LLMs are highly effective in generating code for introductory Computer Science (CS) courses. However, there is a gap in research on evaluating LLMs' ability to generate code that solves advanced programming assignments. In this work, we evaluate the ability of four LLM tools to solve programming assignments from advanced CS courses in three popular programming languages, Java, Python, and C. We manually select 12 problems, three problems from introductory courses as the baseline and nine programming assignments from second- and third-year CS courses. To evaluate the LLM-generated code, we generate a test suite of 1000 test cases per problem and analyze the program output. Our evaluation shows that although LLMs are highly effective in generating source code for introductory programming courses, solving advanced programming assignments is more challenging. Nonetheless, in many cases, LLMs identify the base problem and provide partial solutions that may be useful to CS students. Furthermore, our results may provide useful guidance for teachers of advanced programming courses on how to design programming assignments.
Similar Papers
Analyzing Prominent LLMs: An Empirical Study of Performance and Complexity in Solving LeetCode Problems
Software Engineering
Helps coders pick the best AI for writing code.
Can LLMs Generate Reliable Test Case Generators? A Study on Competition-Level Programming Problems
Computation and Language
Helps computers find bugs in other computer code.
Large Language Models for Code Generation: A Comprehensive Survey of Challenges, Techniques, Evaluation, and Applications
Software Engineering
Lets anyone write computer programs with plain English.