Recently I started a blog where I talk about programming and give some programming tutorials. One of the things I’m extremely passionate about is the benefits of using creativity in computer science / programming education. I’ve been a coding mentor in web development bootcamps for almost 2 years now and many times I wish I could’ve told all the students to download Sonic Pi and teach programming concepts that way… (but I probably would’ve got fired if I tried… )
I have the idea of writing a series of tutorials on different algorithms, starting with common sorting algorithms (bubble sort, insertion sort, selection sort, merge sort and quick sort). These tutorials explain each algorithm with Ruby code and the idea is to code an audio representation that is both educational (create something that allows you to hear what the algorithm is doing under the hood) and pleasant to listen to.
Basically, I’m trying to see if creating a musical piece using data “produced” by an algorithm could be a constructive and useful way to learn computer science fundamentals, not just for kids but also adults who are starting to learn Ruby or programming in general.
The first tutorial of this series is published on my blog, I start by exploring bubble sort and introduce basic Sonic Pi concepts so that people with no experience of Sonic Pi can follow along.
I would really appreciate having any kind of feedback from the community on this.
Do you think this is an interesting approach to computer science fundamentals?
Could it help beginners learn these kinds of concepts?
Do you have suggestions on algorithms to explore using this approach?
Here is the link to my article:
Creating an Audio Representation of Bubble Sort With Ruby and Sonic Pi
The article is also linked to a video where I play around with bubble sort using the material explained in the tutorial.
I’m not posting this for self-promotion of anything, I’m really interested to know what more experienced educators think about this approach…
Any comments or feedback is more than welcome