\section{Method} \subsection{Learning rules for correct and incorrect programs} \begin{figure}[t] \centering \begin{enumerate} \item Let $P$ be the data of all student programs, each described with a set of AST patterns and classified as correct (it passes unit tests) or incorrect. \item Let method $learn\_rules(target, P, P_1, sig, acc)$ be a method that learns a set of rules for class $target$ from data $P$. The method needs to consider two additional constraints: the significance of every attribute-value pair in the condition part of the rule needs to be significant with respect to the likelihood-ratio test ($p