An algorithm is a set of instructions that indicate a method for accomplishing a task. If followed correctly, an algorithm guarantees successful completion even without the use of any intelligence. The term algorithm is derived from the name al-Khowarizmi, a ninth century Arabian mathematician who is credited with discovering algebra. With the advent of computers, which are particularly adept at utilizing algorithms, the creation of new and faster algorithms has become an important consideration in the study of theoretical computer science.
Algorithms can be written to solve any conceivable problem. For example, an algorithm can be developed for tying a shoe, making cookies, or determining the area of a circle. In an algorithm for tying a shoe, each step, from obtaining a shoe with a lace to releasing the string after it is tied, is spelled out. The individual steps are written in such a way that no judgment is ever required to successfully carry them out. The length of time required to complete an algorithm is directly dependent on the number of steps involved. The more steps, the longer it takes to complete. Consequently, algorithms are classified as fast or slow depending on the speed at which they allow a task to be completed. Typically, fast algorithms are usable while slow algorithms are unusable.