ALGORITMI E STRUTTURE DATI
cod. 07563

Anno accademico 2021/22
1° anno di corso - Secondo semestre
Docente
Vincenzo BONNICI
Settore scientifico disciplinare
Informatica (INF/01)
Ambito
Attività formative affini o integrative
Tipologia attività formativa
Affine/Integrativa
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

Obiettivi formativi

L'obiettivo principale del corso è quello di presentare le principali strutture dati e i relativi algoritmi. Inoltre il corso intende fornire allo studente nozioni relative allo studio della complessità computazionale degli algoritmi. Infine il corso mira anche a fornire allo studente la capacità di applicare tecniche di analisi dei problemi per risolvere semplici problemi pratici in modo algoritmico.

Con riferimento agli Indicatori di Dublino:

Conoscenza e capacità di comprensione
Il corso introduce i concetti relativi alle strutture dati e allo studio di algoritmi corretti ed efficienti. Lo studente acquisisce la capacità di studiare la complessità di algoritmi relativi a problemi di varia natura e la capacità di utilizzare strutture dati che permettano una gestione efficiente delle informazioni.

Capacità di applicare conoscenza e comprensione
Le conoscenze teoriche presentate vengono sempre applicate alla risoluzione di problemi specifici. Durante il corso verranno affrontanti esercizi e problemi di natura diversa, con particolare riferimento alla realizzazione di programmi che utilizzino le diverse strutture dati studiate e i relativi algoritmi.

Autonomia di giudizio
Gli esercizi proposti relativamente alla parte teorica svolta a lezione possono essere affrontati individualmente o in gruppo e, spesso, possono essere risolti in modi diversi. Il confronto con i compagni di corso e l'ascolto delle soluzioni proposte da altri, nel lavoro a casa o durante gli svolgimenti in aula, favoriscono lo sviluppo di capacità specifiche per poter chiarire le proprie argomentazioni e individuare strutture comuni tra i diversi approcci.

Abilità comunicative
Le discussioni in aula consentono di migliorare le capacità di comunicazione. Tali discussioni riguardano i metodi per risolvere i problemi proposti, evidenziando vantaggi e svantaggi dei diversi approcci proposti. Lo studente impara a lavorare sia in autonomia che in gruppo.

Capacità di apprendimento
Lo studio delle tecniche algoritmiche di base e la loro applicazione a problemi di natura eterogenea contribuiscono a realizzare negli studenti la capacità di apprendere in modo approfondito e non solo superficiale e ripetitivo. Le conoscenze così acquisite non sono mai rigide e meccaniche, ma sono perfettamente adattabili ad ogni evoluzione e cambiamento di prospettiva e di contesto.

Prerequisiti


Nozioni di base relative all'analisi matematica e alla programmazione.

Contenuti dell'insegnamento

Durante il corso vengono fornite le nozioni di base degli algoritmi e alle strutture dati, con particolare riferimento allo studio della complessità computazionale degli algoritmi e alla progettazione di algoritmi corretti per le diverse strutture dati.

Programma esteso

Introduzione allo studio degli algoritmi e delle strutture dati

Studio della complessità computazionale degli algoritmi e relative nozioni di base

Algoritmi per array più comuni (es. ricerca e ordinamento)

Algoritmi per liste più comuni (es. ricerca e modifica)

Algoritmi per alberi più comuni (es. ricerca e visita)

Algoritmi per grafi più comuni (es. visita e componenti connesse)

Cenni all'analisi della correttezza degli algoritmi

Bibliografia

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduzione agli algoritmi e strutture dati, McGraw Hill, 2010.

C. Demestrescu, I. Finocchi, G. F. Italiano. Algoritmi e strutture dati, McGraw Hill, 2008.

P. Crescenzi, G. Gambosi, R. Grossi. Strutture di Dati e Algoritmi, Pearson, 2006

Metodi didattici

Lezioni frontali ed esercitazioni svolte in aula

Modalità verifica apprendimento

L'esame consiste in una prova scritta in cui viene valuata la conoscenza della parte teorica del corso e la capacità di applicare gli insegnamenti alla risoluzione di problemi pratici.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.scienze@unipr.it
 

Servizio per la qualità della didattica

Manager della didattica:
Dott.ssa Giulia Bonamartini
T. +39 0521 904157
E. servizio smfi.didattica@unipr.it
E. del manager giulia.bonamartini@unipr.it

Presidente del corso di studio

Prof. Luca Lorenzi
E. luca.lorenzi@unipr.it

Delegato orientamento in ingresso

Prof. Luca Lorenzi
E.  luca.lorenzi@unipr.it

Delegato orientamento in uscita

Prof.ssa Chiara Guardasoni
E. chiara.guardasoni@unipr.it

Docenti tutor

Prof.ssa Alessandra Aimi
E. alessandra.aimi@unipr.it

Prof. Luca Lorenzi
E. luca.lorenzi@unipr.it

Prof. Adriano Tomassini
E. adriano.tomassini@unipr.it

Delegati Erasmus

Prof. Leonardo Biliotti
E. leonardo.biliotti@unipr.it

Referente assicurazione qualità

Prof.ssa Alessandra Aimi
E. alessandra.aimi@unipr.it

Tirocini formativi

Prof. Costantino Medori
E. costantino.medori@unipr.it

Referente per le fasce deboli

Prof.ssa Fiorenza Morini
E. fiorenza.morini@unipr.it

Studentessa tutor

Dott. Jacopo Borsotti
E. jacopo.borsotti@studenti.unipr.it