Programmazione distribuita e mobile

Da Agent Group.
Versione del 19 mar 2024 alle 16:28 di Admin (discussione | contributi) (Creata pagina con "Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di '''Programmazione distribuita e mobile (9 CFU)''' per il Corso di Laurea Magistrale in '''Informatica''' a partire dall'AA 2017/2018. = News = ==Ultime news== La lezione di martedì 2 ottobre 2018 non si terrà per permettere agli studenti di frequentare [http://morejobs.unimore.it MoreJobs] ==Vecchie news== =Informazioni sul docente= Image:docente.png|left|1...")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Programmazione distribuita e mobile (9 CFU) per il Corso di Laurea Magistrale in Informatica a partire dall'AA 2017/2018.


News

Ultime news

 La lezione di martedì 2 ottobre 2018 non si terrà per permettere agli studenti di frequentare MoreJobs

Vecchie news

Informazioni sul docente

File:Docente.png

Prof. Giacomo Cabri

Dipartimento di Scienze Fisiche, Informatiche e Matematiche

Università di Modena e Reggio Emilia, Via Campi 213/B - 41125 Modena

Telefono 0592058320 - Fax 0592055216

giacomo.cabri@unimore.it

Orario delle Lezioni

Orario dell'AA 2018/19

Le lezioni dell'AA 2018/19 inizieranno il 24 settembre 2018 con il seguente orario:

  • Lunedì dalle 14 alle 16 in aula M2.4 presso Matematica
  • Martedì dalle 11 alle 13 in aula M2.4 presso Matematica
  • Venerdì dalle 11 alle 13 in aula M2.4 presso Matematica

Orario dell'AA 2017/18

Le lezioni dell'AA 2017/18 inizieranno il 25 settembre 2017 con il seguente orario:

  • Mercoledì dalle 9 alle 11 in aula M2.5 presso Matematica
  • Giovedì dalle 11 alle 13 in aula M2.3 presso Matematica
  • Venerdì dalle 14 alle 16 in aula M2.1 presso Matematica

Obiettivi formativi

Gli obiettivi dell'insegnamento sono:

  • introdurre le problematiche dello sviluppo dei sistemi distribuiti e dei sistemi mobili
  • presentare le tecnologie per lo sviluppo di applicazioni distribuite
  • presentare le piattaforme per i dispositivi mobili
  • presentare le tecnologie di sviluppo di applicazioni mobili


Contenuti dell'insegnamento

Programmazione distribuita

  • Dalle reti di comunicazione ai sistemi distribuiti, sistemi operativi di rete e distribuiti, modelli di interazione tra componenti distribuiti
  • Comunicazione e sincronizzazione distribuita, clock logici e fisici, mutua esclusione distribuita
  • Tecnologie ad oggetti per lo sviluppo di applicazioni distribuite, problematiche
  • Esempio: Java RMI
  • Sistemi a multiagente: definizioni, problematiche, modelli decisionali ed esempi d'applicazione
  • Autonomic Computing: definizioni, problematiche e applicazioni.

Programmazione mobile

  • Progettazione software su Android: dalle problematiche di progettazione alla gestione di memoria ed energia
  • Architetture per lo sviluppo su multipiattaforma
  • Virtual Machine per dispositivi mobili
  • Un esempio: Android


Verifica dell'apprendimento

La verifica di svolgerà attraverso lo sviluppo di un progetto e una prova orale. Il progetto consisterà nello sviluppo di una applicazione distribuita o mobile, in accordo con il docente, e nella produzione della relativa documentazione. Il progetto potrà essere svolto anche in gruppo nominando un project leader. La prova orale consisterà nella presentazione del progetto e in domande per la verifica della comprensione del programma svolto.

Linee guida per lo sviluppo di una App Android (A.A. 17/18)

Linee guida per lo sviluppo di una App Android (A.A. 18/19)

Appelli

Le date degli appelli sono disponibili sul sito ESSE3 (http://www.esse3.unimore.it).

Testi Consigliati

Dispense a cura del docente.

Libri consigliati:

  • A. Tanenbaum, M. van Steen, Distributed Systems - Principles and Paradigms, Prentice Hall


Slide dell'insegnamento

In questa pagina sono riportati alcuni lucidi usati a lezione.

  1. Introduzione ai sistemi distribuiti / Introduction to distributed systems
  2. Comunicazione e sincronizzazione / Communication and synchronization
  3. Sistemi di naming / Naming systems
  4. File system distribuiti / Distributed file systems
  5. Oggetti distribuiti / Distributed objects
  6. Remote Procedure Call (RPC)
  7. Remote Method Invocation (RMI)
  8. Introduzione ai sistemi mobili / Introduction to mobile systems
  9. Android managers, resources and activities
  10. Android intents and events
  11. Android content provider - contprovexample.zip
  12. Android threads - allegatoandroidthreads.zip
  13. JNI_JNA And Multiplatform development
  14. Kotlin - allegatokotlin.zip
  15. JVM DVM ART and GC



  1. Il block layer e lo scheduler BFQ
  2. Compilazione kernel
  3. Collaudo ed analisi delle tracce
  4. Uso di git
  5. Kernel OOPS
  6. Creazione e sottomissione commit
  7. Miscellanea
  8. Esame

Seminari

Esercizi presentati a lezione

  1. Socket exercises
  2. RPC exercises - solutions
  3. RMI exercises
  4. Exercises on Android managers, resources and activities - solutions
  5. Exercises on Android explicit intents and events - solutions
  6. Exercises on Android implicit intents and advanced events
  7. Exercises on Android multithread - attachments - solutions



Strumenti Software

Si indicano di seguito gli strumenti software che si utilizzano durante l'insegnamento e si indica dove e' possibile reperirli.

Programmazione socket in Java: è sufficiente un JDK di qualsiasi versione; si raccomanda un JDK >= 1.5

RMI: è necessario un JDK di versione >= 1.2; si raccomanda un JDK >= 1.5



Esercitazioni di laboratorio