Docente/i:
Giordano Lanzola
Cristiana Larizza
Denominazione del corso: Telemedicina
Codice del corso: 503189
Corso di laurea: Bioingegneria
Sede: Pavia
Settore scientifico disciplinare: ING-INF/06
L'insegnamento è caratterizzante per: Bioingegneria
Crediti formativi: CFU 12
Sito web del corso: http://telemed.unipv.it
Obiettivi formativi specifici
Il corso fornisce un quadro generale su metodologie, tecnologie ed architetture per la realizzazione di sistemi distribuiti per l'elaborazione delle informazioni, con particolare riguardo all'ambito della Telemedicina.
Esso consta di due moduli:
A) Fondamenti di Telemedicina:
Tratta le competenze per l'analisi, la progettazione e lo sviluppo di applicazioni software e le lezioni si alternano allo svolgimento di esercizi e discussione di elementi di codice.
B) Progetto di Sistemi di Telemedicina:
Prevede la presentazione di un ambiente per lo sviluppo di applicazioni distribuite e si forniscono piccole applicazioni come base per illustrare l'integrazione di moduli distinti. Esso richiede altresi' agli Studenti di sviluppare di un prototipo di applicazione da realizzare in un piccolo gruppo di lavoro.
Programma del corso
Il corso, collocato al primo anno della Laurea Magistrale in Bioingegneria riunisce sapientemente aspetti metodologici e tecnologici. Esso prevede, sin dal suo inizio, una stretta alternanza fra lezioni in cui vengono esposti concetti metodologici (i.e. Object Orientation, Design Pattern, UML Modeling, Elaborazione Concorrente e Sistemi Distribuiti, Agenti, etc) ed esercitazioni in cui lo Studente è chiamato ad applicarli elaborando gli esempi proposti e sviluppando un proprio progetto.
Parte A: Il Linguaggio Java e l'Obiect Orientation
Vengono effettuati alcuni brevi richiami sui concetti basilari relativi alla programmazione. Successivamente viene introdotto il Linguaggio Java e si procede con la sua collocazione nell'ambito di un paradigma di sviluppo Object Oriented. Verranno anche illustrati gli strumenti che Java mette a disposizione per la realizzazione di Interfacce Grafiche insieme alle loro problematiche di utilizzo.
Parte A: UML Modeling
Durante il corso verranno presentate metodologie e strumenti che costituiscono ormai degli standard consolidati per la progettazione dei sistemi informatici. Si introdurranno i principali diagrammi previsti dal linguaggio UML che verrà successivamente richiesto di applicare nella fase di modellizzazione del proprio progetto.
Parte A: Metodologie di Sviluppo
La rassegna si completerà con un accenno ai principi che presiedono la modellazione Object Oriented del software. Verranno inoltre introdotti alcuni Design Patterns, che saranno illustrati attraverso alcuni esempi in aula, e che rappresentano uno dei principali approcci all'applicazione del modello Object Oriented nell'ingegneria del software.
Parte B: Ambiente di Sviluppo
Si fornirà una illustrazione dell'ambiente software appositamente realizzato per il corso e che verrà utilizzato dagli Studenti per sviluppare i loro prototipi di Sistemi Distribuiti Multi Agente. Sono altresì previsti alcuni richiami alla programmazione ad oggetti con particolare riferimento al Linguaggio Java volti ad approfondire aspetti funzionali alla successiva realizzazione del progetto.
Parte B: Programmazione Concorrente
Verranno illustrati i principi di Programmazione Concorrente, riprendendo quanto eventualmente gia' visto nella parte A). Verra' introdotto il concetto di Processo e confrontato con quello di Thread. Infine verranno illustrate le primitive che devono essere utilizzate per coordinare l'esecuzione dei vari Thread presenti all'interno di un sistema con elaborazione concorrente.
Parte B: Esercitazioni in Aula
E' previsto l'uso di alcune applicazioni di esempio con il duplice scopo di analizzarne il codice e illustrare le funzionalità della libreria applicativa che consente di interagire con il broker per lo scambio dei messaggi di interazione.
Tuttavia esse costituiranno anche la base per un richiamo all'uso del linguaggio di programmazione Java e ai principi di progettazione del software.
Dettaglio dell'impegno didattico
Nota: il seguente prospetto fornisce una stima dell'impegno effettivamente richiesto e sostituisce quello riportato in altra sezione che per inefficienza del sistema informativo deve invece essere imputato esclusivamente alla didattica frontale.
Il corso prevede (Mod A + Mod B):
40(A) + 15(B) ore di lezione frontale (5.3(A) + 2(B) CFU)
10(A) + 30(B) ore di esercitazione assistita (0.7(A) + 2(B) CFU)
45(B) ore per lo svolgimento di un progetto (2 CFU Solo Mod. B)
Prerequisiti
Il corso richiede una conoscenza elementare (ma solida) relativa ai concetti fondamentali connessi con la programmazione dei computer (i.e. variabili, istruzioni, funzioni/metodi e strutture di controllo) abbinate alla capacita' di sapere codificare semplici algoritmi. Ulteriori requisiti riguardano la conoscenza delle metodologie e tecnologie per l'analisi e la progettazione di database relazionali e la capacita' di sapere scrivere correntemente semplici interrogazioni in linguaggio SQL. Tutti questi prerequisiti vengono acquisiti attraverso moduli precedenti. Completano il profilo dello Studente una conoscenza basilare relativa all’uso del PC e della navigazione su Web, oltre a quel mix di capacita' progettuale, abilita' logica, acume e senso critico che dovrebbero peraltro rappresentare un requisito essenziale per potersi collocare proficuamente in una Scuola di Ingegneria.
Tipologia delle attività formative
Lezioni (ore/anno in aula): 90
Esercitazioni (ore/anno in aula): 0
Attività pratiche (ore/anno in aula): 0
Materiale didattico consigliato
Durante il corso viene fornito materiale didattico costituito da dispense e codice. E' tuttavia opportuno acquisire alcuni dei seguenti testi sia come riferimento che per ulteriori approfondimenti.
Cay Horstmann & Gary Cornell. Core Java, Volume I - Fundamentals (8th edition). Prentice-Hall. ISBN: 978-0132354769.
Cay Horstmann. Object-Oriented Design & Patterns. John Wiley & Sons , Inc. ISBN: 978-0-471-74487-0 (450 Pagine, 2006)
.
Martin Fowler. UML Distilled Third Edition. Addison Wesley. ISBN: 0-321-19368-7 (192 Pagine, Settembre 2003).
Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition). Prentice Hall. ISBN: 978-0131489066 (736 Pagine).
James Gosling, Bill Joy, Guy Steele, Gilad Bracha. The Java Language Specification (Third Edition). Addison Wesley. ISBN 0321246780 (688 Pagine, Giugno 2005).
Modalità di verifica dell'apprendimento
Parte A: "Fondamenti"
Prova di soglia in lingua inglese relativa ai concetti fondamentali del paradigma ad Oggetti in ambiente Java e successiva prova consistente nello sviluppo di elementi di codice basato su specifiche fornite in sede di esame. E' necessario il superamento di entrambe per partecipare al progetto previsto dalla parte B.
Parte B: "Applicazioni"
Gli Studenti formano gruppi per realizzare un progetto che sfrutti metodologie e tecnologie apprese nella parte A integrate con quanto previsto dalla parte B. Le specifiche sono fornite dall'intero gruppo tramite una relazione ed utilizzando diagrammi UML. Il lavoro viene quindi diviso tra i componenti e ciascuno sviluppa la propria parte. In sede di valutazione puo' essere richiesto di apportare modifiche al progetto.
Esito
Il voto viene assegnato al termine della prova a progetto e consiste in una valutazione complessiva dei risultati ottenuti dal candidato su tutte le prove previste dai due moduli.
|