GreedEx is aimed at the comprehension, analysis and evaluation levels of Bloom’s taxonomy. In particular, it may assist at the following tasks for a given greedy algorithm:
- Understanding the behaviour of the greedy algorithm. It includes textual information about the algorithm (problem statement and Java pseudo-code). Moreover, its comprehensive and flexible animation bar, as well as its flexibility to enter input data and select selection functions, allows visualizing and tracing the greedy algorithm.
- Analyzing the effect of different selection functions on the greedy algorithm. It is supported by its visualization and animation facilities, and by the outcomes resulting from applying each selection function on the same or different input data.
- Evaluating the optimality of different selection functions for the greedy algorithm. In a summary table, it summarizes the effect of different strategies for different input data.
GreedEx can be used in algorithm courses in several ways. We highlight the following ones:
- Demonstrations at the classroom. The instructor may use GreedEx to illustrate or experiment with many topics of greedy algorithms: problem statement, algorithm pseudo-code, selection functions, and results of the algorithm. GreedEx also gives the opportunity to introduce or reinforce concepts related to the scientific method: hypothesis, experiment planning, refutation, counter-example, experimental evidence, and mathematical proof.
- Self-study. The student may use GreedEx to study the problem statement and a code template of a greedy algorithm that solves it. Most importantly, she can use the remaining facilities to experiment with different selection functions and choose the optimal ones.
- Documentation. GreedEx allows exporting the results of experimentation as either an individual visualization or a set of visualizations. They are stored in standard file formats that can be later imported in documents, e.g. text notes or lab reports.
OptimEx can be used similarly to GreedEx, except that it only supports the analysis and evaluation levels of Bloom’s taxonomy.
Finally, both systems support multiple natural languages (currently English and Spanish) and exportation of tables.