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
SSDTAFtipologiafrequenzamoduli
INF/01Affine/IntegrativaLiberaLibera
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
128049648048
Legenda
CFU: 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

Network Science allows a unified approach to very different problems (online and offline social networks, transport/trade networks, brain networks, protein interactions, epidemics spreading). The objective of the module consists in making acquainted the student with the study and the autonomous development of methodologies to model various problems using Network Science. The module is composed of three main sections: first, Python programming is introduced which is fundamental for Network and Data Science; second, the most important graph algorithms are studied and, third, most famous network models, both static and dynamic, are presented. The module has three main goals: - introduce the student to the employment of structured methodologies to model various situations in terms of graphs - show a series of solutions to problems typical of the graph theory - increase the proficiencies of the student in terms of both analysis and coding of algorithms

Metodi didattici

Lezioni frontali ed esercitazioni in aula

Teaching Methods

Lectures and classwork

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

The student must know the basics of Programming and Algorithms (or equivalent)

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

During the term some elective exercies will be issued. Their correct and timely execution will give some bonus on the final grade. Each student has to develop a final project (according to some strict requirements) which will be discussed during the oral examination. Knowledge and comprehension of module contents will be verified through a multiple choice test (30 questions, one correct answer, two misleading wrong answers, one evidently wrong answer, no penalty for wrong answers).

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

Python programming: expressions, operators, control flow, functions, I/O management, exeptions management, iterators and generators, namespaces, modules, object oriented programming fundamentals, class definition, single and multiple inheritance. Algorithms: algorithms analysis, primitive operations, asyntothic analysis. Data structures for graphs, depth and breadth exploration, transitive closure, topological ordering in acyclic directed graphs, Dijkstras algorithm for shortest path, minimum spanning trees: Prim-Jarnik and Kruskal algorithms. Network Science: introduction, degree, average degree and degree distribution, metrics. Random networks: Erdos-Renyi model, degree distribution, small world phenomenon, scale invariance, Barabasi-Albert model, Bianconi-Barabasi model, degree correlation (assortative and disassortative networks), communities.

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

Elenco delle unità didattiche costituenti l'insegnamento

Docente: GIACOMO FIUMARA

Orario di Ricevimento - GIACOMO FIUMARA

GiornoOra inizioOra fineLuogo
Lunedì 11:30 13:30Edificio 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:30Edificio 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

GiornoOra inizioOra fineLuogo
Martedì 16:00 18:00Dipartimento di Ingegneria Blocco B VII Piano. Previa prenotazione per email settimana precedente.
Giovedì 16:00 18:00Dipartimento di Ingegneria Blocco B VII Piano. Previa prenotazione per email settimana precedente.
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti