Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W001053] - PROGRAMMAZIONE MOBILEMOBILE PROGRAMMING
Emanuele STORTI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM11] INGEGNERIA ELETTRONICA (Curriculum: Electronic Systems for Digital Audio Applications) Master Degree (2 years) - [IM11] ELECTRONICS ENGINEERING (Curriculum: Electronic Systems for Digital Audio Applications)
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 2 - Secondo Semestre
Anno offertaAcademic year: 2021-2022
Anno regolamentoAnno regolamento: 2020-2021
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: C - Affine/Integrativa
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

Italiano

Italian


PREREQUISITI PREREQUISITES

Fondamenti di programmazione; è fortemente auspicabile, ma non indispensabile, la conoscenza di un linguaggio di programmazione ad oggetti e di basi di dati.

Fundamentals of programming; knowledge of an object-oriented programming language and databases is highly desirable, but not essential.


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

La durata del corso è di 72 ore così suddivise:
• Lezioni di teoria: 36 ore
• Esercitazioni: 24 ore
• Brainstorming e seminari: 12 ore

The duration of the course is 72 hours divided as follows:
• Theory lessons: 36 hours
• Exercises: 24 hours
• Brainstorming and seminars: 12 hours


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L’insegnamento ha la finalità di consentire allo studente di acquisire conoscenze in merito alle metodologie, ai modelli e alle tecniche di programmazione per dispositivi mobili. In particolare, verranno prese in considerazione sia la realizzazione di app native che quella di app ibride; in quest’ultimo caso verranno esaminate le varie generazioni di piattaforme proposte sul mercato e verrà illustrata in dettaglio una piattaforma leader del mercato al momento dell’erogazione del corso. Una particolare enfasi verrà posta nella realizzazione di progetti di una certa complessità utilizzando tool differenti in modo che possano emergere le analogie e le differenze esistenti tra le diverse metodologie sia nel modo di condurre i progetti che nel risultato finale ottenuto.


Capacità di applicare conoscenze e comprensione.

Gli studenti del corso verranno raggruppati in team. Ciascun team dovrà, innanzitutto, individuare un contesto applicativo reale di interesse. Successivamente, dovrà effettuare l’analisi dei requisiti per la realizzazione di un’app mobile relativa al contesto applicativo individuato. A questo punto, dovrà progettare e realizzare un’app nativa Android che soddisfi i requisiti individuati. Dopo di ciò dovrà progettare e realizzare un’app ibrida utilizzando la piattaforma di sviluppo di app ibrida spiegata durante il corso che soddisfi gli stessi requisiti dell’app nativa Android, particolarizzandole per dispositivi Android o IoS a propria scelta. Infine, dovrà essere in grado di realizzare un report che indichi analogie e differenze individuate tra le diverse metodologie e le diverse piattaforme basate sulla stessa metodologia, sia nel modo di condurre i progetti che nel risultato finale ottenuto. Durante il corso sono previste delle sessioni di brainstorming.


Competenze trasversali.

Il corso è fortemente basato sulla realizzazione di progetti in gruppo e sul brainstorming. Questo favorisce lo sviluppo di varie competenze trasversali, quali la capacità di lavorare in gruppo, la gestione dei conflitti, la comunicazione efficace, la capacità di ascolto e di sintesi di idee differenti. La necessità, per ciascun gruppo, di individuare un contesto applicativo reale di interesse per cui realizzare le varie app, assieme alla presenza delle sessioni di brainstorming, favorirà, la capacità, da parte degli studenti, di confrontarsi con scenari molto stimolanti, consentendo loro di sperimentare in anticipo un modus operandi tipico del mondo del lavoro


Knowledge and Understanding.

This course aims at allowing students to acquire knowledge on the methodologies, the models and the techniques for programming mobile devices. In particular, it considers both native and hybrid apps. In this last case, it examines the different generations of platforms for realizing hybrid apps proposed on the market and illustrates in detail one of them, which is a market leader when the course is delivered. A particular emphasis will be placed on the realization of quite complex projects to be conducted by means of different tools. In this way, students can experiment the analogies and the differences about the way of carrying out the projects and the final results, which characterize the different methodologies.


Capacity to apply Knowledge and Understanding.

The students of this course will be grouped in teams. First, each team must choose a real application context of its interest. Then, it must perform the requisite analysis concerning the realization of a mobile app handling the chosen application context. After this, it must design and realize a native Android app that satisfies the defined requirements. Then, it must design and realize an hybrid app (by adopting the hyprid app development platform considered during this course) capable of satisfying the same requirements of the native Android app, and must specialize them to Android or IoS devices, at its choice. Finally, it must realize a report illustrating the analogies and the differences detected between the different methodologies and the different platforms based on the same methodology and regarding both the way to carry out projects and the final obtained results. During this course some brainstorming sessions will be performed.


Transversal Skills.

This course is strongly based on the realization of projects to be carried out in groups and on brainstorming. This method favors the development of several transversal skills such as the capability of working in a team, conflict management, effective communication, listening capability and of synthesize different ideas. The necessity, for each group, to determine a real application context of interest for which apps must be realized, along with the presence of brainstorming sessions, will also favor the student capability of dealing with very challenging scenarios. This will allow them to experience in advance a modus operandi typical of the job’s world.



