Mobile Development Theory
2014-2015 - IMT3662 - 5 ECTS

Prerequisite(s)

  • IMT1031 Introduction to Programming or
  • IMT1241 Basic Java Programming (from autumn 2013 replaced by IMT1441 Programming for web I).

On the basis of

  •  IMT1082 Object Oriented Programming or equivalent
  •  IMT2291 Web Technologies or equivalent

Expected learning outcomes

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

Knowledge

  • Recognize and dicsuss the strengths and weaknesses of mobile devices.
  • Know the performance limitations of mobile technologies and networks.
  • Discuss and review the special user interface requirements of mobile devices.
  • Have a in-deepth understanding of the development process for a specific mobile platform.
  • Identify the ethical and social impact of mobile devices on society.

Skills

  • Be able to identify and characterize the strengths and weaknesses of mobile devices.
  • Be able to classify and describe the performance limitations of mobile technologies and networks.
  • Be able to use an integrated development environment (IDE) to implement applications for mobile devices.
  • Be able to access and use the variety of input methods found in mobile devices.
  • Develop an appreciation of the potential for innovation in mobile services, and the impact this could have on society.
  • Be able to cross compile code for at least two different mobile Operating Systems: Android and iOS

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

Topic(s)

The field of mobile system development changes rapidly. Thus the topics covered need to be flexible. In this course these include, but are not limited to:

  •  Strengths and weaknesses of mobile technologies
  •  Limitations of mobile devices available on the market
  •  Programming Design Patterns for mobile systems
  •  Layout and UI designs and practices for mobile screens (phones, tabets, wearables)
  •  Using alternative input interfaces
  •  Sensor integration - GPS, accelerometer/gyro, tilt, magnetic field, compass and camera
  •  Raw data filtering and signal processing
  •  OpenGL ES - 2D/3D graphics on mobile devices
  •  Managing multiple product SKU's
  •  OS specific development issues: Apple's iOS and Google's Android
  •  Mobile networking and technology stack

Teaching Methods

Lectures
Net Support Learning
Project work

Teaching Methods (additional text)

Student will receive an overview of the mobile development process on a range of devices, but will select one for in depth study. Some mobile devices will be available for testing, but it would be beneficial for the student to have access to a personal mobile device (for example iOS which requires an apple computer, Android 4.2+, or Phone8)

Form(s) of Assessment

Other

Form(s) of Assessment (additional text)

  • There are two assignments (40%).
  • Final, written exam 3 hours (60%).

The first assignment is an individual assignment focused on developing a simple app which accesses both sensor data and network connectivity and use of some Internet resources. The second assignment is a small, group project implementing a new application, such as a simple game, visualization tool, media production app, or productivity tool. Both assigments counts for 20% each and both have to pass in order to be able to attend final written exam. The group project will be on a phone/mobile device of the students choice.

Grading Scale

Alphabetical Scale, A(best) – F (fail)

External/internal examiner

Internal examiner, together with external examiner once every three years on the written exam, next time in 2016.

Re-sit examination

Normal continuation exam for the written exam.

Examination support

None

Teaching Materials

Web resources from Apple, Google, Microsoft and other mobile device operators as well as other online tutorial sites.

Replacement course for

IMT3661