Personal computing is now mobile and cloud-based. Disconnected mobile computing challenges many of the assumptions underlying much of today’s distributed systems. Cloud computing provides a powerful background computing facility for mobile devices but also raises important issues of trust and privacy. Many of these issues arise in critical yet sensitive domains such as electronic healthcare delivery. Mobile computing applications are location-aware or context-aware; the privacy implications of these applications are profound. Mobile and, increasingly, location-aware gaming systems are now one of the largest sectors of the world entertainment industry. The purpose of this course is to review the fundamentals of mobile systems and applications and how they relate to services in the cloud. The course will review material from wireless communication, distributed systems, and security and privacy as they pertain to the systems being studied. The course will involve programming mobile apps using a popular mobile computing platform, such as Android or iPhone, to get hands-on experience with the concepts being discussed in the class. Programming experience with Java or C# is required.