- Docente: Roberto Casadei
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Moduli: Roberto Casadei (Modulo 1) Vittorio Maniezzo (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Cesena
- Corso: Laurea in Tecnologie dei sistemi informatici (cod. 6007)
-
Orario delle lezioni (Modulo 1)
dal 18/09/2025 al 27/11/2025
-
Orario delle lezioni (Modulo 2)
dal 01/12/2025 al 18/12/2025
Conoscenze e abilità da conseguire
Al termine del corso, lo studente conosce le strutture dati di base e gli algoritmi in grado di operare su di esse. Lo studente conosce le principali tecniche per la stima del costo computazionale di algoritmi, ed è in grado di progettare e realizzare soluzioni efficienti per risolvere problemi comuni nell'ambito delle discipline legate alla tecnologia dell'informazione.
Contenuti
Il corso consiste di due moduli, uno propriamente di introduzione agli algoritmi e strutture dati e il secondo di introduzione al linguaggio Python. Gli algoritmi e le strutture dati di interesse saranno presentati con un linguaggio astratto (pseudocodice) indipendente da dettagli sintattici e nelle esercitazioni verranno poi tradotti con riferimento principalmente al linguaggio C. Il linguaggio Python offrirà un'altra prospettiva, utile sia in questo corso e soprattutto in altri corsi successivi.
Gli argomenti trattati durante il corso includono:
- concetti di algoritmi ed efficienza/complessità
- analisi e notazione asintotica della complessità (O-grande)
- algoritmi ricorsivi e metodologia divide-et-impera
- algoritmi di ricerca
- algoritmi di ordinamento
- strutture dati elementari: pile, code, liste
- tabelle hash
- grafi e algoritmi di visita su grafi
- alberi binari di ricerca
Testi/Bibliografia
Il materiale fornito è necessario e sufficiente.
Per approfondimenti, si suggeriscono i seguenti testi:
- Introduzione agli algoritmi e strutture dati. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. McGraw-Hill Education, 2010
- Algoritmi e strutture dati - Astrazione, progetto e realizzazione. Pasquale Foggia, Mario Vento. McGraw-Hill, 2011
Metodi didattici
- Lezioni frontali
- Esercitazioni in laboratorio
In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai Moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, https://corsi.unibo.it/laurea/TecnologieSistemiInformatici/formazione-obbligatoria-su-sicurezza-e-salute in modalità e-learning.
Modalità di verifica e valutazione dell'apprendimento
L'esame consisterà in due parti
- un piccolo progetto (esercizio) relativo al modulo Python, che costituirà criterio di ammissione allo scritto (senza voto), e
- in una prova scritta/pratica al computer contenente domande relative a valutare le conoscenze acquisite ed esercizi pratici di implementazione di algoritmi/strutture dati (in C e/o Python) per la verifica delle competenze. Il voto finale sarà dato dalla somma dei punteggi degli esercizi di tale prova.
Strumenti a supporto della didattica
- Dispense a cura dei docenti
- Esempi di codice e notebook Jupyter
- Esercitazioni (con soluzioni)
Orario di ricevimento
Consulta il sito web di Roberto Casadei
Consulta il sito web di Vittorio Maniezzo