[abst]
We propose a tool that generates exercises of program error correction,
which are suitable for developing debugging and code reading skills
in programming education,
and answer checker programs.
We define the processes of error injection as code transformation rules,
and analyze types of errors from a view of rewriting operations.
If learners can edit only codes which are not correct, it is easy for them to find errors.
On the other hand, if they can edit any codes freely, it is difficult
for grading programs to check all possible answers.
We have analyzed types of errors from a view of how to correct them and
adopted a strategy to restrict editable points and possible answers from the educational view.
From a correct program, program transformation rules to inject errors, and rules to specify dummy editable points,
our tool generates exercises as HTML files and answer checkers as CGI programs.
CGI programs check correctness of answers by comparing tokens.
Our tool can generate exercises that widely cover the syntax and semantics of the programming language
such as loops, arrays, recursive functions, pointers, and structures, and some algorithms such as sorting and searching.