Skip to content

Commit b487d93

Browse files
committed
Projects now complete draft
1 parent 331d8c1 commit b487d93

File tree

1 file changed

+51
-16
lines changed

1 file changed

+51
-16
lines changed

projects.md

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,43 @@ Action](https://dev-aia.vercel.app/mainmenu) algorithm animation system
55
in semester 2, 2025,
66
with the clients [Lee Naish](https://lee-naish.github.io/) and Linda
77
Stern. 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,
99
run 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
1111
levels of detail. Starting with a high level pseudocode description
1212
of 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,
1515
becoming correspondingly more detailed as the pseudocode is expanded.
1616

1717
The current implementation is primarily written in JavaScript, using
1818
the popular Node.js/React framework. It has been coded primarily
1919
by students over several years and more recently Lee Naish has
2020
done some coding also. It is open-source with the code in a [github
2121
repository](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
2324
participating in these projects will be contributing to a good open-source
2425
teaching and learning tool while getting valuable software engineering
2526
experience. We have had excellent feedback from previous groups who have
2627
made 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
2829
precise idea of what will work best at the outset - often it is good to
2930
see a prototype and then give feedback on how it can be improved. There
3031
are 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
3234
AIA 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

3739
This project addresses several desirable enhancements to AIA that affect
3840
multiple algorithms. Some are related to making future development of the
3941
code 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
102106
of pseudocode. It would be desirable to extend the URL mechanism to
103107
specify 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

111141
Currently AIA has algorithm animations that visualise arrays, various
112142
forms 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

163193
Currently AIA has no geometric algorithm animations. This project will
164194
add 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
185215
implemented it would be beneficial and could also be retro-fitted to
186216
other 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

Comments
 (0)