From Agentgroup
Jump to: navigation, search
(Slide dell'insegnamento)
(Verifica dell'apprendimento)
 
(18 intermediate revisions by 2 users not shown)
Line 5: Line 5:
  
 
==Ultime 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==
 
==Vecchie news==
Line 22: Line 22:
  
 
=Orario delle Lezioni=
 
=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==
 
==Orario dell'AA 2017/18==
Line 58: Line 64:
 
=Verifica dell'apprendimento=
 
=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 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.  
+
La prova orale consisterà nella presentazione del progetto e in domande per la verifica della comprensione del programma svolto.
  
 +
[[Media:LineeGuidaPDM17_18.pdf| Linee guida per lo sviluppo di una App Android (A.A. 17/18)]]
 +
 +
[[Media:LineeGuidaPDM18_19.pdf| Linee guida per lo sviluppo di una App Android (A.A. 18/19)]]
  
 
=Appelli=
 
=Appelli=
Line 90: Line 99:
 
# [[Media:09PDM-ManagerRisorseActivity.pdf| Android managers, resources and activities]]
 
# [[Media:09PDM-ManagerRisorseActivity.pdf| Android managers, resources and activities]]
 
# [[Media:10PDM-IntentEvent.pdf| Android intents and events]]
 
# [[Media:10PDM-IntentEvent.pdf| Android intents and events]]
# [[Media:11PDM-ContentProvider.pdf| Android content provider]]
+
# [[Media:11PDM-ContentProvider.pdf| Android content provider]] - [[Media:contprovexample.zip| contprovexample.zip]]
# [[Media:12PDM-AndroidThreads.pdf| Android threads]]
+
# [[Media:12PDM-AndroidThreads.pdf| Android threads]] - [[Media:allegatoandroidthreads.zip|allegatoandroidthreads.zip]]
 +
# [[Media:13PDM-JNI_JNA_AndMultiplatformDevelopment.pdf|JNI_JNA And Multiplatform development]]
 +
# [[Media:KotlinPW.pdf|Kotlin]] - [[Media:allegatokotlin.zip|allegatokotlin.zip]]
 +
# [[Media:14PDM-JVM_DVM_ART_GC.pdf|JVM DVM ART and GC]]
  
  
<!--
 
# [[Media:06-ClassiAstratteIntefacceJava.pdf|Classi astratte e interfacce]]
 
# [[Media:07-IOJava.pdf|I/O in Java]]
 
# [[Media:08-JavaGUI.pdf|GUI in Java]]
 
# [[Media:09-Applet.pdf|Applet in Java]]
 
# [[Media:10-GenericsJava.pdf|Generics in Java]]
 
# [[Media:11-NovitaJ2SE5.pdf|J2SE5]]
 
-->
 
  
<!--
 
# [[Media:Classi.pdf|Classi di memorizzazione in C]]
 
# [[Media:TabelleMenuLayout.pdf|Tabelle, menu e layout in Java]]
 
# [[Media:GenericsJava.pdf|Generics in Java]]
 
# [[Media:NovitaJ2SE5.pdf|Novit&agrave; di Java 2 SE 5]]
 
 
# [[Media:JavaClassAsInterfacce.pdf| Classi Astratte e Interfacce in Java]]
 
-->
 
  
 +
# [[Media:block-layer-bfq.txt|Il block layer e lo scheduler BFQ]]
 +
# [[Media:Note-compilazione.txt|Compilazione kernel]]
 +
# [[Media:Note-test-tracce.txt|Collaudo ed analisi delle tracce]]
 +
# [[Media:Note-git.txt|Uso di git]]
 +
# [[Media:Note-oops.txt|Kernel OOPS]]
 +
# [[Media:Creazione-sottomissione-commit.txt|Creazione e sottomissione commit]]
 +
# [[Media:miscellanea.txt|Miscellanea]]
 +
# [[Media:esame.txt|Esame]]
  
 
==Seminari==
 
==Seminari==
Line 124: Line 128:
 
# [[Media:Es10-Android2.pdf|Exercises on Android explicit intents and events]] - [[Media:Es10-solutions.zip | solutions]]
 
# [[Media:Es10-Android2.pdf|Exercises on Android explicit intents and events]] - [[Media:Es10-solutions.zip | solutions]]
 
# [[Media:Es10-Android3.pdf|Exercises on Android implicit intents and advanced events]] <!--  - [[Media:Es10-solutions.zip | solutions]] -->
 
# [[Media:Es10-Android3.pdf|Exercises on Android implicit intents and advanced events]] <!--  - [[Media:Es10-solutions.zip | solutions]] -->
# [[Media:Es11-Android4.pdf|Exercises on Android multithread]]  <!-- - [[Media:Es10-solutions.zip | solutions]] -->
+
# [[Media:Es12-Android4.pdf|Exercises on Android multithread]]  - [[Media:Es12-attachments.zip | attachments]] - [[Media:Es12-solutions.zip| solutions]]
 +
 
  
  

Latest revision as of 11:35, 10 December 2018

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

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

Iscrizione.png

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

Lucidi.png

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

EserciziLezione.png
  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

Strumenti.png

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