Offerta Didattica
ENGINEERING AND COMPUTER SCIENCE
ADVANCED ALGORITHMS AND COMPUTATIONAL MODELS (yearly)
Classe di corso: LM-32, 18 - Classe delle lauree magistrali in Ingegneria informatica
AA: 2019/2020
Sedi: MESSINA
SSD | TAF | tipologia | frequenza | moduli |
---|---|---|---|---|
INF/01 | Affine/Integrativa | Libera | Libera | Sì |
CFU | CFU LEZ | CFU LAB | CFU ESE | ORE | ORE LEZ | ORE LAB | ORE ESE |
---|---|---|---|---|---|---|---|
12 | 8 | 0 | 4 | 96 | 48 | 0 | 48 |
LegendaCFU: n. crediti dell’insegnamento CFU LEZ: n. cfu di lezione in aula CFU LAB: n. cfu di laboratorio CFU ESE: n. cfu di esercitazione FREQUENZA:Libera/Obbligatoria MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli ORE: n. ore programmate ORE LEZ: n. ore programmate di lezione in aula ORE LAB: n. ore programmate di laboratorio ORE ESE: n. ore programmate di esercitazione SSD:sigla del settore scientifico disciplinare dell’insegnamento TAF:sigla della tipologia di attività formativa TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio
Obiettivi Formativi
La Network Science è una disciplina che permette un approccio unificato a problemi molto differenti tra loro (reti sociali online e offline, reti di trasporto/commercio, brain network, interazioni tra proteine, diffusione di epidemie). Obiettivo del modulo è introdurre lo studente allo studio e allo sviluppo autonomo di metodologie per la modellizzazione di vari problemi in termini di reti. Il modulo si articola in tre macroaree: dapprima viene introdotta la programmazione Python, oggi fondamentale per la Network e Data Science, successivamente vengono studiati i principali algoritmi sui grafi e, nella terza parte, vengono studiati i più importanti modelli di reti, sia statici che dinamici. Il modulo si pone lobiettivo di: - Sviluppare competenze per lidentificazione, la modelizzazione e limplementazione mediante un linguaggio di programmazione (Python nello specifico) di problemi riconducibili alla presenza/assenza di interazioni di coppia tra entità. - Acquisire un lessico appropriato alla disciplina che consenta una efficace e precisa comunicazione - Acquisire un metodo di studio adeguato a consentire lapprofondimento delle conoscenze e di tematiche specifiche.Learning Goals
Metodi didattici
Lezioni frontali ed esercitazioni in aulaTeaching Methods
Prerequisiti
E richiesta la conoscenza di un linguaggio di programmazione (preferibilmente, ma non obbligatoriamente, ad oggetti) e dei concetti fondamentali normalmente appresi in un corso come Algoritmi e Strutture Dati.Prerequisites
Verifiche dell'apprendimento
Durante il corso vengono assegnati degli esercizi facoltativi che, in caso di corretta esecuzione, danno diritto ad un bonus sul voto finale. Lo studente deve elaborare un progetto (di cui sono fornite specifiche stringenti) che discuterà allorale. La conoscenza e la comprensione degli argomenti del modulo viene verificata mediante un test a risposta multipla (30 domande, una sola risposta giusta, due distrattori e una risposta palesemente sbagliata, senza penalità).Assessment
Programma del Corso
Programmazione Python: espressioni, operatori, flusso di controllo, funzioni, gestione dellinput/output, gestione delle eccezioni, iteratori e generatori, namespace, moduli, fondamenti della programmazione orientata agli oggetti, definizione delle classi, ereditarietà singola e multipla. Algoritmi: analisi degli algoritmi, operazioni primitive, analisi asintotica. Strutture dati per grafi, esplorazione in profondità e in ampiezza, chiusura transitiva, ordinamento topologico in grafi diretti aciclici, algoritmo di Dijkstra per la determinazione dei cammini minimi, alberi di ricopertura minima: algoritmi di Prim-Jarnik e Kuskal. Network Science: introduzione, grado, grado medio e distribuzione del grado, metriche. Reti random: modello di Erdos-Renyi, distribuzione del grado, concetto di small world, proprietà di invarianza di scala, modello di Barabasi-Albert, modello di Bianconi-Barabasi, correlazione di grado (reti assortative e disassortative), comunità.Course Syllabus
Testi di riferimento: - Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser, Data Structures and Algorithms in Python, Wiley and sons, 2013, ISBN : 978-1-118-54958-2
- Albert Laszlo Barabási, Network Science, disponibile online
- Cormen, Leiserson, Rivest, Stein, "Introduction to Algorithms", third edition, ISBN-13: 978-0262033848
Esami: Elenco degli appelli
Elenco delle unità didattiche costituenti l'insegnamento
Docente: GIACOMO FIUMARA
Orario di Ricevimento - GIACOMO FIUMARA
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Lunedì | 11:30 | 13:30 | Edificio principale dell'ex facoltà di Scienze MM. FF. NN. (secondo piano), blocco dell'ex direzione del Dipartimento di Matematica. Prenotarsi mediante email |
Mercoledì | 11:30 | 13:30 | Edificio principale dell'ex facoltà di Scienze MM. FF. NN. (secondo piano), blocco dell'ex direzione del Dipartimento di Matematica. Prenotarsi mediante email |
Note:
Docente: MASSIMO VILLARI
Orario di Ricevimento - MASSIMO VILLARI
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Martedì | 16:00 | 18:00 | Dipartimento di Ingegneria Blocco B VII Piano. Previa prenotazione per email settimana precedente. |
Giovedì | 16:00 | 18:00 | Dipartimento di Ingegneria Blocco B VII Piano. Previa prenotazione per email settimana precedente. |
Note: