This course provides an introduction to the human-centered and technical workings behind interactive devices ranging from cell phones and video controllers to household appliances and smart cars. This is a hands-on, lab-based course. For the final project, students will build a functional IoT prototype of their own design, using Javascript, single-board Linux computer, embedded microcontrollers, and other electronics components. Topics include electronics prototyping, interface prototyping, sensors and actuators, microcontroller development, physical prototyping and user testing.