Algorithm
A finite sequence of operations that carry out a task or procedure
Unambiguous
Every possible path of the algorithm is clearly defined and this cannot be deviated from
Deterministic
No chance or randomness involved
Finite
Must end at some point
Heuristic algorithm
Usually finds a good solution
Solution not always optimal
Examples of heuristic algorithms
Bin packing: first fit, first fit decreasing