MOBILE COMPUTING WITH IPHONE AND ANDROIDCOMS E6998, Dept of Computer Science, Columbia University
Home | Announcements | Lectures | Homeworks | Projects | Discussion | Resources

Meeting Times and Location: Spring 2008 M 11:00-12:50pm Location 1127 Mudd
Prerequisites: COMS W3137 Data Structures and Algorithms, COMS W3157 Advanced Programming, COMS W3827 Fundamentals of Computer Systems

Description: Study of mobile computing on smartphones with an emphasis on applications. These handheld Internet devices are poised to become the future dominant software platform as a result of the rapid convergence of computers and mobile phones. Topics covered will include mobile operating systems and development environments, input modalities and user interfaces for mobile devices, power management issues for mobile devices, wireless mobile networking, thin clients and mobile Web, location-aware and other context-aware services, and virtualization. A course programming project will be required.

This course can be used to satisfy MS track elective requirements for software systems and network systems tracks. Because this is a new course, it may not be listed yet in the MS degree track requirements.

Enrollment: The Spring 2009 enrollment for this class will be limited. Please register early if you plan to take this class in Spring 2009. If the class is full and you would like to take the class, please email the instructor and come to the first day of class. Undergraduate students are welcome to enroll. However, Columbia requires undergraduates to submit an add/drop form with the instructor's signature to the Registrar's Office to register for the course.

More Information:

Instructor: Prof. Jason Nieh, 212-939-7160, office hours: M1PM-3PM CSB 518
TA: Carlos-Rene Perez, 646-775-6005, office hours: TR4PM-5PM CSB 521
TA: Xintong Zhou, 212-854-4916, office hours: W10AM-12PM, F1PM-3PM TA Rm
Optional Android Text: Hello, Android: Introducing Google's Mobile Development Platform, Ed Burnette, The Pragmatic Bookshelf, Raleigh, NC, 2008 (also available from See Code, Errata, and Discussion.
Optional iPhone Text: iPhone SDK Development (only Beta PDF available), Bill Dudney, Chris Adamson, Marcel Molina, The Pragmatic Bookshelf, Raleigh, NC, 2009. See Code, Errata, and Discussion.
Optional iPhone Text: iPhone SDK Application Development (available starting January 27), Jonathan Zdziarski, O'Reilly & Associates, Sebastopol, CA, 2009 (also available from See Code and Errata.
Computing Requirements: You do not need to have any special hardware to take this class. You will be given the option of whether you would like to do assignments and projects using iPhone, Android, or both. If you would like to work with Android, there are no special requirements as cross-platform software is available. If you would like to work with iPhone, you must either have an Intel-based Mac running Leopard or sign up to use the Gateway Lab. The use of the Gateway Lab requires payment of a $275 fee which is added to your semester tuition bill. Buying a Mac Mini ($579) is perhaps a cost effective alternative.
30%: Homework Assignments: There will be one or two homework assignments that involve building small iPhone and Android applications and are assigned to everyone in the class.
60%: Team Project: The project is an opportunity for you to take an active part in exploring the subject area, as appropriate for an advanced course. The project is to build and deploy a iPhone or Android application. Projects are to be done in teams of your own choosing. There will be a contest to judge the best application.
10%: Class Participation: There will be a class participation component of the class for on-campus students.
0%: No "extra credit" work

We would like the course to run smoothly and enjoyably. Feel free to let us know what you find just, good, and interesting about the course. Let us know sooner about the reverse. See us, leave us a note, or send us email.

Jason Nieh,