Project GI - algorithms-in-action/algorithms-in-action.github.io GitHub Wiki

Project 1: Global Issues - more details/updates

The "Simplifying addition of new algorithms" has now been partly done and is no longer urgent, but must be completed at some point. A new task concerning error messages has been added.

Simplifying addition of new algorithms

This was to be the first task to tackle. It need not be but it's not a bad place to start.

Lists of algorithms in the code

Once in AIA there was a single master list of algorithms that had all the required information. Sadly, some modifications to the system resulted in four separate lists, each with slightly different information etc, and each of which needs to be edited for each new algorithm. The single list design is what we want; the other lists should be generated from the master list. Algorithms are listed in algorithms/index.js (in the src/ directory - this probably should be the master list) plus components/AlgorithmMenu.js, components/mainmenu/index.js, components/mainmenu/GraphAlgorithms.js, components/mainmenu/SortingAlgorithms.js, etc). There is a "noDeploy" option in src/algorithms/index.js - this should be used to prevent an algorithm from appearing in the various menus (it can still be accessed if you know the right URL to use).

Reducing tedium in adding new algorithms

This has largely been done (see addNewAlgorithm.js) but may need some revisions if the information in the algorithm list in src/algorithms/index.js changes. There are also other possible enhancements, such as eliminating to need to use an editor for that file.

Main page algorithm menus

The main AIA page has a list of algorithms, divided into categories, but depending on the window size and font size, some may not be visible. This must be fixed. Also, due to the way the formatting is done, adding new algorithms can be a nightmare (the code explicitly moves things with hard coded X and Y coordinate offsets). Some design work needs to be done (in consultation with clients) to decide how to list the algorithms, broken down into various categories. Finally, there is a search function that relies on algorithm names but ideally it should support keywords associated with each algorithm.

Colors

The way colors have been implemented in AIA has changed over time to improve flexibility (eg, color choice) and consistency (eg, between colors of array elements, graph/tree nodes and edges). Some primitives have been added for flexible coloring of arrays and similar primitives should be implemented for graphs. Retro-fitting the more flexible primitives to existing animation code and deleting some legacy code is also desirable.

A second issue is the choice of different color palettes supported in AIA. The intention is for AIA to be accessible to those with different color perception. Some of the more recent color choices should be re-visited with this in mind. Also, there are some uses of color in AIA that don't vary when different color palettes are selected; ideally this should not be the case.

Specialised URLs

AIA supports specialised URLS to allowing links to a particular algorithm with particular input. However, not all options etc can be specified with URLS, similarly for the step of the algorithm execution and expansion of pseudocode. It would be desirable to extend the URL mechanism to specify more information.

Error messages

Currently in AIA, error messages (concerning invalid input) are often invisible without scrolling. They should be positioned better, or a pop-up window could be used. The text of many error messages could be improved also.