CS710 : Mobile and Pervasive Computing

Course Overview

Course Synopsis

This is a graduate level course. This course introduces the concepts in the area of mobile computing, to provide a computer systems perspective on the converging areas of wireless networking, embedded systems, and software. It focuses on pervasive computing, vision, mobile device architectures, operating systems, applications and platforms, mobile application design and development. Moreover, it emphasizes on wireless networking technologies, pervasive naming and discovery, location detection and tracking, pervasive data access, context awareness, security in mobile and pervasive systems, human interaction in mobile and pervasive systems and energy management.

Course Learning Outcomes

Upon successful completion of this course students should be able to:

  • Understand the fundamental concepts in the area of pervasive computing such as smart spaces, Invisibility, Localized spaces, and Uneven conditions.
  • Realize the key areas of mobile computing, including mobile networking, Mobile information access, Adaptive Applications, Energy-Aware systems, Location Sensitivity.
  • Learn about ARM processors and their instruction set architectures, processors: XScale, ARM11, i.MX, bus and memory architectures, I/O architectures, SOC designs.
  • Understand device operating systems like Symbian OS, Windows Mobile, and Android and know about platform dependent as well as independent programming languages.
  • Have in-depth coverage of conceptual architectures, frameworks and methodologies related to the design and implementation of mobile systems and technologies.
  • Understand about positioning systems and algorithms, use of GPS and network assisting techniques, enabling techniques to facilitate pervasive data access.
  • Know about Context-aware computing is a mobile and ubiquitous computing paradigm in which applications can discover and take advantage of contextual information Context sensing and acquisition, Context modeling, representation and storing, Processing, aggregation and reasoning of contextual data, Context-aware application adaptation, integration of context-awareness into service-oriented architectures.
  • Understand the Access Control Systems, Cryptography, key exchange algorithms and designing user interface and user experience for mobile devices.
  • Have knowledge of techniques for power efficiency in mobile devices.


Course Calendar

1 Introduction to Mobile and Pervasive Computing
2 Composition of Mobile and Pervasive Computing - I
3 Composition of Mobile and Pervasive Computing - II
4 Composition of Mobile and Pervasive Computing - III
5 Composition of Mobile and Pervasive Computing - IV
6 Software Development Aspects - I
7 Software Development Aspects - II
8 Software Development Aspects - III
9 Software Development Aspects - IV
10 Hardware Platforms, Operating Systems for Smartphones, Symbian, Crash Course on Operating Systems
11 Symbian Design Patterns, Symbian OS Model, Symbian - Architecture
12 Symbian - Packages, Symbian - Kernel, Symbian - Features, Symbian - Devices
13 Android Software Stack, Android Linux Kernel
14 Android Kernel - Binder, Android Kernel - Power Management, Android Native Libraries
15 Android Native Servers, Hardware Abstraction Libraries, Android Runtime - Dalvik
16 Application Framework, Core Application Services
17 Android Runtime - Dalvik (cont...)
18 Runtime Walkthrough, Package, Service and Process
19 Recap of Lecture 18
20 Core Application Services, Applications, Runtime Walkthrough (cont...)
21 Layer Interaction, Overall Architecture
22 Operating Systems for Smartphones, Hardware Platforms, Symbian, Android, Android Software Stack, Windows Phone 7
23 Structure of the OS - Building, Structure of the OS - File
24 Structure of the OS - Graphics, Windows 7 - Requirements, Windows 7 - Updates
25 Windows 7 - Improvements, Software Architecture, App Hosting and Run Time
26 WP7 Execution Model, Application Life Cycle, Deactivation Resource Management, Activation Resource Management
27 Content Centric Experience, Structured Data and IO Performance, Structured Data in Mango
28 LINQ to Everything, Huge Reference Data, Web Services Cache, Local Storage Data - Overview, Code First Development, User Data - New and Updated APIs, Microsoft.Phone.UserData, Contact/Appointment Data Share
29 UI Model, Rethinking Multitasking
30 Windows Phone Harmony, Multitasking and Phone Health, Getting more out of the phone: agents, Multitasking Components, End to End Architecture
31 Background Agent Functionality, Additional Functionality, Generic Background Agents
32 Multitasking Cheat Sheet, Services and Frameworks, WP7 Security Model, Chambers, Capabilities, Sandbox, Application Deployment, Content Sharing for Applications, Graphics Composition
33 Research In Motion, Development Model, Applications , OS Architecture
34 Network Architecture, MDS (Mobile Data Services), Over the Air (OTA) Deployment, MDS Applications, Sensitive APIs, iPhone History, iPhone Developers Program, iPhone Applications, iPhone Runtime, MVC Design Pattern, Memory Management
35 Core OS Layer, Cross Layer Services, System Protection, JailBreaking, SIM Unlocking, Android Development Framework, Dalvik Virtual Machine, Android Software Development Kit, Creating First Android Application
36 Defining UI, Hello World - BlackBerry Style, Hello World - WP7 Style, Types of Android Applications, Building Blocks of Android App
37 Hello World - WP7 Style (cont...)
38 Application Manifest, Location Based Services, Manifest Permissions, Types of Android Applications
39 Building Blocks of Android App, Activity Life Cycle
40 Activity Life Cycle (cont...), Content Provider
41 Content Provider (cont...)
42 Content Providers (cont...), Intents
43 Intents (cont...), Intents and Broadcast Receivers, SMS Application, AndroidManifest.xml, MainActivity.java, Sending SMS, Receiving SMS
44 Notifications, Widgets, Creating Database / Persistence
45 Detecting User Activity, Reading Device Orientation, Measuring Speed with Accelerometer, Other Types of Sensors