Official course description:
Full info last published 7/06-21

Programming Mobile Applications

Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
MSc. Master
MSc in Digital Design and Interactive Technologies
Course manager
Assistant Professor
Associate Professor
Teaching Assistant
Teaching Assistant (TA)
Course semester
Efterår 2021
30 August 2021
31 December 2021
Exam type
ekstern censur
Grade Scale
bestået/ikke bestået
Exam Language

This course is a hands-on introduction to programming of mobile applications. Building on basic JavaScript programming skills, React Native is introduced as the preferred framework for cross-platform mobile application development. The concept of Location-Based-Services is also introduced in combination with React Native and is explored hands-on, in combination with programming hardware components on the phone (e.g. camera component). Student work revolves around small weekly individual tasks and readings of React Native documentation (online resources and provided course material) and a group project (3-4 students) that will be carried out in the second half of the course.  


The course has two main parts: 

The first part of the course provides a hands-on introduction to basic concepts and tools in support of smartphone application programming. In this first part, students, building on prior JavaScript programming knowledge, will work with React Native as the framework for developing cross-platform smartphone applications. They will engage in a series of smaller assignments progressing towards increasingly more advanced parts of the React Native (RN) framework. In this part three individual assignments need to be completed.  

The second part of the course is focused on gradually introducing Location-Based Services (LBS), Geolocation/Geofencing, and ways to program/control hardware components (e.g. GPS, camera, accelerometer), aiming to expand the possibilities of interacting with mobile devices. In this second half of the course a group project (3-4 students) will be conducted focused on programming and implementing a React Native application, through exploring and demonstrating knowledge on working with main RN components, navigation, LBS and programming of smartphone hardware components. In this latter part of the course, the gradual development of the group project will emphasise the construction of mobile app prototypes as vehicles for discussing the process of programming a mobile application with React Native as a tool, through components as building blocks and blackboxing processes. 

Overall, students will train how to prototype with code and slowly develop their ability to analyse, discuss, and make appropriate design decisions when prototyping a mobile app, starting from code as a design material. 

Formal prerequisites
Students enrolling in this course should have completed at least 7.5 ECTS in basic programming, where you have worked hands-on with e.g. sequential execution, expression, selection, repetition, testing and debugging, arrays, variables, objects, functions and classes in programming languages such as JavaScript (preferred), Python, Java or C ++, and know how to work with the terminal. 

KDDIT students who have passed ITU course Introduction to Programming in 2019 or later are eligible to take this course as an elective.

Please note: Limited number of places available as elective. More places may become available in the course registration change-of-mind window. 
Intended learning outcomes

After the course, the student should be able to:

  • Apply state-of-the-art mobile application prototyping tools for developing and designing mobile interactions
  • Apply software libraries and frameworks when programming mobile applications with React Native, including page navigation, styles, image, programmatic control of phone sensors, and location-based services
  • Discuss the process of programming a mobile application with React Native as a tool, through components as building blocks and blackboxing processes
Learning activities

The course consists of 14 lectures and 14 exercise sessions. Lectures and exercise sessions are closely linked by means of weekly hands-on student assignments introduced during exercise sessions and completed either individually or in small groups of students.

In general, coursework advances in parallel with student work that includes individual exercises and a group project focused on developing a mobile application prototype. These frame the move from basic mobile application programming, towards more advanced prototyping for mobile interaction including location-based services. The group project is conducted in groups of 3-4 students. 

Groups are expected to present/demo and discuss their prototype work in-class during design-critique sessions conducted towards the middle/end of the course.

Course literature

Textbook introducing the fundamentals of React Native mobile app design & implementation (specific book title to be announced in due course).

Relevant academic papers, web links and book chapters will be made available as uploads to LearnIT as the course and the student prototyping work moves forward.

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 20%
  • Lectures: 10%
  • Exercises: 35%
  • Assignments: 10%
  • Project work, supervision included: 20%
  • Other: 5%
Ordinary exam
Exam type:
C: Submission of written work, External (Pass / Fail)
Exam variation:
C1G: Submission of written work for groups
Exam submisson description:
The exam will consist of:
1. A submission of a written group assignment focused on the programming and development of a mobile app prototype (group project), and
2. A submission of an individual exam consisting of 3 individual assignments introduced throughout the course.
Group submission:
Group and individual
  • Group size 3-4

Time and date
Ordinary Exam - submission Mon, 10 Jan 2022, 08:00 - 14:00
Reexam - submission Wed, 23 Feb 2022, 08:00 - 14:00