Applied Algebra, Algebraic Algorithms And Error-correcting Codes