This text balances theory and practice without excessive technical or mathematical language and has coverage of current topics of interest, such as programmable devices, computer-aided design, and testability, supported by a number of illustrations, examples and problems.