“…It has also been applied to imperative programming languages such as Pascal [1], [14], [26] and C [9]. The source-to-specification approach is consistent with the research on program understanding [3], [23]. An essential step in the approach is to understand the student program by matching it with code templates that are attached with corresponding specifications [14], [17], or matching it with specifications called goal structures [1], [2], schemata [7], plans [9], assertions [24], or processes [26].…”