Many people assume that software developers (or call us: software engineers, programmers, coders, etc.) are paid to write code. While writing code is certainly one of the tasks we do, it is not really the part that adds the most value.
What adds the most value is solving problems. We solve these problems in the language of computer code. If we are hired to write a company's employee database we are actually being paid to figure out all of the needs they have involving keeping track of employees and to improve that situation through solving the related problems and implementing it in code.
An algorithm is a formal set of instructions for solving a problem.
You've used them all your life:
- Directions to your friend's house.
- Favorite recipe for cookies.
- Long division.
- Swinging a bat and hitting a ball.
An algorithm for getting to your friend's house might look like:
- Head north on Main Street
- Turn left onto highway 42
- Take the highway for three exits
- Exit on Parker Street
- Turn right on Palm Ave
- Look for the fourth house on the right
The algorithm for a more complex task such as swinging a bat and hitting a ball would be significantly longer.
We will be practicing the creation of algorithms through the entire class. To get yourself started we suggest a few preparation steps.
First, watch this video where a father works with his two children to create an algorithm for making peanut butter and jelly sandwiches. Could you do better? (feel free to substitute any type of sandwich) Perhaps get a friend or family member to review your attempts! The more strict they are, like the father in the video, the better.
Next, we recommend a game to play. This game, while styled for young ones, is an amazing preparation for thinking in small steps and in an algorithmic way. The app does cost a few dollars. As a student, feel free to contact SDG for some coupon codes.
The game is Light Bot and is available for the iPhone, and the Android phone.
Play as many levels as you can. Each level and puzzle is practicing, though fun, another aspect of algorithmic thinking. If you have young people in your life, challenge them to play along with you.