Introduction to modern coding theory