Subject: PROGRAMMAZIONE MOBILE (A.A. 2021/2022)
Unit Programmazione mobile
Information Technology (lesson)
The training goals are:
- to introduce the issue in the development of distributed and mobile systems
- to present the platforms for mobile devices
- to present the technologies for the development of mobile applications.
At the end of the lectures, students will be able to design and implement mobile applications exploiting several languages and platforms.
These mobile apps will interface with local and/or remote databases, exploit graphic acceleration and run in a multithreaded environment.
Knowledge of object oriented programming,
Basic knowledge of linear algebra.
The contents are developed on two main topics.
First main topic: Software Design and development for mobile devices [about 20 hours].
Starting from an introduction on the history of mobile operating systems, we will then
delve into the details of programming and software development in android systems.
In particular, specific constructs relating to the applications' logic, how data and resources can be managed and the role of the user within the apps will be treated.
Issues related to multithreading in Android and some cross-platform development techniques are also treated in this part.
Second main topic: Computer Graphics (CG) for mobile and embedded systems [about 20 hours]
In this part, basic skills will be provided for the design and development of applications for mobile systems capable of exploiting graphics acceleration to produce three-dimensional scenes. This is made possible by the use of the OpenGLES API and its interaction with the underlying android operating system. After a brief introduction on the basic concepts of computer graphics, we will present shaders, lighting models and everything related to the graphics pipeline of OpenGLES.
The detailed list of the topics covered is available here:
Lessons are supported by slides about theory and exercises to demonstrate theory. The non-attending students can access the lesson slides and the exercise material. Teaching is in Italian. Alternatively and depending on the evolution of the covid situation, in the present academic year the lessons will be carried out remotely, mainly in asynchronous virtual mode but with appointments in virtual synchronous mode for teacher-student discussions and for further information. All technical and organizational information on teaching, will be uploaded on the Dolly platform. The students are invited to register and access Dolly periodically.
The exam consists in the development of a project and an oral discussion. The project relates to the development of a mobile application. The oral discussion will be the presentation of the project and oral questions to verify the understanding of the course contents. More specifically: Two tracks will be provided for the development of the project; a track concerning the first part of the course and another track concerning the second. The student can choose one. The project accounts for 75% of the final grade; the remaining 25% will account for the results from the questions relating to the parts of the course not directly related to the selected project track. Project presentation and the questions will take place within a single exam date. The project code must be delivered to the teacher a few days before the exam date. The duration of the exam is between 30 and 60 minutes. The exam could be carried out in presence or remotely on the Meet platform depending on the evolution of the COVID19 emergency health situation. The final grade is then communicated to the student at the end of the exam.
Knowledge and understanding
The student knows the main development techniques for mobile and embedded systems
Knows the typical constructs of Java and Kotlin SW programming on Android.
Knows the limitations and differences in mobile application development compared to more traditional systems.
Knows the basic concepts of computer graphics for rendering three-dimensional scenes.
Knows the basic concepts of the OpenGL / GLES pipeline
Applied knowledge and understanding
Ability to write relatively complex applications in Android, using different programming languages.
Ability to write simple shader programs to be executed on a mobile GPU.
Ability to manage multithreaded mobile applications.
Autonomy of judgment
At the end of the course, the student will improve his/her skills on
- critical evaluation of the applications designed and implemented.
- discuss the choices made with regards to languages and libraries as design choices.
- predict how the user can act on the designed and implemented mobile applications.
The final oral exam will allow the student to express the concepts learned during the lectures in an appropriate language and support a discussion on the topics covered and the design choices made.
Ability to learn
The activities described, in particular the exercises, allow the student to acquire the tools and the
necessary methodologies to be able to autonomously tackle new problems and updates on topics beyond what has been discussed in the lectures.
Dispense a cura del docente.
Le dispense aggiornate sono reperibili sul sito: