Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2015/2016
Tipologia di insegnamento: 
A scelta dello studente
Tipo di attività: 
Opzionale
Corso di afferenza: 
Corso di Laurea triennale (DM 270) in INFORMATICA
Settore disciplinare: 
INFORMATICA (INF/01)
Crediti: 
6
Anno di corso: 
3
Docenti: 
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48

Obiettivi

Il corso si pone l’obiettivo di fornire agli studenti le conoscenze di base per la progettazione e sviluppo di applicazioni su dispositivi mobili, in ambienti wireless. Durante il corso verranno analizzate le problematiche tipiche delle architetture mobili e le possibili soluzioni offerte dal panorama tecnologico attuale. Allo studente saranno fornite conoscenze di dettaglio sulla programmazione Google Android e sui relativi strumenti ed ambienti di sviluppo. E' introdotto il linguaggio di programmazione Kotlin.

Prerequisiti

E' necessario conoscere le basi della programmazione in Java e, in generale, della programmazione orientata agli oggetti. I corsi di Algoritmi e Strutture Dati e Programmazione III (OOP in Java) forniscono esplicitamente questi prerequisiti.

Contenuti

INTRODUZIONE AL MOBILE COMPUTING: Definizione di concetti di Mobile, Wireless, Pervasive, e Nomadic computing.
LE SFIDE TECNOLOGICHE DELLA PROGRAMMAZIONE MOBILE: Limitazioni Hardware/Soft-ware e di comunicazione nei sistemi mobili.
PROBLEMATICHE ED USABILITÀ DI INTERFACCE SU TERMINALI MOBILI.
RETI DI COMUNICAZIONE WIRELESS (CENNI OPERATIVI): WPAN – wireless personal area network, WLAN – wireless local area network, WWAN – wireless wide area network.
ARCHITETTURE DI APPLICAZIONI MOBILI: Analisi delle wireless internet application, smart client application e messaging application.
PROGRAMMAZIONE JAVA AVANZATA: Approfondimenti sui concetti di OO Programming. Classi astratte ed interfacce. Ereditarietà e Polimorfismo.
PROGRAMMAZIONE SU GOOGLE ANDROID: L’ecosistema Android. Componenti e Risorse. Widget e Layout. Gestione Eventi. Il concetto di Intent. Meccanismi di I/O. Gestione del database embedded. Content Providers. Servizi in Android. Location based services. Web Service. Introduzione al linguaggio Kotlin.

Metodi didattici

Lezioni frontali
Seminari
Imitazione di casi reali
Progetti didattici

Verifica dell'apprendimento

L’obiettivo della procedura di verifica consiste nel quantificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati.
La procedura di verifica è indicata precisamente nella piattaforma di e-learning del Dipartimento di Scienze e Tecnologie. In sintesi: a circa 1/3 del corso gli studenti sottomettono una proposta di progetto rafforzata da una presentazione composta da non più di 3 slide e della durata non superiore ai 3 minuti. La proposta può essere individuale o di un gruppo composto da non più di 3 studenti. La proposta viene emendata dal docente, rigettata o assegnata come progetto di esame. A circa 2/3 del corso è organizzata una presentazione dei progetti in cui ciascuno studente o gruppo di studenti illustra lo stato dell’arte del progetto e discute con docenti e altri studenti di potenzialità e debolezze dello stesso. A fine corso è organizzata una presentazione finale che non ha valore di esame ma momento comunicativo del lavoro svolto. Il progetto deve essere rilasciato in open source preferibilmente con licenza Apache 2.0 su di un repository pubblico come, ad esempio, GitHub almeno 2 giorni prima della data di esame e deve essere funzionante online ameno fino alla conclusione dell’esame. La procedura di verifica consiste in un esame orale individuale (60% del voto), la presentazione della parte di progetto di propria competenza (20% del voto), dimostrazione del progetto (20% del voto). Sono previste 2 Prove Intercorso (40% del voto dell’esame orale) + 2 HomeWork (20% del voto dell’esame orale) individuali.

Testi

Bill Phillips, Chris Stewart, and Kristin Marsicano. Android Programming: The Big Nerd Ranch Guide. Addison-Wesley Professional;
RAJ KAMAL: “Mobile Computing”, Oxford University Press.
MARTYN MALLICK: “Mobile and Wireless Design Essentials”, Ed. John Wiley & Sons.
BRUCE ECKEL: “Thinking in Java”

Altre informazioni

Mutuazioni