This book provides a comprehensive introduction to real-world applications based on abstract algebra. In each chapter, theoretical study is immediately complemented with the use of software programs Maple and MATLAB for the solution of problems from the fields of cryptography, coding theory and combinatorics. Incorporation of these programs makes it possible to eliminate extensive computations and thus further illuminate particular topics. The book is divided into twelve chapters supplemented with two appendices containing the user-written Maple and MATLAB functions used in previous parts, a bibliography, hints or answers for selected exercises, and an index. The book also contains a CD-ROM with all the programs and codes that are used in the text.

The first chapter provides a comprehensive and concise review of all the prerequisite advanced mathematics necessary for understanding the book. The second chapter is devoted to block designs. The next three chapters deal with coding theory, namely with error correcting codes, including Hadamard codes, Reed-Muller codes, Hamming codes, BCH codes and Reed-Solomon codes. Chapters 6 through 10 contain a presentation of interesting topics from cryptography. Specific parts are devoted to algebraic cryptography, including shift, affine and Hill ciphers, Vigenère ciphers, the popular RSA cryptosystem and related topics, the ElGamal cryptosystem and the incorporation of elliptic curves into it, and the Advanced Encryption Standard. Chapter 11 deals with Pólya counting techniques, including Burnside's and Pólya's theorems. The last chapter shows the application of Pólya theory to the problem of counting undirected graphs. The book can be directly used in a senior-level course on the applications of algebra. It represents a beneficial tool for students as well as researchers in the areas of mathematics and computer science.