This is part of a three-part series about Computational Thinking:
Another building block of Computational Thinking is Algorithm / Algorithm Design. When we’re developing computer software, it consists of a lot of algorithms. An algorithm could be to determine if a given password is secure or fetching the latest Tweets within a Twitter Client.
Algorithms can seem complex, abstract and like a large mountain to climb. The good news however is, that you can learn how to build them. In fact, you’re probably already doing it without knowing!
When you go to the supermarket, you might have a certain way how you go through the aisles: First produce, then baking goods and at last drinks. This is already an algorithm. You established a process that helps you to accomplish a task. That’s what algorithms are for!
Now, in Computer Programming, we also have algorithms that work with data and are implemented in Code. These algorithms could look like: “Give me all people from this dataset where the last name starts with ‘S'”, or “Does the password include special characters, as well as numbers?”
There are different ways of learning how to design an algorithm.
Pen + Paper
I learned to design an algorithm using Pen and Paper in school. Before I was allowed to write a single line of code on the computer, I needed to design my algorithm using NSD’s. It may look antiquated and strange but was an effective tool to translate a vague idea into concrete steps. To test if an algorithm would work, I would play it through on another piece of paper with another student.
Games / Human Resource Machine
Not too long ago, I came across this fantastic game from the Tomorrow Corporation. It’s called the Human Resource machine and it teaches you low-level programming and Algorithm Design in a playful way. The assignments become more difficult over time, teaching you algorithm design from another perspective. If you’re wondering if this is for you, even if you haven’t written any code yet, don’t worry. It’ll explain everything you need to know!
If you haven’t heard about Khan Academy before, it’s an American non-profit Organization that focuses on online learning and has an excellent programming curriculum. Part of this curriculum is also a chapter on Algorithms.
Check it out here.
How did you learn to design algorithms? Comment below!