The document presents a hierarchical model-based diagnosis (HMBd) approach for an intelligent tutoring system aimed at enhancing programming learning by diagnosing student errors at various levels of abstraction. It compares traditional model-based diagnosis with model-based software debugging to identify limitations and proposes solutions for clearer communication of programming faults to students. The authors aim to implement and experimentally evaluate this extended technique to facilitate better learning outcomes.