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.
|