cod. 1006646

Academic year 2016/17
2° year of course - First semester
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
A scelta dello studente
Type of training activity
Student's choice
42 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in - - -

Learning objectives

Knowledge and understanding
The purpose of the course is to understand how to realize advanced applications (Apps) for mobile devices. In addition to specific knowledge of the different programming languages (C++, OpenCV and Java) also knowledge about Android operating system will be acquired.
Applying knowledge and understanding
The student will acquire the ability to develop complex applications for mobile devices.


It is highly desirable to have taken the course of Mobile Device Programming during the Bachelor studies.

Course unit content

Brief re-cap about mobile platforms, mobile device programming and problems related to it. Details about Android platform and Android SDK.
Development of graphical interfaces in Android through widgets. Sensor accessibility with Android SDK. Good practices in App development.
Android NDK (Native Development Kit), JNI (Java Native Interface) and Android Studio IDE.
Examples of potential advanced applications.

Introduction to mobile vision (computer vision applied to mobile devices).
OpenCV library and its interfacing with Android: core module and Mat container; imgproc module (2D image filters, binary morphology, edge detection, template matching, etc.); interface creation; feature extraction (Shi-Tomasi, SIFT, SURF, ORB, etc.); object detection (cascade classifiers, etc.).
Examples of OpenCV projects on mobile devices. Code optimization techniques: fixed-point vs floating-point; SIMD parallelism; optimization of access to and allocation of memory; loop unrolling; function calls; low-level optimization (eg: SSE).

Brief introduction to other mobile applications. Usage of sensors Cenni (accelerometers, gyroscope, ...) for advanced applications.

Full programme

- - -


Course slides and online material.

Teaching methods

The course will consist in about 30 hours of frontal lectures (with practical examples of programming) and about 15 hours of laboratory in which the students can practice in the development of their project.

Assessment methods and criteria

The exam consists in the development of an advanced App to be developed alone. The topic of the App will be decided with the teacher.

Other information

- - -