|
|
In questa pagina trovate tutte le informazioni riguardanti il corso di Programmazione Mobile (**PM**).
|
|
|
[Pagina personale UNIMORE del docente](http://personale.unimore.it/Rubrica/Dettaglio/n.capodieci)
|
|
|
Ricevimento: su appuntamento, contattare il docente per email.
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
# Storia
|
|
|
I primi due anni di questo insegnamento (AA 2017/2018 e 2018/2019), i contenuti di questo corso
|
|
|
erano parte dell'insegnamento di Programmazione Distribuita e Mobile (**PDM**).
|
|
|
Gli argomenti trattati erano solamente le basi di Android e le slides utilizzate in quegli anni sono presenti in questo repo.
|
|
|
Per legacy si riporta il sito del corso di quel periodo: [Sito legacy PDM](http://didattica.agentgroup.unimore.it/wiki/index.php/Programmazione_distribuita_e_mobile)
|
|
|
|
|
|
# Argomenti Trattati
|
|
|
## PDM 2017-2018
|
|
|
+ [Introduzione mobile OS](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/01_IntroMobileOS.pdf)
|
|
|
+ [Android: Risorse, Managers e Activities](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/02_RMA.pdf)
|
|
|
+ [Android Intents and Events](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/03_IntentEventi.pdf)
|
|
|
+ [Content Provider](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/04_ContentProvider.pdf)
|
|
|
+ [Multithreading in Android](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/05_MultiThread.pdf)
|
|
|
+ [JNI/JNA e Sviluppo Multipiattaforma](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/06_JNI_JNA_Multiplatform.pdf)
|
|
|
+ [JVM/DVM/ART internals](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/08_JVM_DVM_ART_GC.pdf)
|
|
|
|
|
|
## PDM 2018-2019
|
|
|
+ [Introduzione mobile OS](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/01_IntroMobileOS.pdf)
|
|
|
+ [Android: Risorse, Managers e Activities](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/02_RMA.pdf)
|
|
|
+ [Android Intents and Events](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/03_IntentEventi.pdf)
|
|
|
+ [Content Provider](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/04_ContentProvider.pdf)
|
|
|
+ [Multithreading in Android](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/05_MultiThread.pdf)
|
|
|
+ [JNI/JNA e Sviluppo Multipiattaforma](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/06_JNI_JNA_Multiplatform.pdf)
|
|
|
+ <s>JVM/DVM/ART internals</s>
|
|
|
+ **NEW** [Kotlin](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/07_Kotlin.pdf)
|
|
|
|
|
|
|
|
|
## PM 2019-2020
|
|
|
|
|
|
Modulo Android (~10 lezioni: 20 ore)
|
|
|
+ [Introduzione mobile OS](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/01_IntroMobileOS.pdf)
|
|
|
+ [Android: Risorse, Managers e Activities](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/02_RMA.pdf)
|
|
|
+ [Android Intents and Events](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/03_IntentEventi.pdf)
|
|
|
+ [Content Provider](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/04_ContentProvider.pdf)
|
|
|
+ [Multithreading in Android](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/05_MultiThread.pdf)
|
|
|
+ <s>JNI/JNA e Sviluppo Multipiattaforma</s>
|
|
|
+ [Kotlin](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/ModuloAndroid/07_Kotlin.pdf)
|
|
|
|
|
|
Modulo Computer Grafica (**CG**) per sistemi mobile ed embedded
|
|
|
+ **NEW** [Introduction to CG: an embedded & mobile perspective](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/moduloCG/1_introCG.pdf)
|
|
|
+ **NEW** [GLES on Android Devices](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/moduloCG/2_GLESAndroid.pdf)
|
|
|
+ **NEW** [Basic GL Functions and Tests](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/moduloCG/3_BasicGL.pdf)
|
|
|
+ **NEW** [VBOs, VAOs and GLSL](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/moduloCG/4_VAOVBOGLSL.pdf)
|
|
|
+ **NEW** GL spaces and projections
|
|
|
+ **NEW** Textures in GL and procedural generation
|
|
|
+ **NEW** Lighting Models and Post Processing effects
|
|
|
+ **NEW** GL Compute Shaders
|
|
|
+ **NEW** Physically Based Rendering
|
|
|
|
|
|
# Struttura del repo
|
|
|
+ AndroidExamples
|
|
|
Codice presentato nelle slides sul modulo android. Presentato sottoforma di codice java per activities e sorgenti kotlin
|
|
|
+ AndroidExercises
|
|
|
Slides e soluzioni degli esercizi proposti durante le lezioni (modulo Android)
|
|
|
+ GLESRenderers
|
|
|
Codice presentato nelle slides sul modulo CG. Presentato sottoforma di struttura di progetto con sorgenti java e assets (Modelli 3D, Textures, Shaders). Dall'AA 2019-2020 **in aggiornamento**
|
|
|
+ LineeGuidaSviluppoAndroidApp
|
|
|
Traccia per il progetto sul modulo Android.
|
|
|
+ **ModuloAndroid**
|
|
|
Slides protette da password presentate a lezione sul modulo Android
|
|
|
+ **moduloCG**
|
|
|
Slides protette da password presentate a lezione sul modulo di CG (dall'AA 2019-2020) **in aggiornamento**
|
|
|
|
|
|
# Modalità di esame
|
|
|
Per tutti: si concordi (via mail) con il docente una data per presentare il progetto e/o sostenere l'orale.
|
|
|
Il voto verrà registrato al primo appello utile inserito su esse3.
|
|
|
## Studenti anni 2017-2018 e 2018-2019
|
|
|
Fare riferimento alle modalità di esame del corso di PDM.
|
|
|
+ Qualora si fosse scelto di fare un progetto App per Android:
|
|
|
Si scelga una delle due tracce contenute in [LineeGuidaSviluppoAndroidApp](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/tree/master/LineeGuidaSviluppoAndroidApp)
|
|
|
+ Qualora si fosse scelto di fare il progetto sui contenuti di Kernel Hacking (Prof. [Valente](http://personale.unimore.it/Rubrica/Dettaglio/paolo.valente)) o Sistemi Distribuiti (Prof. [Cabri](http://personale.unimore.it/rubrica/dettaglio/gcabri)):
|
|
|
Verranno fatte delle domande sulle slides trattate nel rispettivo anno di frequenza (vedere le sezioni precedenti).
|
|
|
Per qualsiasi problematica inerente i moduli degli altri docenti, si prega di contattare professori responsabili.
|
|
|
|
|
|
|
|
|
## Studenti dall'AA 2019-2020 in poi
|
|
|
Due possibilità:
|
|
|
+ Si presenta un progetto sui concetti base di Android seguendo la traccia del [2018-2019](https://git.hipert.unimore.it/ncapodieci/mobileprogramming/blob/master/LineeGuidaSviluppoAndroidApp/LineeGuidaPDM18_19.pdf) ed in sede di presentazione del progetto verranno fatte domande sulla parte di CG.
|
|
|
+ Si presenta un progetto sui concetti visti in CG (traccia in fase di definizione) ed in sede di presentazione del progetto verranno fatte domande sulla parte iniziale del modulo su Android.
|
|
|
|
|
|
# Tesi
|
|
|
|
|
|
Nel [sito](https://hipert.unimore.it) del gruppo di ricerca in cui sono inserito vi è una sezione [tesi e tirocini](https://hipert.unimore.it/?page_id=4140).
|
|
|
Se si è interessati ad una delle tesi lì proposte, non esitate a contattare me o il docente di riferimento. Si prega di leggere le FAQ.
|
|
|
Per la parte di computer grafica esiste la possibilità di fare sia tirocini/tesi interne o in azienda: anche in questo caso, contattatemi per saperne di più.
|
|
|
|