# Improving data structures and algorithms skills through creative coding

**URL:** <https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324>\
**Category:** Teaching\
**Created:** [September 30, 2019, 4:51pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324 "2019-09-30T16:51:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jithin](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jithin/32/122_2.png) [@Jithin](https://discourse.processing.org/u/Jithin)\
**Post date:** [September 30, 2019, 4:51pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/1 "2019-09-30T16:51:16Z")

</div>

Hello guys  
I really wish to brush up my algorithms and data structures skills in a pretty deep level. But more than using competitive coding websites, I wish to create interesting creative coding projects to excel in the same. Any ideas on how I should pursue to do this?

---

<div class="post-metadata">

**Author:** ![morisil](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/morisil/32/6166_2.png) [@morisil](https://discourse.processing.org/u/morisil)\
**Post date:** [October 1, 2019, 2:14pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/2 "2019-10-01T14:14:09Z")

</div>

Any data structures which are intended to represent spatial information can be easily visualized. For example R-Tree for geo-spatial representations.

> **[davidmoten/rtree](https://github.com/davidmoten/rtree)**
>
> Immutable in-memory R-tree and R\*-tree implementations in Java with reactive api - davidmoten/rtree

You can check different split algorithms there. One can make own Earth with many points of interest popping up on zoom in.

---

<div class="post-metadata">

**Author:** ![Jithin](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jithin/32/122_2.png) [@Jithin](https://discourse.processing.org/u/Jithin)\
**Post date:** [October 1, 2019, 2:43pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/3 "2019-10-01T14:43:53Z")

</div>

Thanks will definitely check it out

---

<div class="post-metadata">

**Author:** ![mcintyre](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/mcintyre/32/14561_2.png) [@mcintyre](https://discourse.processing.org/u/mcintyre)\
**Post date:** [October 2, 2019, 1:32am UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/4 "2019-10-02T01:32:14Z")

</div>

It might be interesting to generate a couple of short lists: one of projects you’d like to tackle and another of data structures you’d like to use. It may take a few projects, but I bet you’ll find opportunities to apply each data structure where it’s best suited.

For reference, I’m a fan of Allen Downey’s teaching style and use [Think Java](https://greenteapress.com/wp/think-java/) in my AP CS A course. His other Java book, [Think Data Structures](https://greenteapress.com/wp/think-data-structures/), was fun to work through as well–I built a search engine! Perhaps you can scaffold your project(s) similarly.

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [October 5, 2019, 3:37pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/5 "2019-10-05T15:37:44Z")

</div>

You also might want to consider creative ways to write visual Processing versions for some the many tasks at RosettaCode. These include algorithms, working with data structures, and common computational tasks. While submissions are generally focused, Processing versions are different from most languages in that some tend to include visualization output–that being the main point of there being a Processing version instead of just using Java. You can browse examples to get an idea.

[rosettacode.org/wiki/Category:Processing](http://rosettacode.org/wiki/Category:Processing)

---

<div class="post-metadata">

**Author:** ![Jithin](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jithin/32/122_2.png) [@Jithin](https://discourse.processing.org/u/Jithin)\
**Post date:** [October 5, 2019, 4:29pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/6 "2019-10-05T16:29:23Z")

</div>

Can I use p5js for creating the visualisations?

---

<div class="post-metadata">

**Author:** ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)\
**Post date:** [October 5, 2019, 4:54pm UTC](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/7 "2019-10-05T16:54:14Z")

</div>

In general, yes. On RosettaCode? Since p5.js isn’t a dialect, I think the way to do that is to provide JavaScript solution listings that use p5.js – you could check with the admins on their policies.

[https://www.google.com/search?q=p5js%20site%3Arosettacode.org](https://www.google.com/search?q=p5js%20site%3Arosettacode.org)
