Obiettivo del corso è fornire conoscenze sulle principali strutture di dati (pile, code, liste, alberi, grafi) e sugli algoritmi fondamentali per la loro gestione. Lo studente apprenderà gli strumenti formali per la valutazione rigorosa della complessità computazionale degli algoritmi e dei problemi. È un obiettivo del corso anche l’acquisizione di familiarità con i principali approcci algoritmici (divide et impera, greedy, incrementale, top-down, bottom-up). Per le esercitazioni e le prove d'esame del corso verrà utilizzato il linguaggio Python.
scheda docente
materiale didattico
Strutture dati elementari, operazioni e relative implementazioni
Approfondimento sugli algoritmi di ordinamento
Tabelle hash, alberi e grafi
Sviluppo di algoritmi in linguaggio Python
Esempi ed applicazioni di algoritmi implementati linguaggio Python
(nota: è lo stesso libro di testo del corso di "Fondamenti di Informatica e Programmazione" del primo anno)
Programma
Richiami sulla complessità computazionaleStrutture dati elementari, operazioni e relative implementazioni
Approfondimento sugli algoritmi di ordinamento
Tabelle hash, alberi e grafi
Sviluppo di algoritmi in linguaggio Python
Esempi ed applicazioni di algoritmi implementati linguaggio Python
Testi Adottati
Kenneth A. Lambert. Programmazione in Python. Apogeo. 2° ed. 2018(nota: è lo stesso libro di testo del corso di "Fondamenti di Informatica e Programmazione" del primo anno)
Modalità Erogazione
Lezioni in aulaModalità Valutazione
È previsto lo svolgimento di una prova scritta