Algorithms in Action is an “algorithm visualiser with stepwise refinement”, and is intended as a teaching resource for undergraduate computer science students.
The extensions that are being considered during the course of this project are the addition of the algorithms ‘union find’ and ‘2-3-4 trees'.
Functional Requirements
- The implementation and underlying logic should maintain fidelity to the client-provided pseudocode (i.e., REAL specification) to ensure integrity and educational accuracy.
- The implementation must use an intuitive and logically coherent animation. The choice of highlights and other visual elements should be logical to ensure that it is easy for the user to follow. The animation must also be precise to the given pseudocode.
- The implementation should be synchronised between the different visual representations of the algorithm and the pseudocode to ensure a unified visual experience.
- The animation and pseudocode must be aligned to assist the user in understanding the code functionality through the visualised algorithmic actions. Where there are multiple views, the highlighting must be consistent between them to enable the user to draw an immediate connection.
- The implementation should ensure a controlled variable display, where if the variable does not appear in the collapsed pseudocode, it is omitted from the visualisation. This should adjust in real-time when the user interacts with the pseudocode collapse toggle.
- This allows for a “big-to-little steps” approach, where algorithmic complexity is introduced in a gradual manner.
- The implementation should provide a way to enable or disable algorithm optimisations (i.e., for path compression within union find) for users to consider and compare algorithm performance.
Non-Functional Requirements
- The system must be reliable, both in performance (i.e., the site does not crash or freeze) and the correctness of animations based on the client provided pseudocode.
- The implementation must have usability at the forefront given its primary use as a teaching tool. The interface should be intuitive (e.g., both in colouring and the logical steps between frames) and smooth.
- The system must maintainable, adhering to the coding practices and documentation standard as outlined in Project Standards and Procedures.
- The system must be accessible - support site-wide colour scheme and text size changes.