Official course description, subject to change:
Basic info last published 15/03-21

Programming Mobile Applications

Course info
Language:
English
ECTS points:
7.5
Course code:
KAPRMOA1KU
Participants max:
60
Offered to guest students:
no
Offered to exchange students:
yes
Offered as a single subject:
no
Programme
Level:
MSc. Master
Programme:
MSc in Digital Design and Interactive Technologies
Staff
Course manager
Assistant Professor
Teacher
Associate Professor
Course semester
Semester
Efterår 2021
Start
30 August 2021
End
31 December 2021
Exam
Abstract

This course is a hands-on introduction to prototyping of mobile applications and mobile services. Building on basic JavaScript programming skills, React Native is introduced as the preferred framework for cross  platform mobile application development. Concepts of Location-Based-Services, Social Computing and Cloud-based computing are introduced when  exploring, hands-on, the design of mobile crowd sensing systems. The notion of context as unfolded in theories on embodied/situated interaction is introduced  to inform the design and analysis of mobile interactions throughout the course. 

Description

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 native smartphone application programming. In this first part, students are exposed to the use of JavaScript as the programming Language and React Native as the mobile application framework when building cross platform smartphone applications. Students will work with a series of smaller assignments progressing towards increasingly  more advanced parts of the React-Native framework. Furthermore, ways to programmatic control hardware components (e.g. gps, magnetometer, accelerometer , ambient light sensors ) all part of a modern smartphone is introduced to allow for alternative (i.e. non-screen based) input/output in the interaction with mobile devices. Finally, this first part of the course, introduces the use of on-device software debugging tools for mobile devices. 


Main focus of the second part of the course is  the design and implementation of a React Native application demonstrating and exploring the design for interaction with location-based services. A series of lectures, conducted in parallel to student group work, introduces theoretical concepts from the field of interaction design of direct relevance to the design of location-based applications and services. In particular, the design and implementation of mobile applications facilitating participatory and opportunistic crowd sensing is introduced through a number lectures and student assignments. This includes an introduction to cloud computing and the notion of designing application functionality that reside across individual devices and the ‘cloud’. 

In this latter part of the course, lectures and exercise sessions will emphasize the construction of prototypes as vehicles for designerly inquiry. Informed by the theoretical frameworks introduced on the course, students will train their ability to analyze, discuss, and make appropriate design decisions given the particularities of a design situation. Further, towards the end of the course, student engagement with the particularities of the  concrete prototypes are used as points of departure for a critical reflection on use and role of the tools, process and method introduced on the course.

Formal prerequisites
Student 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 courses as an elective. 
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
Ordinary exam
Exam type:
C: Submission of written work, External (Pass / Fail)
Exam variation:
C1G: Submission of written work for groups