Abstract: A system for identifying and describing programming errors passes source code through a syntax checker, operates a parser to identify potential problems in the source code, assembles a structured problem list of identified potential problems, operates an interpreter to execute the source code and match execution errors to an identified potential problem in the structured problem list, and generates an error report for novice programmers to understand.