1.5 Math for a Digital Age
1.5.10
Introduction to algorithms

An algorithm is a systematic description or method of exactly how to carry out a series of steps to complete a certain task. Computers use algorithms in practically every function they perform. Software is essentially many algorithms pieced together into a huge set of "code". Learning computer programming means learning how to create and implement algorithms. Many algorithms are prepackaged, so they can be used in programs, saving programmers from having to start from the beginning every time a program is written. The idea, especially with "object-oriented" programming, is to use existing code to build more sophisticated programs or code.

One example already seen is the Euclidean algorithm. This is essentially the algorithm that is used to do long division (when dividing two numbers). Other algorithm techniques are the number conversion techniques described previously. The reality is that vacuuming the carpet or sweeping the garage could both be algorithms if there is a systematic way that these tasks are carried out each time. The term does not have to be used rigidly.

To get an idea of the vast number of algorithms available for use in computing, check the site http://www.nist.gov/dads/. Most of these algorithms are very complex, but this site gives an overview of which algorithms are available and for what they are used.

A popular algorithm used by networking devices on the Internet is the Dijkstra algorithm. This algorithm is used to find the shortest path between a specific networking device and all other devices in its "routing domain". It uses bandwidth as a means of measuring the shortest path.

Another common type of algorithm is an encryption algorithm. These algorithms are used to prevent hackers from viewing data as it passes through the Internet. One example of such an algorithm is used by 3DES (pronounced "triple dez"), an encryption standard used to secure connections between networking devices and hosts. Further details about 3DES are outside the scope of this course.

To summarize, algorithms are step-by-step procedures that perform a specific task. Computers use algorithms to speed up and simplify procedures. Most of the algorithms used by computers are fairly complex and require some background in computer science to understand.

Web Links
Dictionary of Algorithms and Data Structures
http://www.nist.gov/dads/