Kelly Cunningham
VerifiedUniversity of Illinois Urbana-Champaign · Department of Biomedical and Translational Sciences
Active 2015–2026
Research topics
- Computer Science
- Artificial Intelligence
- Psychology
- Theoretical computer science
- Mathematics education
- Programming language
Selected publications
2026-02-13
articleOpen accessSenior authorBuilding computer science instruction for everyone requires understanding and supporting learner motivations beyond software development. Some learners value understanding the applications of code more than writing code from scratch (e.g., end-user programmers or conversational programmers). However, introductory programming instruction often emphasizes fundamental code-writing skills without clear applications. Our goal is to provide an overview of authentic computing applications to students from a variety of disciplines, including those who may not be interested in code-writing skills or may not have prior experience in programming. To this end, we designed and tested three interactive tutorials in the lab sessions of an introductory computing course for non-CS majors. Instead of teaching programming from scratch, these purpose-first tutorials highlight the purpose and basics of authentic programming libraries and tools, such as SQL queries, web-scraping libraries in Python, and HTTP requests. They are short (<1 hour), require minimal prior knowledge, and can be easily included in existing courses. The learning objectives of our activities are to help students understand why and when these tools are useful and to encourage them to explore these tools in problems that they might encounter in their disciplines. We observed that the activities were beneficial in improving confidence and providing a conceptual understanding of several tools. We present lessons learned to inform the design of similar activities for teaching computing as general knowledge to diverse audiences.
PLAID: Supporting Computing Instructors to Identify Domain-Specific Programming Plans at Scale
2025-04-24 · 1 citations
preprintOpen accessSenior authorPedagogical approaches focusing on stereotypical code solutions, known as programming plans, can increase problem-solving ability and motivate diverse learners. However, plan-focused pedagogies are rarely used beyond introductory programming. Our formative study (N=10 educators) showed that identifying plans is a tedious process. To advance plan-focused pedagogies in application-focused domains, we created an LLM-powered pipeline that automates the effortful parts of educators' plan identification process by providing use-case-driven program examples and candidate plans. In design workshops (N=7 educators), we identified design goals to maximize instructors' efficiency in plan identification by optimizing interaction with this LLM-generated content. Our resulting tool, PLAID, enables instructors to access a corpus of relevant programs to inspire plan identification, compare code snippets to assist plan refinement, and facilitates them in structuring code snippets into plans. We evaluated PLAID in a within-subjects user study (N=12 educators) and found that PLAID led to lower cognitive demand and increased productivity compared to the state-of-the-art. Educators found PLAID beneficial for generating instructional material. Thus, our findings suggest that human-in-the-loop approaches hold promise for supporting plan-focused pedagogies at scale.
Patterns of Major Switching and Persistence in Computing among Students with Disabilities
2025-02-18
articleSenior authorDespite the proliferation of studies on broadening participation in computing, individuals with disabilities remain relatively less examined. In this study, we use large-scale data to examine the patterns of persistence and major-switching among students with disabilities in undergraduate computing education. Our findings suggest that disabilities discourage students to enter or remain in computing at the intersection of their race and gender. Our study provides insights on the challenges and opportunities students with disabilities face in undergraduate computing education, with implications for increasing their participation and retention.
Generating Planning Feedback for Open-Ended Programming Exercises with LLMs
ArXiv.org · 2025-04-11
preprintOpen accessSenior authorTo complete an open-ended programming exercise, students need to both plan a high-level solution and implement it using the appropriate syntax. However, these problems are often autograded on the correctness of the final submission through test cases, and students cannot get feedback on their planning process. Large language models (LLM) may be able to generate this feedback by detecting the overall code structure even for submissions with syntax errors. To this end, we propose an approach that detects which high-level goals and patterns (i.e. programming plans) exist in a student program with LLMs. We show that both the full GPT-4o model and a small variant (GPT-4o-mini) can detect these plans with remarkable accuracy, outperforming baselines inspired by conventional approaches to code analysis. We further show that the smaller, cost-effective variant (GPT-4o-mini) achieves results on par with state-of-the-art (GPT-4o) after fine-tuning, creating promising implications for smaller models for real-time grading. These smaller models can be incorporated into autograders for open-ended code-writing exercises to provide feedback for students' implicit planning skills, even when their program is syntactically incorrect. Furthermore, LLMs may be useful in providing feedback for problems in other domains where students start with a set of high-level solution steps and iteratively compute the output, such as math and physics problems.
Detecting Programming Plans in Open-ended Code Submissions
2025-02-18
articleSenior authorOpen-ended code-writing exercises are commonly used in large-scale introductory programming courses, as they can be autograded against test cases. However, code writing requires many skills at once, from planning out a solution to applying the intricacies of syntax. As autograding only evaluates code correctness, feedback addressing each of these skills separately cannot be provided. In this work, we explore methods to detect which high-level patterns (i.e. programming plans) have been used in a submission, so learners can receive feedback on planning skills even when their code is not completely correct. Our preliminary results show that LLMs with few-shot prompting can detect the use of programming plans in 95% of correct and 86% of partially correct submissions. Incorporating LLMs into grading of open-ended programming exercises can enable more fine-grained feedback to students, even in cases where their code does not compile due to other errors.
2025-11-06
articleOpen accessSenior authorA growing number of non-CS major students are enrolling in CS courses, alongside increased recognition that computing is critical to many fields. However, despite their perception of computing’s importance, many of these students lose interest in CS and stop taking additional CS courses. In this study, we examine non-CS major students’ CS learning experiences using the Model of Interest Development, a framework that models how learners’ interest in academic domains progresses through phases of increasing engagement. Through semi-structured interviews with 19 non-CS major students, we identify key factors common among students who develop the most sustained interest in CS and those who do not. We find that non-CS majors’ initial interest is often triggered by external advice and hazy perceptions of computing’s importance, even when their understanding of the field is limited. Continued interest depends heavily on the perceived relevance of course content, the presence of a supportive learning environment, self-efficacy in learning computing and pursuing CS-related careers, and the extent to which courses address or reinforce generalizations and biases about computing. For those who develop the strongest interest, key factors include beliefs about the level of CS knowledge needed for their career goals and whether their stereotypes about CS are effectively challenged. Our findings provide insight into why previous efforts to improve the persistence of non-CS major students may have fallen short and highlight implications for course design, interventions, and institutional policies to better support students’ interest development.
Generating Planning Feedback for Open-Ended Programming Exercises with LLMs
Lecture notes in computer science · 2025-01-01 · 1 citations
book-chapterSenior authorReexamining Learning Curve Analysis in Programming Education: The Value of Many Small Problems
2024-05-25 · 1 citations
preprintOpen accessSenior author[to appear in EDM 2024] Analyzing which skills students develop in introductory programming education is an important question for the computer science education community. Knowledge components, units of knowledge that can be measured by performance on a set of tasks, can be used to identify key concepts and skills in a given domain. While knowledge components in other domains have been successfully identified using learning curve analysis, such attempts on students' open-ended code-writing assignments have not been very successful. To understand why, we replicated a previously proposed approach, which uses abstract syntax tree (AST) nodes as knowledge components, on data collected across multiple semesters of a large-scale introductory programming course. Findings from our replication show that, given sufficient measurement opportunities, AST nodes can provide a viable knowledge component model for learning curve analysis to understand student learning, contrary to earlier findings. In addition to providing evidence for the validity of AST-based knowledge components, we recommend a set of conditions for programming courses that enable knowledge components generated using AST nodes to be successfully observed using learning curve analysis. This supports the integration of learning curves as a tool in any environment collecting code-writing data to be used for modifying the curriculum based on student performance and monitoring the development of skills related to language elements.
Challenges and Solutions for Teaching Decomposition and Planning Skills in CS1
2024-12-02 · 1 citations
articleThe task of decomposing a problem into sub-problems to build a solution, also formalized as planning in prior work, is a key skill for programming expertise. Improving the decomposition and planning skills of novices is shown to be a challenging goal for educators. Moreover, decomposing complex projects into smaller subtasks is an increasingly relevant skill with rapid developments in tools like large language models (LLMs). While there are many aspects of planning, one skill consistently observed in studies with experts is the ability to identify subtasks that can be solved via common code patterns. To support students in acquiring these skills, many researchers have explored explicit instruction about a set of common patterns in programs (i.e. programming plans). However, recent work implies that students may need additional support to fully benefit from such interventions. This panel aims to bring computing education researchers together to discuss the main challenges around teaching decomposition and planning using common patterns, the crucial factors for designing instruction for teaching these concepts, and the impact evolving technology like LLMs can have on these developments.
Implementation of Split Deadlines in a Large CS1 Course
2024-03-07
articleOpen accessSenior authorOffice hour utilization in computer science courses can spike near deadlines, producing long wait times, frustrated students, and over-worked staff. To address this problem, a large CS1 course implemented a split deadlines policy. Students were randomly divided into two groups with staggered release and due dates. Each group had the same amount of time to complete assignments, but the number of students with each due date was reduced by half. Our study evaluates the effectiveness of this policy. We measure office hour utilization and staff efficiency near deadlines, examine the policy's impact on student performance, and investigate student perception of the policy's fairness and effectiveness. Overall we found that the split deadline policy increased office hour efficiency, resulted in no significant difference in performance between groups, and was considered fair and effective by most students. Our experience report includes reflections and student feedback indicating how to implement and further improve similar policies.
Frequent coauthors
- 8 shared
Mark Guzdial
Michigan United
- 8 shared
Barbara Ericson
University of Michigan–Ann Arbor
- 5 shared
Rahul Agrawal Bejarano
University of Michigan–Ann Arbor
- 5 shared
William J. Welch
- 5 shared
Bude Su
- 3 shared
Sonia M. Arteaga
Hartnell College
- 3 shared
Abdussalam Alawini
University of Illinois Urbana-Champaign
- 3 shared
Mehmet Arif Demirtaş
Education
- 2020
PhD, Information, School of Information
University of Michigan
- 2018
MS, Human-Centered Computing, School of Interactive Computing
Georgia Institute of Technology
- 2013
BS Computer Science, Molecular and Cellular Biology, Computer Science, Molecular and Cellular Biology
The University of Arizona
Awards & honors
- Carle Illinois College of Medicine Professorships, Awards, a…
- Resume-aware match score
- Save to shortlist
- AI-drafted outreach
See your match with Kelly Cunningham
PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.
- Free to start
- No credit card
- 30-second signup