CENG232 provides the students with the necessary background for designing hardware intensive systems. It reviews basic principles of digital hardware design, including combinational and sequential circuits and optimization methods. It proceeds with design principles underlying digital systems from simple components to more complex systems. It covers the use of algorithmic state machines to solve complex sequencing systems and teaches the foundations of how computing systems work. The course is supported by applied laboratory components that support the learning and application of these components.