Mobile computing

A.Y. 2020/2021
Overall hours
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.
Course syllabus and organization

Single session

Lesson period
First semester
Live online lessons will be available, as specified in the course website. The lessons will also be recorded and will be available on the course website.
Course syllabus
FIRST PART: Fundamentals of Mobile Computing
- Introduction to MC
- OS and developing on mobile devices
- Analysis and design of applications for mobile devices (GUI design and design of the code organization)
- Architectures that includes mobile devices
- Techniques to acquire position and spatio-temporal data management
- Testing, debugging and deploy of apps for mobile devices

SECOND PART: app development with apache cordova.
- Introduction to Javascript
- Development of single-page responsive web apps
- Development with Apache Cordova e PhoneGap
- Interaction with the OS, acquisition and use of position
- Plugins

THIRD PART: app development in Android
- Introduction to Android development
- View development
- Model development
- Controller development
- Managing threads
- Acquiring and using the position
Prerequisites for admission
It is strongly recommended to have passed the exams of Operating Systems, databases and web, networks, Programming 1 and 2.
The student is expected to be able to create an application, possibly in Java and to be able to create dynamic web pages, possibly using HTML, CSS, and JavaScript.
Teaching methods
The part about the fundamentals of mobile computing involves frontal teaching. The development parts include about one-third of hours of frontal teaching and the remaining hours of lab, during which the students work on exercises assigned by the teacher. During some of the lab lessons, the teacher supports the students in developing the 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
There are three tests, one for each part of the program (fundamentals of mobile computing, Android development and Apache Cordova development).

Test for the fundamentals of mobile computing part.
There will be a written exam in January, February and June. The exam will consist in multiple-choice and open questions. In July and September there is an oral exam.

Exams for android and apache-cordova development parts.
The student can choose between two distinct exam modalities.

Modality 1: shared project (suggested for the great majority of students)
During te course the teacher presents a projects that the students are expected to develop. There will be a single project for the two parts (Android and Apache-Cordova).
During a test in the lab, the teacher will ask the student to modify their project. The teacher will hence evaluate the work done during the test.

Modality 2: personalized project.
The student can propose a project to the teacher. When the system is developed, the student present the project with an oral exam.
INF/01 - INFORMATICS - University credits: 9
Laboratories: 48 hours
Lessons: 48 hours
Professor: Mascetti Sergio