CAC++ Library

What is CAC++?

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.

doi: 10.1002/cae.22317


Why should you use CAC++?

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!