An algorithm is a sequence of instructions or a set of rules to get something done.
You’ll favour a particular route home from school – you can think of it as an algorithm. There are plenty of alternative routes home, and there’ll be an algorithm to describe each one of those too. There are even algorithms for deciding the shortest or fastest route, such as form the basis of satnav systems.
Algorithms are written for a human, rather than for a computer to understand. In this way, algorithms differ from programs.
Image created by @RobbotResources
Computer scientists strive for algorithms which solve problems in the most-effective and efficient ways – getting the most-accurate results, in the quickest time, with the fewest resources (memory or time).
Search engines such as Bing or Google use algorithms to order a list of search results so that, more often than not, the result we want is at the top of the front page of results. Your Facebook newsfeed is derived from your friends’ status updates and other activity, but it only shows that activity which the EdgeRank algorithm assesses to be of most interest to you. Your recommendations from Amazon, Netflix and eBay are algorithmically generated, based in part on what other people are interested in.
Computer Science for All - gr3-5 Blue - student workbook
Computer Science for All in SF - great lessons for K-6! Unplugged, BeeBot, ScratchJr, Scratch, Makey Makey
Fort Building Time Book + Build a fort at home, inside or outside, and talk about what steps need to happen in what order. Is some part of the design not working? Debug and fix it! Or explore seasons with Scratch Jr.
Hello Ruby book, lessons and videos.
Sequential Stories: Go Away Big Green Monster, Tickle Monster, Dog’s Colorful Day, or Lola at the Library with props
Tap the Magic Tree Book + Pick your favorite song and create a dance to match the rhythm. Teach the order of the steps to others. Think about when you want to start moving and if you want to repeat steps.
Dice Race unplugged - Lesson Video, See Lesson in Action, Activity Answer Key, Assessment Answer Key
My Robotic Friends - Lesson Video, Teacher Video, Teacher Prep Guide
Paper Planes - Lesson Video, See Lesson in Action, Teacher Video, Activity Answer Key
Tangrams.- Lesson Video, Teacher Video, Assessment Answer Key
The Bug Dance with BeeBots
Incredibox - record your own beat music mix - Examples - one, two
Song Maker, an experiment in Chrome Music Lab, is a simple way for anyone to make and share a song.
It is worth starting with problems rather than solutions to encourage algorithmic thinking: set students the challenge of finding an algorithm that can find a short path through a graph or search a list or sort some numbers or test if a number is prime. Challenge them to find better algorithms to do this.
There’s much scope here for using ‘unplugged’ activities. You could play the ‘guess my number’ game as a class, trying to find a winning strategy or ask students to write instructions for finding a book in the library or for sorting out a set of masses. There are some great ideas online from CAS Barefoot, CS4FN and CS Unplugged.
Work with Cozmo - a little robot with AI, can also be coded with Python.
Check out Cue - an incredibly clever robot with a witty attitude that’s full of interactive surprises!
LEGO® MINDSTORMS® EV3 gives students the power to create and command their own robotic LEGO creatures, vehicles, machines and inventions!
There’s much scope for algorithmic thinking in games and puzzles – can students work out the set of rules for playing an unbeatable game of noughts and crosses, Nim or Mastermind, or completing a Knights’s Tour of a (possibly small) chess board?
Get students to think about when there are formal sets of rules or sequences of steps in other subject areas or in school life. In Home Ec, recipes have much in common with algorithms. In science, experimental methods do too. Challenge them to think of better algorithms for the same tasks.
Don’t be afraid to get students implementing their algorithms as programs: it is the thinking that we are focussing on here, but there is much to be said for linking algorithms and coding together.