  We evaluate an automatic hint generator for CS1 programming assignments
powered by GPT-4, a large language model. This system provides natural language
guidance about how students can improve their incorrect solutions to short
programming exercises. A hint can be requested each time a student fails a test
case. Our evaluation addresses three Research Questions:
  RQ1: Do the hints help students improve their code? RQ2: How effectively do
the hints capture problems in student code? RQ3: Are the issues that students
resolve the same as the issues addressed in the hints?
  To address these research questions quantitatively, we identified a set of
fine-grained knowledge components and determined which ones apply to each
exercise, incorrect solution, and generated hint. Comparing data from two large
CS1 offerings, we found that access to the hints helps students to address
problems with their code more quickly, that hints are able to consistently
capture the most pressing errors in students' code, and that hints that address
a few issues at once rather than a single bug are more likely to lead to direct
student progress.
