IMT3673

Mobile/Wearable Programming

Last taught 2020

Spring

Gjøvik

English

Overview

3 candidates

Pass rate

100%

13 points

Grade distribution
Average over time
Pass rate over time

About this course

Content

The field of mobile system development changes rapidly. Thus the topics covered need to be flexible and are subject to change. Tentative course contents include, but are not limited to:
- Strengths and weaknesses of mobile/wearable technologies
- Limitations of mobile/wearable devices available on the market
- Programming Design Patterns for mobile/wearable systems
- Layout and UI designs and practices for mobile screens (phones, tablets, wearables)
- Using alternative input interfaces
- Sensor integration - GPS, accelerometer/gyro, tilt, magnetic field, compass and camera
- Managing multiple product types and form factors
- OS-specific devel- opment issues: Apple's iOS vs. Google's Android
- Mobile networking and cloud technology stack
Optional topics:
- Cross-compilation of native C++ code for Android and iOS
- Raw data filtering and signal processing
- OpenGL ES - 2D/3D graphics on mobile devices
- Internet of things
- P2P and Blockchain technologies
During the course, students are expected to learn Java (or Kotlin) alongside the core course material. We spend the initial 2 weeks to introduce students not familiar with Java to the new programming language, however, students are expected to do necessary work to pick up the new programming language on their own. The course focuses on - native application development and is programming heavy.

Learning outcomes

On completion of this course the students will have the following skills, knowledge and general competencies:

Knowledge
- Recognize and discuss the strengths and weaknesses of mobile technologies
- In-depth knowledge of mobile development process
- Discuss main mobile application components, their function, and purpose
- Recognize and plan the mobile applications structure
- Know the performance limitations of mobile and wearable technologies
- Discuss and review the special user interface requirements of mobile and wearable devices
- Have in-depth understanding of the mobile/wearable app development process
- Identify the ethical and social impact of mobile devices on society

Skills

- Be able to identify and characterize the strengths and weaknesses of mobile and wearable technologies, and their performance limitations
- Ability to develop a mobile solution to a defined problem
- Ability to implement a mobile application and utilize the screen, input mechanisms, database, social aspects and Internet connectivity characteristic to mobile platforms
- Be able to use an integrated development environment (IDE) to implement applications for mobile devices on the Android and/or iOS platforms
- Be able to access and use the variety of input methods for mobile and wearable UI
- Develop an appreciation of the potential for innovation in mobile/wearable technology and services, and its impact on society

General competence
- Improved understanding of the software development process
- Exposure to, and understanding of group projects and group dynamics in the software development team
- Improved programming skills

Teaching methods

We use a blended learning approach in which we mix conventional lectures, as well as tutorials and exercises with online lectures and learning materials.
Assessments:
- Internal assignments
- Project work
Additional course information
- Online resources and MOOC-supported learning are used in this course
- Project work: student will receive an overview of the mobile development process on a range of devices, but will select one for in depth study (preference given to Android). Some mobile devices will be available for testing, but it would be beneficial for the student to have access to a personal mobile device, specifically for iOS. For Android development, we recommend devices with Android 6.0 or higher.
Note: Passing the internal portfolio is required to be admitted to the exam.