Wroclaw University of Technology  -   Faculty of Electronics

ARCHIVES '2012-2013
"Application Programming: Mobile Computing"

INAE00112 - Advanced programming course for Internet Engineering speciality
Lecturer:  Marek Piasecki, PhD
Tutorial hours:  Thursday 09:15-11:00, Friday 13:15-15:00, room 324/C3
  Lecture Laboratory
Hours / sem. (h) : 30 30
Exam / Course work : CW  
ECTS : 5 -
Workload (h) : 60 90 

Sample test questions for final exam on Thursday June 13, 2013
Complete overview of fundamental problems, technologies and paradigms related to mobile systems. Understanding of mobile service architectures, wireless/mobile networks and characteristic limitation of mobile devices. Hands-on experience in programming advanced mobile phones, palmtops and smartphones. Knowledge of modern trends in mobile applications including: user focused and context-dependent services, ubiquitous entertainment and wearable computing.
Mobile phone/PDA programming targeting various hardware and programming environments: Java Micro Edition, Android, Windows Phone and iOS operating systems. Handling essential limitations of mobile environment: restricted user interface, limited computational performance, memory-awareness, power management, security and privacy in mobile applications. Mobile networks (GPRS, EDGE, 3G), wireless personal area networks based on Bluetooth or WiFi technologies. Location and privacy protection in mobile wireless networks. Addressing and routing to mobile users. Disconnection handling - data synchronization. Mobile databases. Location/context aware services. Mobile multimedia and TV.

Teaching materials for the lecture '2013:

Tentative syllabus of the lecture:

  1. Introduction to mobile computing / mobile systems programming.
    Mobile code (logical mobility) versus mobile hardware (physical mobility).
    Evolution of mobile devices, wireless networks and services.
    Mobile device architectures (hardware, software, platforms, product lines)
    Overview of commonly used mobile hardware, operating systems and programming environments:
    - Java Micro Edition,
    - Symbian,
    - Windows Mobile, Windows Phone
    - Android.
  2. Basics of software architectures and design patterns for mobility
    (Flexibility, Low memory, Battery , Performance, Security)
    Handling essential limitations of mobile environment:
    - reduced/restricted user interface,
    - limited computational performance,
    - memory-awareness,
    - power management.
  3. Application Models in Mobile Java
    - Java Family overview
    - J2ME platform architecture and application deployment
       (CLDC,CDC, profiles, optional packages)
    - Java development kit, NetBeans IDE
    - Building and executing MID Profile Applications for CLDC
    - Creating user interfaces
    - Managing data on the device
    - Accessing network and data services
    - Example applications.
  4. Symbian OS (S60) application programming infrastructure
    - Setting up programming environment: S60 SDK, Carbide C++ IDE,
    - Overview of creating applications for Symbian platforms in C++
      (AppArc, Cone, Uikon, Eikon, Avkon), Platform Security (TCB,TCE)
    - Exceptions handling and resource management (Leave versus exception),
    - Descriptors, active objects.
    - Example applications
  5. Programming Microsoft Windows Mobile
    - mobile application development in Visual Studio IDE
    - .Net Compact Framework, System.Windows.Forms,
      Controls specific to Windows Mobile
    - Windows Mobile emulator, installing programs on mobile devices
    - Using Web Services, using databases with ADO.Net
    - Example applications
  6. Wireless communication fundamentals:
    Wireless transmission, frequencies for radio transmission, signal propagation,
    signal encoding, multiplexing, modulations, Medium Access Control,
    Protocols supporting mobility - mobile network layer protocols: mobile-IP (IPv4, IPv6),
    mobile transport layer protocols: mobile-TCP, indirect-TCP. Wireless Application Protocol (WAP), iMode.
  7. Mobile networks infrastructure:
    - Cellular communication systems, Cellular Digital Packet Data CDPD,
    - cellular networks GPRS, EDGE, 3G,
    - Short-range communication systems - wireless personal area networks
       based on Bluetooth (L2CAP, RFCOMM) or WiFi technologies (802.11)
    - services discovery (SDP)
    - file sharing for mobile devices
    - multimedia services over Bluetooth,  Bluetooth modes, PicoNets, ScatterNet.
  8. Security Policies and Code Signing
    - security models and privacy in mobile applications
    - authentication in mobile applications
    - securing mobile ad-hoc networks
    - location and privacy protection in mobile wireless networks.
  9. Selected development problems
    Memory management – Designs patterns  for limited memory
    - Memory management in mobile Java
    - Symbian OS memory management
        (Naming conventions, Descriptors, Cleanup Stack, Two-Phase Construction)
    Persistent data - storing application data on mobile devices
    Practical testing techniques - Testing and debugging a mobile device application.
    Debugging with an emulator. Debugging on the target device.
  10. Disconnected and weak-connected operation models
    Disconnection handling - data synchronization.
    Mobile databases:
    - IBM DB2 Everyplace,
    - Oracle 9i Lite
    - Microsoft SQL Server CE
    - MS SQL Server 2005 Compact Edition Database
    - PicoDBMS
  11. Location-based, context-aware and user-oriented services
    - Location management in heterogeneous wireless and mobile networks
    - Addressing and routing to mobile users
    - Scalable Routing Protocols for Mobile Ad Hoc Networks
    Personalization :
    - context and user-oriented (user-focused) services,
    - location management in heterogeneous wireless and mobile networks
    - Location/context aware services (context-dependent services)
  12. Emerging Technology - Modern trends in mobile applications:
    - mobile (distance/permanent) education,
    - m-commerce - mobile financial applications and services,
    - mobile entertainment services and mobile (multiplayer) games,
    - mobile multimedia and TV,
    - ubiquitous entertainment,
    - wearable computing
  13. Final Exam (1 hour written test)


[1]    M. Ilyas ,I. Mahgoub, Mobile computing handbook
[2]    T. Mikkonen, Programming mobile devices: an introduction for practitioners
[3]    F. Fitzek, F. Reichert, Mobile phone programming and its application to wireless networking
[4]    P. Golding, Next generation wireless applications: creating mobile applications in a Web 2.0 and Mobile 2.0 world
[5]    P. Coulton, R. Edwards, H. Clemson, S60 Programming: A Tutorial Guide
[6]    A. Wigley, D. Moth, P. Foot, Microsoft® Mobile Development Handbook