Il corso si propone di introdurre lo studente alla progettazione e all'analisi degli algoritmi. Mediante la presentazione delle principali strutture dati e degli algoritmi ad essi relative lo studente maturerà la comprensione del funzionamento degli algoritmi e delle principali tecniche ad essi collegate. Un progetto realizzato in C++ su Unreal Engine permette di mettere in pratica alcuni dei concetti esposti.
Il corso introduce le principali strategie di progettazione di algoritmi e gli strumenti per valutarne la correttezza e le prestazioni. L'obiettivo è lo sviluppo della capacità di formalizzare e risolvere problemi per via algoritmica, e della capacità di analisi e valutazione delle soluzioni.
Il corso introduce le principali strategie di progettazione di algoritmi:
Il corso introduce anche i fondamentali della programmazione in Unreal Engine per lo sviluppo di applicazioni grafiche e interattive.
Complessivamente, l'obiettivo è quello di realizzare una buona conoscenza dei principali algoritmi facenti parte di ogni famiglia, avente come risultato la capacità di impostare la soluzione a problemi computazionali per via algoritmica e analizzarne la correttezza e la complessità per via analitica o empirica.
E' richiesta una buona conoscenza di almeno un linguaggio di programmazione, preferibilmente della famiglia C/C++/Java.
Conoscenze preliminari di calcolo combinatorico, algebra e informatica teorica sono utili per una migliore comprensione del materiale del corso.
Lezioni frontali ed esercitazioni, eventualmente erogate in modalità online.
Progettazione ed analisi di algoritmi
Progettazione e sviluppo in Unreal Engine:
T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein ‐ Introduzione agli algoritmi e strutture dati ‐ 3a Edizione ‐ McGraw ‐ Hill;
R. Sedgewick ‐ Algorithms ‐ 4th edition ‐ Addison Wesley
A. Levitin ‐ Introduction to The Design and Analysis of Algorithms ‐ 2nd edition ‐ Addison ‐ Wesley;
S. Skiena ‐ The Algorithm Design Manual ‐ 2nd edition – Springer;
Ricevimento: Per Robotics Engineering: L'insegnamento è erogato integralmente in lingua Inglese. Per tutte le informazioni relative, si veda la corrispondente sezione in lingua Inglese. Per tutti gli altri corsi: contattare il docente all'indirizzo armando.tacchella@unige.it e consultare la pagina Aulaweb del corso
ARMANDO TACCHELLA (Presidente)
MASSIMO NARIZZANO
ENRICO GIUNCHIGLIA (Presidente Supplente)
https://corsi.unige.it/8719/p/studenti-orario
L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy
Progetto di fine corso (1 progetto, massimo 10 punti), Prova scritta (massimo 20 punti).
Gli studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali devono contattare il docente all’inizio del corso per concordare modalità didattiche e d’esame che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali e forniscano idonei strumenti compensativi. Si ricorda che la richiesta di misure compensative/dispensative per gli esami dovrà essere inviate al docente del corso, al referente della Scuola e al “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” (dsa@unige.it) almeno 10 giorni lavorativi prima della prova, come da linee guida disponibili al link: https://unige.it/disabilita-dsa
Capacità di impostare la soluzione a problemi computazionali per via algoritmica implementando la soluzione con il linguaggio di programmazione C++ capacità di analizzarne la correttezza e la complessità delle soluzioni trovate per via analitica.Capacità di impostare la soluzione a problemi computazionali per via algoritmica e, analizzarne la correttezza e la complessità per via analitica.