PROGRAMMA PROGRAM

>>Lezioni di Teoria

CONCETTI PRELIMINARI (1.5 CFU)

App native, web app e app ibride
Il linguaggio Kotlin

PROGRAMMAZIONE NATIVA SU ANDROID (5.5 CFU)
Introduzione, Android Studio, Fondamenti delle applicazioni, Activity e layout, gestione degli eventi, lavorare con activity multiple, elementi della UI, operare in background, debugging, persistenza dei dati, distribuzione dell’app

PROGRAMMAZIONE CROSS-PLATFORM SU FLUTTER (2 CFU)
Introduzione al framework, configurazione dell’ambiente di sviluppo, creazione della prima app, ciclo di vita di un’app, interfacce utente, gestione del layout, gestione dei file, gestione delle immagini, gestione di un database

>>Esercitazioni

Esercitazioni e laboratori su Kotlin, Android e Flutter

>>Theory Lessons

PRELIMINARY CONCEPTS (1.5 ECTs)

Native, web and hybrid apps

The Kotlin programming language

NATIVE PROGRAMMING ON ANDROID (5.5 ECTs)
Introduction, Android Studio, Application fundamentals, activities and layouts, handling events, working with multiple activities, UI elements, running in the background, debugging, data persistence, app distribution

CROSS-PLATFORM PROGRAMMING ON FLUTTER (2 ECTs)
Introduction to the framework, configuring the IDE, creation of the first app, app life-cycle, user interface, layout management, management of files, management of images, management of a database

>>Exercises and labs

Exercises and labs on Kotlin, Android and Flutter


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

L’esame prevede la realizzazione di alcuni progetti e una prova orale in cui si discuteranno i progetti realizzati e verranno approfonditi gli aspetti teorici che ad esse si riferiscono. I progetti, da svolgersi in gruppo, richiederanno l’utilizzo di Android e Flutter per realizzare delle app native e delle app cross-platform in un contesto scelto dagli studenti. Durante il corso verranno condotte delle sessioni di brainstorming dove ciascun gruppo presenterà il proprio lavoro e gli altri gruppi potranno intervenire per osservazioni e suggerimenti


Criteri di valutazione dell'apprendimento.

Per superare l’esame lo studente deve dimostrare, attraverso i progetti, di aver compreso i concetti fondamentali del corso e di aver acquisito competenze sia sulla programmazione nativa che sulla programmazione ibrida.
La valutazione massima è attribuita agli studenti che dimostrano un’ottima conoscenza di Android e Flutter, un’ottima capacità di costruire dei progetti che utilizzino tali tool, un’approfondita conoscenza dei contenuti dell’insegnamento, rigore metodologico ed appropriatezza del vocabolario tecnico.


Criteri di misurazione dell'apprendimento.

Viene attribuito un voto in trentesimi con eventuale lode


Criteri di attribuzione del voto finale.

Il voto complessivo dipende principalmente dalla qualità dei progetti e dal contributo che lo studente dimostrerà di aver dato ad essi nonché dalla padronanza sugli argomenti del corso che lo studente dimostrerà durante la prova orale.


Learning Evaluation Methods.

The exam includes the realization of some projects and an oral test in which the realized projects will be discussed in such a way as to deepen the theoretical aspects that refer to them. Projects, to be realized in groups, will require the use of Android and Flutter to realize some native and cross-platform apps in a context chosen by students. During the course several brainstorming sessions will be conducted, where each group will present its project and the other groups can intervene for comments, suggestions, etc.


Learning Evaluation Criteria.

To pass the exam, students must prove, through their projects, that they have understood the fundamental concepts of the course and have acquired skills in both native and hybrid programming.
The highest evaluation is given to students who demonstrate an excellent knowledge of Android and Flutter, an excellent ability to build projects that use these tools, a thorough knowledge of the contents of the course, methodological rigor and appropriateness of the technical vocabulary.


Learning Measurement Criteria.

A vote out of thirty is attributed with possible honors


Final Mark Allocation Criteria.

The overall score depends mainly on the quality of the projects, on the contribution that the student will provide to their realization, as well as on the knowledge of the topics of the course that the student will show during the oral exam.



TESTI CONSIGLIATI RECOMMENDED READING

>>Kotlin

- Bruce Eckel, Svetlana Isakova. "Atomic Kotlin", Mindview LLC, 2021.

- Dawn Griffiths, David Griffths. "Head First Kotlin", O'Reilly, 2019.


>> Android

Ted Hagos. "Learn Android Studio 4 in Kotlin". Apress, 2020.

Dispense fornite dal docente ed altro
materiale didattico disponibile sul sito del corso su https://learn.univpm.it/

>>Kotlin

- Bruce Eckel, Svetlana Isakova. "Atomic Kotlin", Mindview LLC, 2021.

- Dawn Griffiths, David Griffths. "Head First Kotlin", O'Reilly, 2019.


>> Android

Ted Hagos. "Learn Android Studio 4 in Kotlin". Apress, 2020.

Slide decks and other learning material available on the course site on https://learn.univpm.it


E-LEARNING E-LEARNING

No

No


Scheda insegnamento erogato nell’A.A. 2021-2022
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2021-2022

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427