course-details-portlet

PROG2007

Mobile Programming

Choose study year
Credits 7.5
Level Intermediate course, level II
Course start Autumn 2024
Duration 1 semester
Language of instruction English
Location Gjøvik
Examination arrangement Aggregate score

About

About the course

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 technologies
  • Limitations of mobile devices available on the market
  • Programming Design Patterns for mobile systems
  • Layout and UI designs and practices for mobile screens
  • Using alternative input interfaces
  • Sensor integration - GPS, accelerometer/gyro, tilt, magnetic field, compass and camera
  • Managing multiple product types and form factors
  • OS-specific development issues: Apple's iOS vs. Google's Android
  • Mobile networking and cloud technology stack
  • Additional advanced topics (optional)
    • Raw data filtering
    • Signal processing (audio/visual, text)
    • IoT

Learning outcome

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 technologies
  • Discuss and review the special user interface requirements of mobile devices
  • Have in-depth understanding of the mobile 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 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 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

Learning methods and activities

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:

  • Mandatory assignments (pass/fail)
  • Project work, which will be assessed as part of the exam.

Additional course information:

  • Online resources and MOOC/Flipped classroom 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 Android 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, specifically for iOS if they wish to test on it. For Android development, we recommend devices with Android 6.0 or higher.
  • Note: Three obligatory assignments (pass/fail) is required to be admitted to the exam.

Compulsory assignments

  • Mandatory assignments

Further on evaluation

Re-sit examination:

Re-sit for the written exam in August. No re-sit for the project work.

Internal assignments must be taken again the next time the course is run.

Forms of assessment:

  • Three obligatory assignments (pass/fail)
  • Project work (60%)
  • Final, written exam 2 hours (40%)

Required previous knowledge

  • PROG1001 Fundamental Programming or equivalent
  • Java programming

Course materials

Web resources, tutorials, and guides documents for iOS and Android.

Subject areas

  • Computer Science

Contact information

Course coordinator

Department with academic responsibility

Department of Computer Science