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.
Evolution of Pervasive Computing, Pervasive Computing Projects, Modern Directions, Wearable Computing, Example Scenarios - Aura, Composition of Pervasive Computing, Distributed Systems, Mobile Computing, Pervasive Application Development, Heterogeneity of Device Platforms, Dynamics of Application Environments, Approaches for Developing Pervasive Applications, Platform-Independent View Component, Platform-Independent Controller Component, Host-Independent Model Component, Developing Context-Aware Applications, Source-Independent Context Data, Developing Pervasive Software, Hardware Platforms, Operating Systems for Smartphones, Symbian, Crash Course on Operating Systems, Symbian - Architecture, Symbian - Foundation Layers, Foundation Device Layers, Symbian Design Patterns, Symbian OS Model, Symbian - Packages, Symbian - Kernel, Symbian - Features, Symbian - Devices, Android Software Stack, Android Linux Kernel, Android Linux Kernel Enhancement, Android Kernel, Android Native Libraries, Android Native Servers, Hardware Abstraction Libraries, Android Runtime, Android Virtual Machine (DVM), Android Runtime - Dalvik, Application Framework, Core Application Services, Runtime Walkthrough, Layer Interaction, Overall Architecture, Operating Systems for Smartphones, Hardware Platforms, Symbian, Android, Android Software Stack, Windows Phone 7, Structure of the OS, Windows 7, Software Architecture, Framework Details, App Hosting and Run Time, WP7 Execution Model, Application Life Cycle, Deactivation Resource Management, Activation Resource Management, Content Centric Experience, Structured Data and IO Performance, Structured Data in Mango, LINQ to Everything, Huge Reference Data, Web Services Cache, Users Data, Local Storage Data, Code First Development, User Data - New and Updated APIs, Microsoft.Phone.UserData, Contact/Appointment Data Share, UI Model, Rethinking Multitasking, Windows Phone Harmony, Multitasking and Phone Health, Getting more out of the phone: agents, Multitasking Components, End to End Architecture, Background Agent Functionality, Generic Background Agents, Don't Keep Users Waiting: Background Transfers, Multitasking Cheat Sheet, Services and Frameworks, WP7 Security Model, Chambers, Capabilities, Sandbox, Application Deployment, Content Sharing for Applications, Getting More Out of the Phone, Graphics Composition, Research In Motion, Market Share, Development Model, OS Architecture, Network Architecture, MDS (Mobile Data Services), Application Structure, Over the Air (OTA) Deployment, MDS Applications, Security Model in Brief, Sensitive APIs, iPhone History, Market Share and Predictions, iPhone Developers Program, iPhone Applications, Application Framework, Darwin, Mach-O, iPhone Runtime, Application Lifecycle, MVC Design Pattern, Objective-C, Memory Management, Frameworks and APIs, Core OS Layer, Cross Layer Services, Media Layer, Cocoa Touch Layer, Undocumented APIs, System Protection, JailBreaking, SIM Unlocking, Android Development Framework, Dalvik Virtual Machine, Android Software Development Kit, Creating First Android Application, Defining UI, Hello World - BlackBerry Style, Hello World - WP7 Style, Application Manifest, Location Based Services, Manifest Permissions, Types of Android Applications, Building Blocks of Android App, Activity Life Cycle, Content Provider, Intents, Services, Intents and Broadcast Receivers, SMS Application, AndroidManifest.xml, MainActivity.java, Sending SMS, Receiving SMS, Notifications, Widgets, Creating Database / Persistence, Detecting User Activity, Reading Device Orientation, Measuring Speed with Accelerometer, Other Types of Sensors, Listing Available Sensors, Other Functionalities.