# Data Structures for non developers, GSOC 2020

**URL:** <https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161>\
**Category:** Summer of Code\
**Created:** [February 26, 2020, 9:17pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161 "2020-02-26T21:17:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![phe0](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/phe0/32/8529_2.png) [@phe0](https://discourse.processing.org/u/phe0)\
**Post date:** [February 26, 2020, 9:17pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/1 "2020-02-26T21:17:25Z")

</div>

Hello,  
I’m Pedro, an software engineer student from Brazil, I’m also really in art. I’ve been thinking of of developing an interactive guide to Data Structures using p5.js. The objective is to teach data structures in the simplest way possible so that everyone, developer or not, could learn how to use them. My idea was to explain what is each data structure, using an interactive canvas, so that it becomes easy to visualize what’s the difference between them and show examples of how each data structure could be used in your sketch.  
I would really like to know your thoughts about this project.

- Do you think this would help people?
- Do you think there would be better ways of achieving this?
- Do you think it is a good project for GSOC?
- Any other thing you would like to add?

---

<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:** [February 29, 2020, 5:08am UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/2 "2020-02-29T05:08:21Z")

</div>

Thanks for sharing this idea!

What kinds of data structures do you have in mind, specifically, and would there be a sequence / priority?

Given that p5.js is JavaScript, would you be focusing on “JavaScript data structures”, or trying to teach a simulation of general data structure principles in JavaScript? I ask because JavaScript has some pretty specific limitations on primitive data structures.

Would it be based on sequences / example sets that already exists in JavaScript, and porting them into interactive p5.js sketches? e.g.

> **[trekhleb/javascript-algorithms](https://github.com/trekhleb/javascript-algorithms)**
>
> 📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings - trekhleb/javascript-algorithms

---

<div class="post-metadata">

**Author:** ![phe0](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/phe0/32/8529_2.png) [@phe0](https://discourse.processing.org/u/phe0)\
**Post date:** [February 29, 2020, 5:56pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/3 "2020-02-29T17:56:36Z")

</div>

I was thinking about focusing on introducing general data structure principles, focusing on how to use them and why would you use it by making a really begginer’s introduction to it. I was thinking about starting with, Arrays, Linked Lists, Doubly Linked Lists, Stacks, Queues and Priority Queues since they are simpler.  
I was thinking that each one could have a page that explains their principles and have a interactive p5.js sketch, to make it easy to visualize how they work and then having at least one example with an explanation and a sketch of an application of that data structure.

---

<div class="post-metadata">

**Author:** ![saberkhan](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/saberkhan/32/1541_2.png) [@saberkhan](https://discourse.processing.org/u/saberkhan)\
**Post date:** [March 9, 2020, 1:13pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/4 "2020-03-09T13:13:37Z")

</div>

Hi @phe0 I wonder in the Dynamic Learning, an older GSoC, project might help with this project idea. [https://github.com/processing/p5.js-website/blob/master/contributor\_docs/i18n\_contribution.md](https://github.com/processing/p5.js-website/blob/master/contributor_docs/i18n_contribution.md)

---

<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:** [March 16, 2020, 1:50pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/5 "2020-03-16T13:50:22Z")

</div>

I think this could be a very interesting project. @Jithin, the lead developer of Dynamic Learning, was also thinking about data structures and creative coding recently (see below).

> [@Improving data structures and algorithms skills through creative coding](https://discourse.processing.org/t/improving-data-structures-and-algorithms-skills-through-creative-coding/14324/4):
>
> 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 proj…

---

<div class="post-metadata">

**Author:** ![phe0](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/phe0/32/8529_2.png) [@phe0](https://discourse.processing.org/u/phe0)\
**Post date:** [March 16, 2020, 3:53pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/6 "2020-03-16T15:53:43Z")

</div>

sorry, what project? This link sends me to the internationalization documentation

---

<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:** [March 16, 2020, 4:27pm UTC](https://discourse.processing.org/t/data-structures-for-non-developers-gsoc-2020/18161/7 "2020-03-16T16:27:38Z")

</div>

> **[Visualizing STEM Education with Dynamic Learning](https://medium.com/processing-foundation/visualizing-stem-education-with-dynamic-learning-4106748c6fcd)**
>
> by Ashneel Das, Google Summer of Code 2019
