A magazine where the digital world meets the real world.
On the web
- Home
- Browse by date
- Browse by topic
- Enter the maze
- Follow our blog
- Follow us on Twitter
- Resources for teachers
- Subscribe
In print
What is cs4fn?
- About us
- Contact us
- Partners
- Privacy and cookies
- Copyright and contributions
- Links to other fun sites
- Complete our questionnaire, give us feedback
Search:
The FUNdamentals of Algorithms
The study of algorithms has an ancient pedigree. The study of computers as we know them may date back a hundred years or so. The study of algorithms dates back a millennia or more. In fact the word algorithm is derived from the name of the great Islamic Mathematician, Astronomer, Geographer and all-round polymath, Muhammad ibn Musa al-Khwarizmi, who was a member of Dar Al-Hikmah (the House of Knowledge) in Baghdad in the 800s. Algorithms are just precise ways of achieving some task. Follow the algorithm and job is done. It may be a computer following the algorithm but it doesn't have to be. For most of history it has been people doing so. Al-Khwarizmi was interested in algorithms for solving algebraic equations and on calculation using our "modern" Hindu-Arabic positional number system which he introduced to the western world. Back in the 9th century Islam, having ways to do things such as calculating shares in inheritance was an important requirement of the Qur'an. It was vital to be sure you had a way of calculating such things that was guaranteed to get the right answer. That is what the study of algorithms is about, though algorithms can be devised to do much more than simple algebra. Every computer gadget you ever used is following algorithms to do whatever it does.
Efficiency Drive
Efficiency is a big issue in computer science. The challenge is not just about coming up with an algorithm that works. The challenge is to come up with an algorithm that is "efficient". Being efficient can mean lots of different things. A factory could be hailed as "efficient" if it uses as few resources (people, raw material, money) as possible - producing the goods with the bare minimum. Alternatively, it could be "efficient" meaning producing the goods as fast as possible. That might or might not use more resources to achieve.
Algorithms can similarly be efficient in different ways. They can be fast or slow. They can store as little data as possible or need vast resources. There can be many different algorithms to do the same thing. Which you choose depends on what properties of the algorithm is most important to you at the time.
From Algorithms to...Air Guitar
Computer Scientists both invent algorithms and study their properties. Algorithms have been devised to beat humans at games, fly planes, recognize faces, process DNA, send money around the world, crack codes, navigate you home, control your washing machine, detect your movements, write down the words you speak, paint works of art, write jokes, control nuclear power plants ... You name it. Any individual program, in fact, will involve a whole range of algorithms some simple, some complex. What kind of algorithm do you think might have been needed to develop the Virtual Air Guitar?