“…Learning in one area supports learning in another." Instead of treating the labs as the adjuncts that follow the learning of the theories and presenting them in a limited "component context," we use them as a cohesive framework to connect and integrate the individual courses in the computer engineering curriculum, including freshman engineering, introductory digital systems, advanced digital systems, computer organization, embedded systems, hardware-software co-design, and senior capstone design [9]. This goal of the lab framework is to make students aware of the big picture, help them to connect the individual subjects, and apply and integrate the previous learning in a new context.…”