TSW: A web-based automatic correction system for C programming exercises

0Citations
Citations of this article
13Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We present the TSW system (TestSystem Web), a web-based environment currently developed at the Rome 1 University, for the delivery of C programming exercises and their automatic correction. The core of the correction system automatically tests the student's programs by applying unit-tests and/or by comparing the behaviour of the student's code to a reference implementation. Care is taken to avoid error propagation from a function to other functionally depending procedures by redirecting the failing calls to the corresponding reference implementation. The system "instruments" the student's code by using a code analyser and rewriter to handle instruction tracing and function calls redirection. The rewriter can be easily extended to develop other analysis instruments. As an example, we have developed: a code coverage tool that reports how much of the student's code has been visited during the test, a cyclomatic complexity evaluator to compare the number of different logic paths in the code, a tracker for stack depth usage to check for proper implementation of recursive functions, a function/loop execution counter for the evaluation of the execution complexity. Additional care is taken to capture disruptive errors that would abort the program: "segmentation faults" caused by wrong pointer dereferentiation, and time-out caused by run-away processes. With these tools, the teacher can write rich unit tests that can either compare the behaviour of the function under analysis with a reference implementation (e.g. by generating random input and comparing the results), or by submitting well-crafted special inputs to elicit special cases or by comparing the complexity and/or stack depth counters. Each test applied will then explain to the student what was the problem found. TSW is the core component of a future larger social knowledge project, in which students will cooperatively/ competitively participate to the definition and test of each-other's programs, sharing ideas and learning from each other. © 2009 Springer Berlin Heidelberg.

Cite

CITATION STYLE

APA

Longo, P., Sterbini, A., & Temperini, M. (2009). TSW: A web-based automatic correction system for C programming exercises. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5736 LNAI, pp. 13–21). https://doi.org/10.1007/978-3-642-04754-1_2

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free