Abstract
We rely on a vast network of devices that communicate autonomously to provide many of the services we use every day. However, the enabling technologies behind the Internet of Things (IoT) are often not taught in K-12 classrooms, in part due to the need for hardware. But most teens in the United States have smartphones. Thus, we introduce PhoneIoT, a mobile app that allows students to access their smartphones programmatically over the Internet. PhoneIoT supports access to live sensor data from the device and controlling a customizable display on the phone's screen. PhoneIoT allows students to learn the fundamental concepts of distributed computing and networked sensing using NetsBlox, a simple but powerful extension of the Snap! block-based programming environment. Because both PhoneIoT and NetsBlox are free and open-source, instructors are able to teach these advanced computer science topics even remotely without extra hardware.