Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[W001053] - PROGRAMMAZIONE MOBILEMOBILE PROGRAMMING
Domenico URSINO
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM11] INGEGNERIA ELETTRONICA (Curriculum: Smart and Secure Communication Networks) Master Degree (2 years) - [IM11] ELECTRONICS ENGINEERING (Curriculum: Smart and Secure Communication Networks)
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 1 - Secondo Semestre
Anno offertaAcademic year: 2019-2020
Anno regolamentoAnno regolamento: 2019-2020
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; è auspicabile, ma non indispensabile, la conoscenza di HTML5 e CSS3

Programming fundamentals; knowledge of HTML5 and CSS3 is desirable, but not indispensable


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 CFU)

App native, web app e app ibride

Richiami di Java

ANDROID (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

XAMARIN (3 CFU)
Introduzione a Xamarin Framework, configurazione dell’ambiente di sviluppo, creazione della prima app in Xamarin, Shared Assets, Portable Class Libraries, ciclo di vita di un’app, interfacce utente su Xamarin.Forms, gestione del layout, Xamarin Views, celle, XAML, MVVM e DataBinding, ListView e CustomCell, WebView, gestione dei file, gestione delle immagini, gestione di un database SQLite, geolocalizzazione, gestione delle mappe, control template, data template



Esercitazioni

Esercitazioni su Android

Esercitazioni su Xamarin

Theory Lessons

PRELIMINARY CONCEPTS (1 ECTs)

Native, web and hybrid apps

Recalls of Java

ANDROID (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

XAMARIN (3 ECTs)
Introduction to Xamarin Framework, configuring the Xamarin IDE, creation of the first Xamarin app, Shared Assets, Portable Class Libraries, app lifecycle, user interface on Xamarin.Forms, layout management, Xamarin Views, cells, XAML, MVVM and DataBinding, ListView and CustomCell, WebView, management of files, management of images, management of an SQLite database, geolocalization, management of maps, control template, data template

Exercises

Exercises on Android

Exercises on Xamarin


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 Xamarin per realizzare delle app native e delle app ibride 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, suggerimenti, etc.


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 Xamarin, 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 Xamarin to realize some native and hybrid 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 Xamarin, 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 score in thirtieths is given, possibly cum laude


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

T. Hagos. Learn Android Studio 3. Apress. 2018.

J. Bennet. Xamarin in Action. Manning Publications. 2018.

Dispense fornite dal docente

Materiale didattico disponibile sul sito https://learn.univpm.it/

T. Hagos. Learn Android Studio 3. Apress. 2018.

J. Bennet. Xamarin in Action. Manning Publications. 2018.

Notes Provided by Professor

Didactic material available on the site https://learn.univpm.it


E-LEARNING E-LEARNING

No

No


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

 


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