CODICE 101805 ANNO ACCADEMICO 2024/2025 CFU 6 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Questo insegnamento corso riguarda lo sviluppo di applicazioni mobile. Gli studenti impareranno come progettare e creare app mobile utilizzando IDE, framework, linguaggi e tecnologie all'avanguardia. Impareranno come sfruttare le varie funzionalità disponibili sui moderni dispositivi mobili come servizi basati sulla posizione, sensori e gestures. I concetti appresi dagli studenti saranno applicabili a qualsiasi sistema operativo mobile. Tuttavia un focus particolare sarà dato alla piattaforma Android grazie all'utilizzo di dispositivi reali ed emulatori basati su questa piattaforma. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Learning the design and development of mobile applications by using state of the practice IDEs, frameworks, languages, and technologies. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine del corso gli studenti saranno in grado di: installare e configurare gli strumenti di sviluppo di applicazioni mobili comprendere e adottare il modello basato su eventi impiegato nei framework applicativi per dispositivi mobili analizzare e progettare un'esperienza utente adeguata per un'applicazione mobile creare e distribuire un'applicazione utilizzando un framework software mobile progettare, sviluppare, testare ed eseguire il debug di applicazioni mobile utilizzando IDE software specifici e hardware/emulatori sviluppare un prototipo completo di un'applicazione mobile attraverso un'esperienza pratica creare una documentazione dettagliata per un'applicazione mobile tenendo conto delle prospettive sia degli utenti finali che del personale tecnico PREREQUISITI Le seguenti conoscenze si presumono acquisite e costituiscono le basi necessarie per la comprensione degli argomenti del corso e degli esami. Fondamenti di programmazione Object Oriented (in particolare Java) e procedurale Sistemi operativi Basi di dati Concetti base di sviluppo di applicazioni web e networking MODALITA' DIDATTICHE L'insegnamento è una combinazione tra presentazione di concetti teorici, esercitazioni e discussioni. È orientato al dialogo e con un approccio pratico. Agli studenti verranno forniti compiti obbligatori (i laboratori) che dovranno essere completati durante il corso. Alla fine del corso gli studenti devono completare un progetto finale consistente nello sviluppo di un'applicazione mobile e produrre un documento che presenti il lavoro svolto e come le sfide tecniche sono state risolte. PROGRAMMA/CONTENUTO Il programma del corso prevede la presentazione e la discussione dei seguenti argomenti: Course Practical Organization & Introduction to the development of Mobile Applications Introduction to Android, Android Studio set-up and creating the first Android app Android Architecture Logging Views, View Groups, and View Hierarchy Layouts and Event Handling, Buttons and clickable images Activities and Intents: Passing data between activities Activity lifecycle and states App Navigations Receiving Implicit Intents Data Storage Shared Preferences Multithreading in Android and the Android Profiler Receive, Use and Plot Sensors’ Values Activity Recognition Databases for Mobile Apps Introduction to the Final Project Durante il corso verranno proposti diversi laboratori pratici. I laboratori, che costituiscono parte integrante del corso, daranno agli studenti l'opportunità di fare pratica con i concetti e gli argomenti introdotti durante le lezioni. TESTI/BIBLIOGRAFIA https://developer.android.com/ DOCENTI E COMMISSIONI MAURIZIO LEOTTA Ricevimento: Su appuntamento Commissione d'esame MAURIZIO LEOTTA (Presidente) GIANNA REGGIO FILIPPO RICCA (Presidente Supplente) DARIO OLIANAS (Supplente) MARINA RIBAUDO (Supplente) LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica e Computer Science. Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consisterà in una parte scritta (tradizionali domande aperte/chiuse ed esercizi) più la discussione del progetto (cioè lo sviluppo dell'app mobile). Ogni studente sceglierà l'argomento del progetto che preferisce. La proposta progettuale deve essere presentata e approvata dal docente. Lo sviluppo dell'app mobile deve essere completato prima che uno studente possa presentarsi per la discussione finale. Il voto finale sarà assegnato sommando le valutazioni di (1) prova scritta, (2) progetto finale e sua discussione, e, per una piccola frazione, (3) laboratori svolti durante il corso. MODALITA' DI ACCERTAMENTO L'acquisizione delle competenze previste da questo corso sarà valutata attraverso l'esame scritto + il progetto che sono stati accuratamente progettati per consentire al docente di verificare se lo studente è effettivamente in grado di creare un'applicazione mobile. I parametri di valutazione comprendono: la qualità dell'esposizione, l'uso corretto del lessico specialistico, la capacità di ragionare criticamente sulle possibili soluzioni tecniche da adottare e la capacità di utilizzarle in contesti reali.