F6-ALG1-2 - Using Large-Scale Optimality Testing as a Tool for Analysis Tasks in Algorithm Courses1. Innovative Practice Full Paper
1 Universidad Rey Juan Carlos
This “innovative practice” full paper proposes large-scale optimality testing as an alternative means in algorithm courses to address different educational goals. Testing is an engineering activity which is commonly conducted in an informal way in programming and algorithm courses, as well as in a more structured way in software engineering courses. However, the number of test cases commonly used is small. Large-scale testing refers to the inclusion of large numbers of test cases. We have presented in past works how to use it as a didactic tool for greedy and other optimization algorithms. We present here its use with more sophisticated aims: as a debugging tool, to call students’ attention to problem preconditions, and to find out counterexamples of the optimality of inexact algorithms. The three innovations are illustrated by their use in the academic year 2019/20 in an algorithms course, with mixed results. We analyze the lessons learnt and outline future lines of instructional intervention.