An algorithm is a set of directives that together lead to the solution of a problem. The directives may be ordered or unordered, or composed of subsets of ordered and unordered directives. The order of the directives only refers to the actions mandated by the directives and not to the residences of the materials or information needed to carry-out the actions. In the case of unordered directives, the solution of the problem is not dependent on the order of the actions mandated by the directives.
The Language used to express an algorithm; the work expressed by the actions mandated by the directives; the containership and identity of the materials, data or information used to carry-out the actions; are expressions of Pj Problems. Consequently, algorithms are expressions of Pj Problems.