This text is intended for an introductory digital design course for students at the freshman level; it also is intended for an introductory computer design course with assembly language programming for students at the sophomore level.This text uses a spiral teaching approach by introducing a design problem and then, in the same chapter or a later chapter, either (1) reemphasizing the same concepts when a different design is presented, or (2) working the same problem using a different technique.This is done to increase the likelihood of retention.