Automatic Generation of Programming Exercises and Code Explanations using Large Language Models
arXiv:2206.11861 · doi:10.1145/3501385.3543957
Abstract
This article explores the natural language generation capabilities of large language models with application to the production of two types of learning resources common in programming courses. Using OpenAI Codex as the large language model, we create programming exercises (including sample solutions and test cases) and code explanations, assessing these qualitatively and quantitatively. Our results suggest that the majority of the automatically generated content is both novel and sensible, and in some cases ready to use as is. When creating exercises we find that it is remarkably easy to influence both the programming concepts and the contextual themes they contain, simply by supplying keywords as input to the model. Our analysis suggests that there is significant value in massive generative machine learning models as a tool for instructors, although there remains a need for some oversight to ensure the quality of the generated content before it is delivered to students. We further discuss the implications of OpenAI Codex and similar tools for introductory programming education and highlight future research streams that have the potential to improve the quality of the educational experience for both teachers and students alike.
arXiv comment18 pages, 1 figure, accepted in ICER
References in corpus (5)
- Evaluating Large Language Models Trained on Code
- Large Language Models are Zero-Shot Reasoners
- A Neural Network Solves, Explains, and Generates University Math Problems by Program Synthesis and Few-Shot Learning at Human Level
- Let's Ask Students About Their Programs, Automatically
- Pop Quiz! Can a Large Language Model Help With Reverse Engineering?
Cited by in corpus (45)
- Practical and Ethical Challenges of Large Language Models in Education: A Systematic Scoping Review
- The Robots are Here: Navigating the Generative AI Revolution in Computing Education
- Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming
- CodeAid: Evaluating a Classroom Deployment of an LLM-based Programming Assistant that Balances Student and Educator Needs
- Using Large Language Models to Enhance Programming Error Messages
- "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers
- Comparing Code Explanations Created by Students and Large Language Models
- Thrilled by Your Progress! Large Language Models (GPT-4) No Longer Struggle to Pass Assessments in Higher Education Programming Courses
- Exploring the Responses of Large Language Models to Beginner Programmers' Help Requests
- A Comparative Study of AI-Generated (GPT-4) and Human-crafted MCQs in Programming Education
- Evaluating the Effectiveness of LLMs in Introductory Computer Science Education: A Semester-Long Field Study
- How Knowledge Workers Think Generative AI Will (Not) Transform Their Industries
- Desirable Characteristics for AI Teaching Assistants in Programming Education
- Patterns of Student Help-Seeking When Using a Large Language Model-Powered Programming Assistant
- Refactoring Programs Using Large Language Models with Few-Shot Examples
- Feedback-Generation for Programming Exercises With GPT-4
- "It's not like Jarvis, but it's pretty close!" -- Examining ChatGPT's Usage among Undergraduate Students in Computer Science
- Automatically Generating CS Learning Materials with Large Language Models
- Evaluation of OpenAI Codex for HPC Parallel Programming Models Kernel Generation
- AI-enhanced Auto-correction of Programming Exercises: How Effective is GPT-3.5?
- GAIDE: A Framework for Using Generative AI to Assist in Course Content Development
- 61A Bot Report: AI Assistants in CS1 Save Students Homework Time and Reduce Demands on Staff. (Now What?)
- Enhancing Programming Error Messages in Real Time with Generative AI
- Rubric Is All You Need: Enhancing LLM-based Code Evaluation With Question-Specific Rubrics
- Automating Autograding: Large Language Models as Test Suite Generators for Introductory Programming
- NuzzleBug: Debugging Block-Based Programs in Scratch
- Scratch Copilot: Supporting Youth Creative Coding with AI
- Will Your Next Pair Programming Partner Be Human? An Empirical Evaluation of Generative AI as a Collaborative Teammate in a Semester-Long Classroom Setting
- Exploring LLM-Driven Explanations for Quantum Algorithms
- Synthetic Students: A Comparative Study of Bug Distribution Between Large Language Models and Computing Students
- Let's Ask AI About Their Programs: Exploring ChatGPT's Answers To Program Comprehension Questions
- Leveraging Lecture Content for Improved Feedback: Explorations with GPT-4 and Retrieval Augmented Generation
- LLM-Driven Feedback for Enhancing Conceptual Design Learning in Database Systems Courses
- SPROUT: an Interactive Authoring Tool for Generating Programming Tutorials with the Visualization of Large Language Models
- Automating Personalized Parsons Problems with Customized Contexts and Concepts
- Utilizing ChatGPT in a Data Structures and Algorithms Course: A Teaching Assistant's Perspective
- A Systematic Literature Review of the Use of GenAI Assistants for Code Comprehension: Implications for Computing Education Research and Practice
- Decomposed Prompting to Answer Questions on a Course Discussion Board
- Unlimited Practice Opportunities: Automated Generation of Comprehensive, Personalized Programming Tasks
- Analyzing Semantic Faithfulness of Language Models via Input Intervention on Question Answering
- Leveraging AI for Productive and Trustworthy HPC Software: Challenges and Research Directions
- PLAID: Supporting Computing Instructors to Identify Domain-Specific Programming Plans at Scale
- Intent Preserving Generation of Diverse and Idiomatic (Code-)Artifacts
- Aptly: Making Mobile Apps from Natural Language
- GuardRails: Automated Suggestions for Clarifying Ambiguous Purpose Statements