A description of the specific steps needed to solve a particular problem in an unambiguous way, expressed in an abstract form.
Algorithms are descriptions of the computations steps needed to solve a problem. They have well defined inputs and specific outputs that meet the given characteristics. Algorithms can be expressed in flowcharts or pseudo-code. To be useful to a computer, these must be translated into a specific programming language.
Questions with the algorithm tag should be programming language independent, though they may use a specific language as an example.
More information on algorithms can be found on the wikipedia page: http://en.wikipedia.org/wiki/Algorithm.