|This is a survey, accessible to junior/senior undergraduate students and containing many examples, solved exercises, and sets of problems, of some parts of abstract algebra that are of use in many other areas of discrete mathematics. Three major themes are particularly relevant to computer science, Boolean algebras and switching circuits, finite fields and algebraic coding, and semigroups and automata. The topics of the book can be studied independently of each other, although the book is a mathematics book, the authors have made great efforts to address the needs of the users of the techniques that are being discussed. There is a special emphasis on fully worked out computational examples. More than 500 exercises accompany the 40 sections. This new edition includes major changes to the first edition: corrections and improvements to the first four chapters, a new chapter on Cryptology, and an enlarged chapter on Applications of Groups. An extensive chapter has been added to survey other (mostly recent) applications, many of which were not included in the first edition, nor are commonly found in undergraduate texts. The book assumes knowledge of the material covered in a course on linear algebra and, preferably, a first course in (abstract) algebra covering the basics of groups, rings, and fields.