May 2007 (vol. 8, no. 5), art. no. 0704-o5004 1541-4922 © 2007 IEEE Published by the IEEE Computer Society Education Mobile Computing Systems Programming: A Graduate Distributed Computing Course Lars Kulik  University of Melbourne Mobile devices are ubiquitous: they encompass portable audio and video players, digital cameras, tablet PCs and PDAs, as well as cell phones and smart phones. A Sept. 2006 Cellular News story (http://www.cellular-news.com/story/19223.php) estimated that there are more than 2.5 billion mobile phones worldwide. Although the mobile systems market is large and the career opportunities for students are excellent, relatively few universities offer mobile computing courses, much less teach mobile systems programming. Because mobile networks are likely to drive computing for the foreseeable future, the University of Melbourne Computer Science and Software Engineering Department created a Master of Engineering in Distributed Computing degree program. 1 The MEDC program educates graduate students in rapidly evolving key areas such as distributed computing, mobile computing, pervasive computing, and sensor networks. I teach CSSE 653: Mobile Computing Systems Programming. Quick Facts Course: Mobile Computing Systems Programming (CSSE 433-653) Units: Computer Science and Software Engineering Institution: University of Melbourne Instructor: Lars Kulik Level: Graduate URLs: https://psc.unimelb.edu.au/view/subject/433-653.html; www.cs.mu.oz.au/653 The SUM lab Instructors typically teach software development for mobile devices using simulation environments from development kits such as Java Micro Edition (ME). These simulators and emulators, however, fall short of representing the real-world behavior of mobile computing devices such as smart phones. Small mobile devices are limited not only in their computing power and communications bandwidth but also in their input mechanisms and output capabilities, such as screen size and resolution. MCSP gives students hands-on experience that can fundamentally change how they develop programs for small computing devices. Egemen Tanin and I established the SUM (sensing, ubiquity, and mobility) lab, which we now run with help from Ramamohanarao Kotagiri and Marimuthu Palaniswami. The SUM lab is one of the first of its type in Australia. Its three objectives are for students to better understand how to develop programs for mobile devices, gain hands-on experience with current and soon-to-be-released devices (which benefits students who seek industry employment), and learn to develop innovative solutions that address small pervasive devices’ restrictions. The SUM lab is open to students enrolled in MCSP or Sensor Networks and Applications and to all research students working in sensor networks, pervasive and ubiquitous computing, mobile computing, and distributed computing. The lab uses smart phones, sensor nodes (we’re currently IEEE Distributed Systems Online (vol. 8, no. 5), art. no. 0704-o5004 1