Indice
Programmazione e Algoritmica - Corso B
PER QUESTO CORSO FARE RIFERIMENTO ALLA PAGINA GOOGLE-CLASSROOM
Anno accademico 2020/2021
Sospensione della Didattica in presenza
La didattica frontale di questo Corso di Studi e' sospesa fino a gennaio 2021. Di conseguenza:
Durante il primo semestre, tutte le lezioni si svolgeranno telematicamente nelle ore indicate in orario, in questa AULA VIRTUALE (dedicata al Corso B).
Istruzioni generali sull'accesso telematico:
Il ricevimento studenti sarà fatto telematicamente su appuntamento, mandando una mail alla docente.
Orario Lezioni
Orario delle Lezioni | ||
---|---|---|
Lunedì | 9-11 | AULA VIRTUALE |
Martedì (Nel primo semestre lo slot del Martedì verra' usato solo occasionalmente) | 9-11 | AULA VIRTUALE |
Mercoledì | 9-11 | AULA VIRTUALE |
Obiettivi del Corso
L’insegnamento introduce lo studente ai principi, agli strumenti e alle tecniche della programmazione di applicazioni informatiche, acquisendo la capacità di risolvere problemi computazionali. Le tecniche di base per calcolare il costo computazionale degli algoritmi permettono di progettare e implementare soluzioni efficienti ai problemi computazionali, qualora possibile: la difficoltà computazionale di alcuni problemi viene illustrata attraverso la discussione di alcune classi fondamentali (P vs NP).
Programma del Corso
* Struttura di un calcolatore e ambienti di sviluppo.
* Analisi asintotica del costo computazionale.
* Rappresentazione delle informazioni.
* Problemi computazionali e algoritmi di risoluzione.
* Controllo delle operazioni e del flusso all’interno di un programma.
* Problem solving su array.
* Algoritmi per ordinamento e ricerca.
* Strutture di dati dinamiche. Liste. Code e pile.
* Tabelle hash e dizionari.
* Blocco e struttura dei programmi. Funzioni, passaggio dei parametri.
* Ricorsione, divide et impera, programmazione dinamica, algoritmi greedy.
* Algoritmi per alberi e grafi.
* Cenni di calcolabilità e di classi di complessità.
Modalità e Appelli di Esame
Per sostenere l'esame è necessario registrarsi: registrarsi qui
Libri di testo
[CLRS] T. Cormen, C. Leiserson, R. Rivest, C. Stein. Introduzione agli algoritmi e strutture dati. McGraw-Hill, Terza edizione, 2010.
[Plotkin] G.Plotkin. A Structural Approach to Operational Semantics, 1981.
Programma del corso
- Struttura di un calcolatore e ambienti di sviluppo. Analisi asintotica del costo computazionale.
- Rappresentazione delle informazioni. Problemi computazionali e algoritmi di risoluzione.
- Controllo delle operazioni e del flusso all’interno di un programma. Problem solving su array.
- Blocco e struttura dei programmi. Funzioni, passaggio dei parametri. Ricorsione,
- Algoritmi per ordinamento e ricerca.
- Strutture di dati dinamiche. Liste. Code e pile. Tabelle hash e dizionari.
- Divide et impera, programmazione dinamica, algoritmi greedy.
- Algoritmi per alberi e grafi.
- Cenni di calcolabilità e di classi di complessità.