This book adopts an integrated approach to hardware and software for the teaching of digital electronics. It has been developed from the author's experience in lecturing to first year undergraduate students of electronics and software engineering. ; The aim is to provide the reader with a thorough grounding in the basic issues of combinational and sequential logic design. Throughout, the emphasis is on describing the merits of modern and programmable digital design, using detailed case studies to show the interrelationship between the different design techniques that may be adopted. ; In the design examples described and examined, the author uses the PALASM language to specify how programmable array logic devices should operate.