Programming mobile devices

Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2022/2023
Year: 
2
Academic year in which the course will be held: 
2023/2024
Course type: 
Compulsory subjects, characteristic of the class
Credits: 
6
Period: 
Second semester
Standard lectures hours: 
56
Detail of lecture’s hours: 
Lesson (40 hours), Laboratory (16 hours)
Requirements: 

The student dealing with this course must have a detailed knowledge of the architecture of the computers, of programming in the Java language and of the fundamental data structures.

The exam consists of a set of questions formulated to verify the knowledge and expected learning outcomes through developing and discussing a project developed in the Android framework.
The test aims to verify that the student has understood the distinctive programming features for mobile devices by making the right architectural choices in developing the project.
The written test, via online quiz, can be taken at the end of the course, during the exam sessions.
To pass the exam, the student must:
• answer about 20 quizzes on topics covered in class and made available through the Moodle platform during the exam session in one of the available computer labs. This test allows the student to obtain a V1 grade between 0 and 30, assigned automatically when the time available is up. The test is passed with any grade achieved.
• develop a project chosen from the set of projects available or proposed by the student. The project must be agreed with the teacher before proceeding with the development. The project must be developed entirely with GIT, and the link must be delivered to the teacher before the exam. The total grade V2 between 0 and 30 for the project depends on the quality of the delivered project, how it is presented, and the answers to the questions asked by the teacher about the project. The presentation of the project takes place through a laptop or PC in which AndroidStudio and an Android emulator are installed. It is possible to present the project after completing the quizzes, regardless of the grade obtained in the latter.

The final mark is given by the average of the two marks, V1 and V2, plus a possible increase/decrease of a maximum of 5 points which will depend on the quality and degree of knowledge of the project presented. The test is passed if the final grade is greater than or equal to 18/30.

Assessment: 
Voto Finale

The objective of this course is to present in detail the aspects related to the programming of mobile devices. The course starts from the discussion of the architectures of mobile devices and the peculiar characteristics of the programming of these devices. The most common software architectures are then presented, and the Android case is discussed in detail. The main frameworks that make up the Android system and the services that can be integrated within the applications with particular attention to the Google API, are analyzed. Application examples are then presented, based on which an analysis of the application development process is performed.
At the end of the course the student
1. has the knowledge necessary to understand the most advanced aspects of the Android framework, the use of its components and services. Furthermore, the student has the necessary knowledge to deal individually with other mobile application development frameworks.
2. is able to design, develop and test applications for mobile devices based on Android and to understand the frameworks available for service integration.
3. is able to choose independently the solutions best suited to the implementation of a specific application.
4. is able to fully communicate the characteristics of a programming framework for mobile devices and to discuss the architectural choices underlying the completed projects.

The lessons will address the following topics:

Introduction to mobile devices (8 h, educational goal 1)
- Hardware architecture of a mobile device
- Development and production environments at Android Studio
- Distinctive features of mobile device programming (usability, robustness, ...).
- Android and Kernel versions.
- Dalvik VM and ART VM,
- LogCat as a logging system
- Types of applications in the Android environment

Essential elements in mobile device programming (32 h, educational objective 2)
- Creating a HelloWorld App for Android
- Git as a versioning system for mobile application projects
- Creation of an Activity and study of its life cycle
- Configuration and management of an onClick event in event-driven programming. Listener
- Components of an App, Processes, and Task
- Task and Backstack for the navigation among the various activities of an application
- Resources of an Android App: Color, Dimension, Internationalization, etc.
- Management of the contents of an Activity using View and View Groups such as ListView, GridView, RecyclerView, Adapters, and Adapters.
- Fragments and their use.
- Creating apps with a local database. Examples with SQLite
- Explicit and implicit intents
- Toolbar creation and management, ActionBar, menu

Advanced elements in mobile device programming (16 h, training objectives 3 and 4)
- Google Maps, Location Based Services, Location providers, Geocoding
- Permissions for the use of sensitive information on a mobile device.
- Firebase for authentication, analytics, real-time database
- Thread, AsyncTask, Services

Topics will be addressed using Kotlin and Java programming languages for the Android environment. Nevertheless, many of the topics covered in the course are of general validity, and the proposed techniques are applied to different languages.

Convenzionale

The course is divided into lectures (40 hours) which are used to understand what the programming of mobile devices is, and exercises (16 hours) to learn programming in the mobile environment.
Given the highly applicative characteristic of the course, the lectures will be interspersed with exercises carried out in an equipped laboratory. The laboratory allows concrete manipulation of the topics covered in class through the possibility of being able to choose and decide the best solution to a given problem.
Attendance at the lessons followed by the study of the topic is strongly recommended to be able to face the exercise connected to the topic.

Some exercises require an evaluation phase made by the teacher through the Moodle platform. The assessments of these exercises contribute to the final grade for the exam.

The teacher receives students by appointment, upon request sent by e-mail to ignazio.gallo@uninsubria.it. The teacher responds only to e-mails signed and coming from the students.uninsubria.it domain.

Professors

Borrowers