ID:
SCV0241
Durata (ore):
56
CFU:
6
SSD:
INFORMATICA
Anno:
2023
Dati Generali
Periodo di attività
Secondo Semestre (19/02/2024 - 31/05/2024)
Syllabus
Obiettivi Formativi
Obiettivo di questo corso è presentare nel dettaglio gli aspetti relativi alla programmazione dei dispositivi mobili. Il corso parte dalla discussione delle architetture dei dispositivi mobili e delle caratteristiche peculiari della programmazione di tali dispositivi. Vengono quindi presentate le più comuni architetture software e viene discusso nel dettaglio il caso di Android. Vengono analizzati i principali framework che costituiscono il sistema Android e i servizi che possono essere integrati all’interno delle applicazioni con particolare attenzione alle API di Google. Vengono quindi presentati esempi di applicazione, sulla base dei quali viene compiuta un’analisi del processo di sviluppo delle applicazioni.
Al termine del corso lo studente
1. possiede le conoscenze necessarie alla comprensione degli aspetti più evoluti del framework di Android, all’utilizzo delle sue componenti e dei servizi. Lo studente ha inoltre le conoscenze necessarie ad affrontare individualmente lo studio di altri framework di sviluppo di applicazioni mobili.
2. è in grado di progettare, sviluppare e testare applicazioni per dispositivi mobili basate su Android e di comprendere i framework disponibili per l’integrazione di servizi.
3. è in grado di scegliere in autonomia di giudizio le soluzioni più adatte alla realizzazione di una specifica applicazione.
4. è in grado di comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un framework di programmazione per dispositivi mobili e di discutere le scelte architetturali alla base dei progetti realizzati.
Al termine del corso lo studente
1. possiede le conoscenze necessarie alla comprensione degli aspetti più evoluti del framework di Android, all’utilizzo delle sue componenti e dei servizi. Lo studente ha inoltre le conoscenze necessarie ad affrontare individualmente lo studio di altri framework di sviluppo di applicazioni mobili.
2. è in grado di progettare, sviluppare e testare applicazioni per dispositivi mobili basate su Android e di comprendere i framework disponibili per l’integrazione di servizi.
3. è in grado di scegliere in autonomia di giudizio le soluzioni più adatte alla realizzazione di una specifica applicazione.
4. è in grado di comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un framework di programmazione per dispositivi mobili e di discutere le scelte architetturali alla base dei progetti realizzati.
Prerequisiti
Lo studente che affronta questo corso deve possedere una conoscenza dettagliata dell’architettura degli elaboratori, della programmazione in linguaggio Java e delle strutture dati fondamentali.
Metodi didattici
Il corso si articola in lezioni frontali (40 ore) che servono a capire cos'è la programmazione dei dispositivi mobili, ed esercitazioni (16 ore) per imparare la programmazione in ambito mobile.
Data la caratteristica fortemente applicativa del corso, le lezioni frontali saranno intervallate da esercitazioni svolte presso un laboratorio attrezzato. Il laboratorio permette una manipolazione concreta degli argomenti trattati a lezione attraverso la possibilità di poter scegliere e decidere la soluzione migliore ad un determinato problema.
La frequenza alle lezioni seguita dallo studio dell'argomento trattato, è fortemente consigliata per poter affrontare l'esercitazione ad essa connessa.
Alcune esercitazioni prevedono una valutazione dell’elaborato fatta dal docente attraverso la piattaforma Moodle. Le valutazioni di queste esercitazioni contribuiscono al voto finale per la prova d’esame.
Data la caratteristica fortemente applicativa del corso, le lezioni frontali saranno intervallate da esercitazioni svolte presso un laboratorio attrezzato. Il laboratorio permette una manipolazione concreta degli argomenti trattati a lezione attraverso la possibilità di poter scegliere e decidere la soluzione migliore ad un determinato problema.
La frequenza alle lezioni seguita dallo studio dell'argomento trattato, è fortemente consigliata per poter affrontare l'esercitazione ad essa connessa.
Alcune esercitazioni prevedono una valutazione dell’elaborato fatta dal docente attraverso la piattaforma Moodle. Le valutazioni di queste esercitazioni contribuiscono al voto finale per la prova d’esame.
Verifica Apprendimento
L’esame si svolgerà in forma scritta, con quesiti formulati in modo da verificare le conoscenze ed i risultati di apprendimento attesi, e attraverso lo sviluppo e discussione di un progetto sviluppato nel framework di Android.
Lo scopo della prova è quello di verificare che lo studente abbia compreso le caratteristiche distintive della programmazione di dispositivi mobili effettuando le giuste scelte architetturali nello sviluppo del progetto. La prova scritta, tramite quiz, potrà essere sostenuta al termine del corso, durante le sessioni d’esame.
Per poter superare l'esame lo studente deve:
• rispondere a circa 20 quiz su argomenti trattati a lezione e resi disponibili tramite la piattaforma Moodle durante la prova d'esame in uno dei laboratori di informatica disponibili. Questa prova consente di ottenere un voto V1 tra 0 e 30 assegnato in automatico allo scadere del tempo a disposizione. La prova è superata con qualsiasi voto totalizzato.
• sviluppare un progetto scelto tra l'insieme dei progetti disponibili o proposto dallo studente. Il progetto dovrà essere concordato con il docente prima di procedere con lo sviluppo. Il progetto deve essere sviluppato interamente con GIT e il link consegnato al docente prima dell'esame. Il voto totale V2 tra 0 e 30 per il progetto dipende dalla qualità del progetto consegnato, da come viene presentato e dalle risposte alle domande fatte dal docente sul progetto. La presentazione del progetto avviene attraverso l'utilizzo di un portatile o PC in cui è installato AndroidStudio e un emulatore di un dispositovo Android. È possibile presentare il progetto dopo aver completato i quiz, indipendentemente dal voto ottenuto in quest’ultima.
Il voto finale è dato dalla media dei due voti V1 e V2 più un eventuale incremento/decremento di un massimo di 5 trentesimi che dipenderà dalla qualità e dal grado di conoscenza del progetto presentato. La prova è superata se il voto finale è maggiore o uguale a 18/30.
Lo scopo della prova è quello di verificare che lo studente abbia compreso le caratteristiche distintive della programmazione di dispositivi mobili effettuando le giuste scelte architetturali nello sviluppo del progetto. La prova scritta, tramite quiz, potrà essere sostenuta al termine del corso, durante le sessioni d’esame.
Per poter superare l'esame lo studente deve:
• rispondere a circa 20 quiz su argomenti trattati a lezione e resi disponibili tramite la piattaforma Moodle durante la prova d'esame in uno dei laboratori di informatica disponibili. Questa prova consente di ottenere un voto V1 tra 0 e 30 assegnato in automatico allo scadere del tempo a disposizione. La prova è superata con qualsiasi voto totalizzato.
• sviluppare un progetto scelto tra l'insieme dei progetti disponibili o proposto dallo studente. Il progetto dovrà essere concordato con il docente prima di procedere con lo sviluppo. Il progetto deve essere sviluppato interamente con GIT e il link consegnato al docente prima dell'esame. Il voto totale V2 tra 0 e 30 per il progetto dipende dalla qualità del progetto consegnato, da come viene presentato e dalle risposte alle domande fatte dal docente sul progetto. La presentazione del progetto avviene attraverso l'utilizzo di un portatile o PC in cui è installato AndroidStudio e un emulatore di un dispositovo Android. È possibile presentare il progetto dopo aver completato i quiz, indipendentemente dal voto ottenuto in quest’ultima.
Il voto finale è dato dalla media dei due voti V1 e V2 più un eventuale incremento/decremento di un massimo di 5 trentesimi che dipenderà dalla qualità e dal grado di conoscenza del progetto presentato. La prova è superata se il voto finale è maggiore o uguale a 18/30.
Contenuti
Le lezioni affronteranno i seguenti argomenti:
Introduzione ai dispositivi mobili (8 h, obiettivo formativo 1)
• Architettura hardware di un dispositivo mobile
• Ambienti di sviluppo e indroduzione ad AndroidStudio
• Caratteristiche distintive della programmazione di dispositivi mobili (usabilità, robustezza, …).
• Versioni Android e Kernel.
• Dalvik VM e ART VM,
• LogCat come sistema di logging
• Tipi di applicazioni in ambiente Android
Elementi di base nella programmazione di dispositivi mobile (32 h, obiettivo formativo 2 )
• Creazione di una HelloWorld App per Android
• Git come sistema di versioning per progetti di applicazioni mobile
• Creazione di una Activity e studio del suo ciclo di vita
• Configurazione e gestione di un evento di tipo onClick nella programmazione event-driven. Listener
• Componenti di una App, Processesi e Task
• Task e Backstack per la vavigazione tra le varie activity di una applicazione
• Risorse di una App Android: Color, Dimension, Internazionalizzazione, etc.
• Gestione dei contenuti di una Activity attraverso l’uso di View e ViewGroup come ad esempio ListView, GridView, RecyclerView, Adapter e Adapter personalizzati.
• Fragments e loro utilizzo.
• Creazione di app con database locale. Esempi con SQLite
• Intent espliciti ed impliciti
• Creazione e gestione di ToolBar, ActionBar, menù
Elementi avanzati nella programmazione di dispositivi mobile (16 h, obiettivi formativi 3 e 4)
• Google maps, Location Based Services, Location providers, Geocoding
• Permessi per l’uso di informazioni sensibili in un dispositivo mobile.
• Firebase per l'autenticazione, analytics, realtime database
• Thread, AsyncTask, Services
Gli argomenti verranno affrontati usando come riferimento il linguaggio di programmazione Kotlin e Java per l’ambiente Android. Ciò nondimeno, molti degli argomenti trattati nel corso sono di validità generale, e le tecniche proposte sono generalmente applicabili con linguaggi diversi.
Introduzione ai dispositivi mobili (8 h, obiettivo formativo 1)
• Architettura hardware di un dispositivo mobile
• Ambienti di sviluppo e indroduzione ad AndroidStudio
• Caratteristiche distintive della programmazione di dispositivi mobili (usabilità, robustezza, …).
• Versioni Android e Kernel.
• Dalvik VM e ART VM,
• LogCat come sistema di logging
• Tipi di applicazioni in ambiente Android
Elementi di base nella programmazione di dispositivi mobile (32 h, obiettivo formativo 2 )
• Creazione di una HelloWorld App per Android
• Git come sistema di versioning per progetti di applicazioni mobile
• Creazione di una Activity e studio del suo ciclo di vita
• Configurazione e gestione di un evento di tipo onClick nella programmazione event-driven. Listener
• Componenti di una App, Processesi e Task
• Task e Backstack per la vavigazione tra le varie activity di una applicazione
• Risorse di una App Android: Color, Dimension, Internazionalizzazione, etc.
• Gestione dei contenuti di una Activity attraverso l’uso di View e ViewGroup come ad esempio ListView, GridView, RecyclerView, Adapter e Adapter personalizzati.
• Fragments e loro utilizzo.
• Creazione di app con database locale. Esempi con SQLite
• Intent espliciti ed impliciti
• Creazione e gestione di ToolBar, ActionBar, menù
Elementi avanzati nella programmazione di dispositivi mobile (16 h, obiettivi formativi 3 e 4)
• Google maps, Location Based Services, Location providers, Geocoding
• Permessi per l’uso di informazioni sensibili in un dispositivo mobile.
• Firebase per l'autenticazione, analytics, realtime database
• Thread, AsyncTask, Services
Gli argomenti verranno affrontati usando come riferimento il linguaggio di programmazione Kotlin e Java per l’ambiente Android. Ciò nondimeno, molti degli argomenti trattati nel corso sono di validità generale, e le tecniche proposte sono generalmente applicabili con linguaggi diversi.
Lingua Insegnamento
Italiano
Altre informazioni
Il docente riceve su appuntamento, previa richiesta via e-mail a nome.cognome@uninsubria.it. Il docente risponde solo alle e-mail firmate e provenienti dal dominio studenti.uninsubria.it.
Corsi
Corsi
INFORMATICA
Laurea
3 anni
No Results Found
Persone
Persone
Ricercatori
No Results Found