In this course, the students will learn how to implement different communication techniques through hands-on experimentation. The course is divided in two parts. In the first part, the students will follow a set of guided assignments to consolidate the concepts learnt in the related communication courses. The instructor in class will review these concepts and provide the students with the necessary tools to implement them on a novel embedded systems platform. In the second part, the students will choose among different proposed projects (or will come up with their own idea) and design, implement and evaluate the performance of a practical communication technique for real-world application scenarios. This course will provide the students with the necessary skills to implement practical communication techniques for everyday systems. This course is dual-listed with EE 446.