The automatic correction of programming practices facilitates learning
and evaluation in subjects where programming skills are taught.
The static analysis is a plausible option to this end.
This technique analyzes the source code implemented by students to
check whether the code satisfies some conditions in each specific
practice.
CAC++ is a library implementing a set of verifications for the static
analysis of programming practices in C++, mainly related to the
object-oriented paradigm. By using this library, the teacher can
use the verifications included in it in a simple way, since the
library abstracts away implementation details of these verifications.
The library has been developed with the aim to offer an intuitive
but flexible method for its practical use. The teacher can use
this library to generate a static analysis program tailored to
each practice. Instead of executing all the verifications in
each practice, the teacher can personalize in which cases each
verification is applied.
Any teacher can also add new verifications to the library!
Please, if you use CAC++, cite it as:
Pedro Delgado-Pérez & Inmaculada Medina-Bulo
Customizable and scalable automated assessment of C/C++ programming assignments
Computer Applications in Engineering Education, 28(6), pp. 1449-1466, 2020.
Sometimes, checking that students comply with the established
conditions in the practice is not possible by simply runnig a set
of test cases. Without the aid of technology, the teacher has to
manually review the code of all the students to check that their
solutions meet those conditions.
Implementing static analysis programs for the practices can help
detect when a student is using (or not using) a particular feature
of the language. Therefore, CAC++ can save the teacher time and effort. Likewise, CAC++ can provide useful feedback to the student.
Whether it is convenient to provide the programs to the students
to help them complete the practice or use these programs for evaluation
purposes, we leave it to the teacher to decide!