PROGRAMMING OF MOBILE SYSTEMS
cod. 1006702

Academic year 2024/25
3° year of course - Second semester
Professor
Gianfranco LOMBARDO
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
A scelta dello studente
Type of training activity
Student's choice
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

The purpose of the course is to address the basic principles for developing on cutting-edge mobile platforms. In particular, students will be provided with the ability to understand:

The principles and key aspects of programming in a mobile environment.
Students will learn to apply these skills and will be capable of programming simple applications on Android smartphones.

Prerequisites

Strictly recommended prerequisites are:
-Object Oriented Programming
- Operating systems and multithreading

Recommended prerequisites for a better understanding of the course:

-Database fundamentals
- Software Engineering

Course unit content

The course will focus on introducing mobile application development for Android environments, with an overview of Cross-platform development. Specifically, the following topics will be covered:

I-ntroduction to Mobile Computing (Architectures and Patterns)
-Object-Oriented -Programming in Kotlin
-Development in the Android environment
-Local and remote databases
-Concurrent and asynchronous programming
-Sensor data processing
-Introduction to Machine Learning for mobile applications

Full programme

The course will focus on introducing mobile application development for Android environments, with an overview of Cross-platform development. It will be divided into 10 submodules:

1)Introduction to Kotlin language

Language basics
Object-Oriented Programming in Kotlin
Toy samples in Android Studio
Android basics

2)Layouts
Best practices for User Interface development
Navigation and cross-device support
Networking

3)Connections and data retrieval via HTTP and REST
Data retrieval using WiFi and Bluetooth
Information exchange in JSON format
Data persistence

4)Internal storage
External storage
SQLite and Android ROOM
Background services

5)Android Work Manager
Service Life Cycle
Notifications
Concurrency

6)Concurrency in Kotlin
Concurrency and UI
Concurrency and Android

7)Sensors and multimedia (Raw data)

Accelerometer
Gyroscope
Camera

8)Android Open Source Project (Software-based motion sensors)

Gravity sensor
Linear accelerometer
Rotation vector sensor
Significant motion sensor
Step counter sensor
Step detector sensor

9)Towards Artificial Intelligence

Android Speech Recognizer -> SpeechToText
Android TextToSpeech
Introduction to Natural Language Processing

10)Design patterns for software development

Creational patterns

Bibliography

- Instructor-provided slides during lectures
- Open-access documentation: https://developer.android.com
- Laboratory exercises

Teaching methods

Lectures and laboratory exercises.

Assessment methods and criteria

The examination methods include:

1) The development of a final project related to the creation of a mobile application, either proposed by the student or chosen from those offered by the instructor.
2) The preparation of a detailed technical report on the project activity to be submitted at least 10 days before the examination date.
3) An oral examination involving theoretical questions and a PowerPoint presentation of the project activity.

Other information

- - -

2030 agenda goals for sustainable development

- - -