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