Codev
Codev is a tool designed for help out students learning a programming language and algorithms. In Codev, teachers can prepare a list of exercises, each consisting of:
some descriptive information (exercise statement, auxiliary figures, etc.);
an upper bound on the expected time complexity of the algorithm;
a base code used for students to download and "fill in the gaps" of the code;
a set of input data and corresponding output data that should be used as a validation of the code to assess its correctness.
The Codev available for download is a client tool in which the students can:
download the available exercises;
open an external editor with the base code provided for each exercise to fill it in;
unit test the final code using the provided input instances, or using their own input instances;
assess the final code in terms of both correctness and time complexity requirements.
The workflow in Codev is as follows:
Teachers prepare a list of exercises, including programs that work as "key answers" for the exercises;
All the data for the new exercises are uploaded to Codev's file repository;
Students may download the new exercises from their local Codev interface. The "key-answer" code produced by the teacher is also downloaded, but some parts of the code are removed. Teachers can configure which portions of the program will be removed by Codev before downloading, using special tags as code comments. Students are expected to fill in the gaps;
Students may open the code editor of their choice, can issue the compilation of the code and run the executable file all from inside Codev, making the integration seamless;
Once students believe their code is done, they may issue the assessment feature, which will verify their code both in terms of correctness and time complexity requirements.
Checkout this video to see how to install and use Codev (in Portuguese):
List of exercises (ready-to-use in Codev):
After installing Codev, you have to choose one of the followings exercise databases to connect to. Just change the existing Settings.txt located in Codev folder and change SERVER_URL setting for the desired one:
Introduction to Programming / Computing Foundations (in C/C++/Python)
SERVER_URL = https://raw.githubusercontent.com/fabiano-ol/codev_fundamentos/masterData Structures (in C/C++) [DEFAULT]
SERVER_URL = https://raw.githubusercontent.com/fabiano-ol/codev/masterRecursion, Divide and Conquer, Backtracking, Dynamic Programming, Greedy algorithms (in C/C++)
SERVER_URL = https://raw.githubusercontent.com/fabiano-ol/codev_construcaoalg/masterGraph algorithms (in Python)
SERVER_URL = https://raw.githubusercontent.com/fabiano-ol/codev_algoritmosgrafos/master