The purpose of this class is to create a community of phone programmers at UC Berkeley and to enable a new platform for a broad range of research. We will focus on open-source phones, use a single code repository for the class, and promote not only code sharing but the creation of an infrastructure for new applications and future research. The first part of the class will focus on understanding the phones and developing or porting basic tools and libraries. The second part and most of the grade will be based on an extended group project on a real phone (or phones) with a demo at the end. A wide range of topics will be allowed, including networking, VoIP or video, sensor integration, camera projects, core OS or DB, UI/HCI and developing region projects.