Combinatorial, Algebraic and Algorithmic Aspects of Coding Theory