Mobile Computing
A.Y. 2025/2026
Learning objectives
The aim of the course is presenting the peculiar problems of mobile devices, and the corresponding solutions. For this purpose, the course will show how to apply, in the context of mobile devices, what the students have learned in other courses from the program and among others: human-computer interaction, operating systems, computer networks, databases and web. Particular attention will be devoted to the aspects concerning mobile applications development.
Expected learning outcomes
The student will discover what solutions are adopted to solve the main problems related to mobile devices, operating systems, communication networks, data management, and application development. The student will be able to develop prototype applications for mobile devices.
Lesson period: First semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.
Course syllabus and organization
Single session
Responsible
Lesson period
First semester
Course syllabus
FIRST MODULE: Fundamentals of Mobile Computing
· Characteristics of mobile computing (3 hours of lectures)
· Operating systems for mobile devices (3 hours of lectures)
· Networks and architectures (3 hours of lectures)
· Outdoor positioning techniques and spatio-temporal data management (3 hours of lectures)
· User experience analysis and design (3 hours of lectures)
· Code architecture and internal design (3 hours of lectures)
· Techniques for developing mobile applications (3 hours of lectures)
· Testing and debugging of mobile applications (3 hours of lectures)
Total: 24 hours of lectures (8 classes, 3 hours each)
SECOND MODULE: Cross-Platform Mobile Application Development
· Introduction to React (2 hours of lectures, 1 hour of lab)
· Component composition in React (2 hours of lectures, 1 hour of lab)
· Introduction to React Native (2 hours of lectures, 1 hour of lab)
· Component composition and code organization in React Native (2 classes, each with 1 hour of lecture and 2 hours of lab)
Total: 8 hours of lectures, 7 hours of lab
THIRD MODULE: Android Development
Android programming in Kotlin
· Introduction to Kotlin (1 hour of lecture, 2 hours of lab)
· Object-Oriented Kotlin (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Introduction to Android programming in Kotlin (1 hour of lecture, 2 hours of lab)
· Component composition and View development (1 hour of lecture, 2 hours of lab)
· Model development (Repository, network calls, persistent storage) (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Positioning and maps (1 hour of lecture, 2 hours of lab)
Total: 8 hours of lectures, 16 hours of lab
Project support activities
· GUI design (1 hour of lecture, 2 hours of lab)
· View implementation (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Model implementation (1 hour of lecture, 2 hours of lab)
· Event handling and ViewModel implementation (1 hour of lecture, 2 hours of lab)
· Network communication implementation (1 hour of lecture, 2 hours of lab)
· Persistent storage implementation (1 hour of lecture, 2 hours of lab)
· Positioning and maps implementation (1 hour of lecture, 2 hours of lab)
· Guided exercises (3 classes, each 3 hours of lab)
Total: 8 hours of lectures, 25 hours of lab
· Characteristics of mobile computing (3 hours of lectures)
· Operating systems for mobile devices (3 hours of lectures)
· Networks and architectures (3 hours of lectures)
· Outdoor positioning techniques and spatio-temporal data management (3 hours of lectures)
· User experience analysis and design (3 hours of lectures)
· Code architecture and internal design (3 hours of lectures)
· Techniques for developing mobile applications (3 hours of lectures)
· Testing and debugging of mobile applications (3 hours of lectures)
Total: 24 hours of lectures (8 classes, 3 hours each)
SECOND MODULE: Cross-Platform Mobile Application Development
· Introduction to React (2 hours of lectures, 1 hour of lab)
· Component composition in React (2 hours of lectures, 1 hour of lab)
· Introduction to React Native (2 hours of lectures, 1 hour of lab)
· Component composition and code organization in React Native (2 classes, each with 1 hour of lecture and 2 hours of lab)
Total: 8 hours of lectures, 7 hours of lab
THIRD MODULE: Android Development
Android programming in Kotlin
· Introduction to Kotlin (1 hour of lecture, 2 hours of lab)
· Object-Oriented Kotlin (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Introduction to Android programming in Kotlin (1 hour of lecture, 2 hours of lab)
· Component composition and View development (1 hour of lecture, 2 hours of lab)
· Model development (Repository, network calls, persistent storage) (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Positioning and maps (1 hour of lecture, 2 hours of lab)
Total: 8 hours of lectures, 16 hours of lab
Project support activities
· GUI design (1 hour of lecture, 2 hours of lab)
· View implementation (2 classes, each with 1 hour of lecture and 2 hours of lab)
· Model implementation (1 hour of lecture, 2 hours of lab)
· Event handling and ViewModel implementation (1 hour of lecture, 2 hours of lab)
· Network communication implementation (1 hour of lecture, 2 hours of lab)
· Persistent storage implementation (1 hour of lecture, 2 hours of lab)
· Positioning and maps implementation (1 hour of lecture, 2 hours of lab)
· Guided exercises (3 classes, each 3 hours of lab)
Total: 8 hours of lectures, 25 hours of lab
Prerequisites for admission
It is strongly recommended that students have passed the exams in Operating Systems, Databases, Networks, Programming 1 and 2, and Web and Cloud Applications.
Before the start of the course, students should be able to write a program—preferably in Java—and create dynamic web pages, preferably using HTML, CSS, and JavaScript.
Before the start of the course, students should be able to write a program—preferably in Java—and create dynamic web pages, preferably using HTML, CSS, and JavaScript.
Teaching methods
The Fundamentals of Mobile Computing module consists of frontal teaching.
The Cross-Platform Development module mainly consists of frontal teaching, with some in-class exercises.
The Android Development module includes approximately one-third of the hours as frontal teaching, while the remaining hours are organized as in-class exercises, during which students work on exercises proposed by the instructor. Part of the lab time is also dedicated to supporting students in the development of their exam project.
The Cross-Platform Development module mainly consists of frontal teaching, with some in-class exercises.
The Android Development module includes approximately one-third of the hours as frontal teaching, while the remaining hours are organized as in-class exercises, during which students work on exercises proposed by the instructor. Part of the lab time is also dedicated to supporting students in the development of their exam project.
Teaching Resources
Lecture notes and slides are provided for each lesson, forming the base for the studying material. Within the slides, links are available to online resources.
Assessment methods and Criteria
The course is organized into three modules: Fundamentals of Mobile Computing (approx. 3 ECTS), Cross-Platform Development (approx. 1.5 ECTS), and Android Development (approx. 4.5 ECTS). Two separate assessments are scheduled: one for the first two modules and one for the third.
The first assessment (covering the first two modules) consists of a written or oral exam.
For the second assessment (covering the third module), students are required to complete a project (using both Android and cross-platform technologies) at home, preferably in groups. During an in-class exam session, each student must implement the modifications requested by the instructor.
Each assessment is graded on a scale from 1 to 31. To pass the overall course, students must score at least 18 in each assessment. The final grade is the average of the grades from the three assessments. If the final grade exceeds 30, the mark "30 cum laude" will be recorded.
The first assessment (covering the first two modules) consists of a written or oral exam.
For the second assessment (covering the third module), students are required to complete a project (using both Android and cross-platform technologies) at home, preferably in groups. During an in-class exam session, each student must implement the modifications requested by the instructor.
Each assessment is graded on a scale from 1 to 31. To pass the overall course, students must score at least 18 in each assessment. The final grade is the average of the grades from the three assessments. If the final grade exceeds 30, the mark "30 cum laude" will be recorded.
INF/01 - INFORMATICS - University credits: 9
Laboratories: 48 hours
Lessons: 48 hours
Lessons: 48 hours
Professor:
Mascetti Sergio
Shifts:
Turno
Professor:
Mascetti SergioProfessor(s)