This course combines the theory and practice of both electronic design and software development through formal lectures and tutorials, supported by hands-on laboratory experiments. The practical laboratory sessions are used to underpin the theory on hardware-software interfacing, performance, and design-for-reliability which occur when developing electronic hardware systems and software programs. In particular, the course develops the necessary knowledge and skills in how the electronic hardware can be interfaced with software programs, whereby the software controls the operation of the electronic hardware. This course is offered in Magee campus.