Sample Syllabus

Course Objectives

Mobile and pervasive computing are two closely related fields that have been carrying the promise for many years of revolutionizing how computers are perceived and used by end-users.  It is an interesting area, in the intersection of several disciplines, including networks, distributed systems, embedded systems, wireless communication, and human computer interaction.  It introduces new security issues, while the privacy implications are potentially profound for our society.  The field of mobile computing has recently been reinvigorated with the introduction of the Apple iPhone and Google Android, platforms that may lead to widespread commercial deployment of sophisticated pervasive applications for general consumers.

The purpose of this course is to review the fundamentals of mobile and pervasive computing, as they have been gleaned from the development of several experimental systems.  The course will also 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 applications using the Google Android platform, to get hands-on experience with the concepts being discussed in the class.  Other platforms such as Symbian and Java ME will be discussed by way of comparison.

Recommended Textbooks

There is no required textbook.  Reading will primarily be based on research and survey papers made available during the semester.  The following textbooks are useful supplementary reading, but you are advised to come to the first class before purchasing.

[Schiller] Mobile Communications, 2nd ed, Jochen Schiller.  Addison-Wesley, 2003.  ISBN 0-321-12381-6.  This book provides an overview of technology and protocols for wireless communication, written for the computer scientist rather than the electrical engineer.

The course work will include programming assignments using Google Android, which is a relatively new "clean slate" platform for cell phone software applications.  You do not need to buy an Android telephone, you can develop code on an emulator that can be downloaded.  Android development is in Java, although controversially Android does not run on the Java virtual machine.  You will be using the Eclipse IDE, with a plugin for Android, to do your development.  Android is sufficiently new that there is a dearth of books on it, though the on-line documentation is fairly good.  The following book is recommended if you need one, it is available now.

[Meier] Professional Android Application Development, Reto Meier.  Wiley, 2009.  ISBN 978-0-470-34471-2.

You are expected to know Java, or to learn it fairly quickly.

Grading

Presentation: 25%
Term Paper: 20%
Assignments: 30%
Participation: 25%

Attendance at all classes is mandatory, and your grade will include your participation in discussions.  To facilitate discussions, each set of readings will include both a presenter and a collection of reviewers, who will provide written comments about the papers before the class.  These comments and the presentation will be the basis for initiating discussion, with commenters expected to elaborate on their written comments in class.  The presenter is responsible for writing a term paper that reflects both their own presentation, as well as the written comments and the discussion that followed the presentation.  The presenter should also produce a short quiz that will be administered at the start of the presentation.

There are no examinations in this course.

Week-By-Week

The course is intended to introduce students to the many issues and challenges in pervasive and mobile computing, because of the resource-constrained operating environments of mobile devices and the demands that are placed upon them. A discussion of different approaches is necessarily a part of this emerging field.  Each student will be required to lead a discussion based on a set of papers (listed in blue below) and write a term paper based on that presentation.  The bibliography for these papers is here.

Week
Topics Covered
Reading
Texts
Assignments
1
Introduction: Networks, distributed systems, mobile and pervasive computing.  Hype vs reality.
BKG, MH
AGSS 1
Schiller 1

2
Hello, Android

Meier 1-5
3
Wireless communication: Bluetooth, 802.11, GSM.
[WC-1] Schiller 2-4, 7

4
Mobile IP (Guest lecture by Daniel Duchamp)
Mobile ad-hoc networks
[WC-2]
AGSS 8-11
Schiller 8, 9

5
Mobile transport
Distributed data management

AGSS 3
Meier 6


Monday class schedule



6
Mobile data management
[UDA-1][UDA-2]
[UDA-3]


7
Power management and adaptive computing
Advanced Android programming
[RS]

AGSS 5-7
Meier 7-11


Spring break



8
Location and context awareness[LCA-1]
[LCA-2]
AGSS 2, 4
Loke 1-4, 6

9
Sensor networks [SA-1]
[SA-2]
Loke 7
10
Security and privacy basics
Security in cell phones



AGSS 12, 13

11
Security and trust [SP-1]
[SP-2]
AGSS 14, 15, 17
Loke 8

12
User interface design for mobile devices (Guest lecture by Gregg Vesonder)
Privacy
[SP-3]


13
Mobile computing for delivery of healthcare in the developing world (Guest lecture by Edward Friedman)
Design methodologies and infrastructure


[DMI]
Loke 5, 9

14
End-to-end application considerations [EAC-1]
[EAC-2]