• DocumentCode
    1173053
  • Title

    Transformation-based diagnosis of student programs for programming tutoring systems

  • Author

    Xu, Songwen ; Chee, Yam San

  • Author_Institution
    Peoplesoft Inc., Santa Clara, CA, USA
  • Volume
    29
  • Issue
    4
  • fYear
    2003
  • fDate
    4/1/2003 12:00:00 AM
  • Firstpage
    360
  • Lastpage
    384
  • Abstract
    A robust technology that automates the diagnosis of students´ programs is essential for programming tutoring systems. Such technology should be able to determine whether programs coded by a student are correct. If a student´s program is incorrect, the system should be able to pinpoint errors in the program as well as explain and correct the errors. Due to the difficulty of this problem, no existing system performs this task entirely satisfactorily, and this problem still hampers the development of programming tutoring systems. This paper describes a transformation-based approach to automate the diagnosis of students´ programs for programming tutoring systems. Improved control-flow analysis and data-flow analysis are used in program analysis. Automatic diagnosis of student programs is achieved by comparing the student program with a specimen program at the semantic level after both are standardized. The approach was implemented and tested on 525 real student programs for nine different programming tasks. Test results show that the method satisfies the requirements stated above. Compared to other existing approaches to automatic diagnosis of student programs, the approach developed here is more rigorous and safer in identifying student programming errors. It is also simpler to make use of in practice. Only specimen programs are needed for the diagnosis of student programs. The techniques of program standardization and program comparison developed here may also be useful for research in the fields of program understanding and software maintenance.
  • Keywords
    computer aided instruction; computer science education; program diagnostics; control-flow analysis; data-flow analysis; program comparison; program standardization; program understanding; programming tutoring systems; software maintenance; student programming error identification; student programs; transformation-based program diagnosis; Automatic control; Automatic programming; Computer Society; Computer errors; Data analysis; Error correction; Program processors; Robustness; Standardization; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2003.1191799
  • Filename
    1191799