Automatic question generation and the assessment of
procedural knowledge is still a challenging research topic. This
article focuses on the case of it, the techniques of parsing grammars
for compiler construction. There are two well-known techniques for
parsing: top-down parsing with LL(1) and bottom-up with LR(1).
Learning these techniques and learning to design grammars that
can be parsed with these techniques requires practice. This article
describes an application that covers all the tasks needed to automa-
tize the learning and assessment process: 1) automatically generate
context-free languages and grammars of different complexity; 2)
pose different types of questions to the student with an appropriate
response interface; 3) automatically correct the student answer,
including grammar design for a given language; and 4) provide
feedback on errors. The application has been implemented as a
plug-in of the SIETTE assessment system that, in addition, can
provide adaptive behavior for question selection. It has been suc-
cessfully used by more than a thousand students for formative and
summative assessment.