Introducing the reader to the basics of coding theory, this text covers practical and theoretical computing and problem-solving. Number theory and combinatorics are treated from scratch and coding theory is discussed without the use of group theory or finite fields.