February 2018 - August 2018

Having some experience with Kotlin from my Space Game project and some interest in seeing how various algorithms work because I was taking Algorithms and Data Structures. I wanted to try to make a Kotlin multiplatform project using Kotlin's coroutines. This project ended up being an algorithm visualizer that would run in the browser, by compiling the Kotlin to Javascript, and in the JVM.

By using coroutines and some syntax sugar from Kotlin, I was able to write these algorithms in such a way that they were almost the same code as the normal algorithms. Only multithreaded algorithms, such as the parallel merge sort and parallel quicksort, had large bits that were related to the implementation of the algorithm renderer. The end result, compiled to JavaScript is available below.