Students understand the different target architectures and components of today’s computing devices. They are enabled to specify complete systems, evaluate their design decisions, and synthesize the resulting systems. They are enabled to check their system for correctness and to test them for physical faults.