@@ -5,39 +5,43 @@ Action](https://dev-aia.vercel.app/mainmenu) algorithm animation system
55in semester 2, 2025,
66with the clients [ Lee Naish] ( https://lee-naish.github.io/ ) and Linda
77Stern. AIA was developed for the purposes of teaching computer science
8- algorithms. It features animation, pseudocode, and textual explanations ,
8+ algorithms. It features textual explanations, animation and pseudocode ,
99run in coordinated fashion. A key feature of AIA, not found in other
10- algorithm animations, is that students can view an algorithm at varying
10+ algorithm animations, is that users can view an algorithm at varying
1111levels of detail. Starting with a high level pseudocode description
1212of the algorithm, with accompanying high level animation and textual
13- explanation , students can expand sections of the pseudocode to expose more
14- detail. Animation and explanation are controlled in coordinate fashion,
13+ explanations , students can expand sections of the pseudocode to expose more
14+ detail. Animation and explanations are controlled in coordinate fashion,
1515becoming correspondingly more detailed as the pseudocode is expanded.
1616
1717The current implementation is primarily written in JavaScript, using
1818the popular Node.js/React framework. It has been coded primarily
1919by students over several years and more recently Lee Naish has
2020done some coding also. It is open-source with the code in a [ github
2121repository] ( https://github.com/algorithms-in-action/algorithms-in-action.github.io ) .
22- The following projects aim to enhance and extend AIA. Students
22+ The following projects aim to enhance and extend AIA. All are open-ended:
23+ depending on progress through the semester they may be extended. Students
2324participating in these projects will be contributing to a good open-source
2425teaching and learning tool while getting valuable software engineering
2526experience. We have had excellent feedback from previous groups who have
2627made contributions to AIA. As clients, we need to have good communication
27- with groups. In developing algorithm animations we don't always have a
28+ with all groups. In developing algorithm animations we don't always have a
2829precise idea of what will work best at the outset - often it is good to
2930see a prototype and then give feedback on how it can be improved. There
3031are also some aspects we want control over, such as the details of the
31- pseudocode. Finally, we want multiple projects to be merged into a single
32+ pseudocode, so some changes must only be done with our explicit consent.
33+ Finally, we want multiple projects to be merged into a single
3234AIA version by the end of semester, so the way things are coordinated
33- in the github repository throughout the semester is important.
35+ in the AIA github repository throughout the semester is important.
3436
35- ## 1. Global Issues
37+ ## Project 1: Global Issues
3638
3739This project addresses several desirable enhancements to AIA that affect
3840multiple algorithms. Some are related to making future development of the
3941code easier, for example, adding new algorithms modules. Others concern
40- the function of AIA.
42+ the function of AIA. As well as writing the code for these enhancements,
43+ they must be documented in the AIA Wiki for the benefit of other
44+ programmers (including other teams this semester).
4145
4246### Simplifying addition of new algorithms
4347
@@ -102,11 +106,37 @@ URLS, similarly for the step of the algorithm execution and expansion
102106of pseudocode. It would be desirable to extend the URL mechanism to
103107specify more information.
104108
105- ## 2. Binary search tree variants
109+ ## Project 2: Binary search tree variants
106110
107- XXX
111+ Currently AIA has an animation of an iterative coding of binary search
112+ trees and a recursive coding of AVL trees (a form of self-balancing
113+ binary search tree). We would like to extend the coverage of BSTs in AIA.
108114
109- ## 3. Linked list merge sort
115+ ### Improving the AVL tree animation
116+
117+ The current AVL tree animation is good (it was devloped by a student
118+ team in 2024 and has been refined somewhat since) but could be improved
119+ further. Specifically, we think the way certain components of the tree
120+ are highlighted is worth revisiting and the way the animation helps
121+ users understand the recursion could be improved. It is likely some
122+ prototyping will be required in order to get the best outcomes.
123+
124+ ### Recursive BST animation
125+
126+ We would like a new animation BSTs that uses a recursive coding. The
127+ relationship with AVL trees should be emphasised - the AVL tree insertion
128+ algorithm is essentially recursive BST insertion code with a couple of
129+ steps added at the end. The look of the two animations (including the
130+ pseudocode) should be as similar as possible. Also, a good visualisation
131+ of recursion for a simple algorithm would be beneficial.
132+
133+ ### Iterative BST animation
134+
135+ The current iterative BST animation may also require some minor
136+ modifications to make it look as similar as possible to the other
137+ BST/AVL algorithms.
138+
139+ ## Project 3: Linked list merge sort
110140
111141Currently AIA has algorithm animations that visualise arrays, various
112142forms of trees and graphs but none that visualise linked lists. This
@@ -158,7 +188,7 @@ to the right again.
158188
159189
160190
161- ## 4. Convex Hull
191+ ## Project 4: Convex Hull
162192
163193Currently AIA has no geometric algorithm animations. This project will
164194add an animation of a two dimensional convex hull algorithm animation (or
@@ -185,6 +215,11 @@ movement between two different edge positions). If this could be
185215implemented it would be beneficial and could also be retro-fitted to
186216other algorithms.
187217
188- ## 4. Simple sorting algorithms
218+ ## Project 5: Simple sorting algorithms
219+
220+ AIA has several sorting algorithm animations but is missing animations
221+ for the simpler sorting algorithms. We would like to see new animations
222+ for both insertion sort and selection sort. Additionally, if there are
223+ some ways in which algorithmic complexity could be illustrated better
224+ to AIA users, that would be of great benefit.
189225
190- XXX (lowest priority - CH better???)
0 commit comments