Dati Generali
Periodo di attività
Primo Semestre (25/09/2023 - 12/01/2024)
Syllabus
Obiettivi Formativi
Conoscenze avanzate di geometria computazionale, morfologia matematica e analisi delle Immagini con riferimento agli algoritmi geometrici (orientamento, localizzazione, poligonalizzazione, triangolazione, ricerca dell’inviluppo convesso, ecc.).
Prerequisiti
Geometria, algebra lineare, programmazione.
Metodi didattici
Lezioni frontali e attività di laboratorio.
Verifica Apprendimento
Esame orale con prove pratiche di programmazione ed illustrazione del codice svolto a lezione al fine verificare il grado di conoscenza della materia raggiunto, la proprietà di linguaggio rispetto agli argomenti e la capacità espositiva.
Testi
• M. Berg, M.van Kreveld, M. Overmars, O. Schwarzkopf, Computational Geometry. Algorithms and Application, Springer (2000).
• J. O. Rourke, Computational Geometry in C, Cambridge University Press (1998).
• F.P. Preparata, M.I. Shamos, Computational Geometry. An Introduc- tion, Springer (1985).
• Tony Gaddis, Introduzione a Python, casa editrice Pearson
• Cay Horstmann, Rance D. Necaise, Concetti di Informatica e fondamenti di Python, Maggioli Editore – Apogeo
• John V. Guttag, Introduzione alla programmazione con Python, casa editrice Egea
• M. J. Laszlo,Computational Geometry and Computer Graphics In C++, Pearson
• J. O. Rourke, Computational Geometry in C, Cambridge University Press (1998).
• F.P. Preparata, M.I. Shamos, Computational Geometry. An Introduc- tion, Springer (1985).
• Tony Gaddis, Introduzione a Python, casa editrice Pearson
• Cay Horstmann, Rance D. Necaise, Concetti di Informatica e fondamenti di Python, Maggioli Editore – Apogeo
• John V. Guttag, Introduzione alla programmazione con Python, casa editrice Egea
• M. J. Laszlo,Computational Geometry and Computer Graphics In C++, Pearson
Contenuti
Introduzione alla Geometria Computazionale. Cenni storici. Problemi geometrici. Esempi di algoritmi geometrici. Richiami sul linguaggio Python. Regole sintattiche e variabili. Tipizzazione. Funzioni in Python. Stringhe e conversioni. Le f-string. Input da tastiera. I compound statement. Il costrutto selezione in Python. Operatori relazionali. Assegnazione condizionale. Il costrutto iterazione in Python. Cicli con contenitore e con contatore. Il contenitore range. I costrutti for e while. Uso dei flag e dei contatore. Condizioni di esistenza e universalità. Subroutine, procedure e funzioni in Python. L'istruzione pass. Il valore di ritorno. Funzioni annidate. Parametri posizionali e nominali. Funzioni lambda. Le liste. Metodi di lista. L'operatore slice. I metodi split e join. Liste e funzioni. Le tabelle in Python. Pile e code mediante le liste. La list comprehension. Funzioni di ordine superiore. Le tuple. Metodi di tupla. Conversioni tra liste e tuple. La tuple comprehension. Restituzione di valori multipli in una funzione. Gli insiemi. Metodi di insieme. La set comprehension. I dizionari. Metodi dei dizionari. La dictionary comprehension. Strutture dati complesse. La gestione dei file in Python. La gestione delle eccezioni. Tipologie di eccezioni. La programmazione ad oggetti. le classi in Python. Costruttori ed istanze. La parola chiave self. Variabili di classe e variabili statiche. Ereditarietà, incapsulamento e polimorfismo. I decoratori in Python. Metodi statici. Metodi speciali. Overloading degli operatori. Problemi computazionali e algoritmi. Correttezza di un algoritmo. Invarianti di ciclo e di classe. Tipologie di algoritmi. Modelli di calcolo. La Random Access Machine. Stima della complessità computazionale. Notazioni O grande, Omega e Theta. Classi di complessità. Analisi dei principali algoritmi di ordinamento. La rappresentazione degli interi e dei float al pc. Richiami di geometria piana. Spazi affini. Area segnata. Orientamento e collinearità di una terna di punti. I package in Python. La classe gcPunto. Poligoni. Il Teorema di Jordan per i poligoni. Ordinamenti del piano. Angoli interni convessi. Semipiani. Triangolabilità dei poligoni. Diagonali di un poligono. Area di un poligono. La classe gcPoligono. Posizione di un punto rispetto a un segmento. Intersezione di due segmenti. La classe gcSegmento. Point location nei poligono convessi e nei poligoni semplici. I bounding container. La classe gcBoundingContainer. Insiemi convessi. Caratterizzazione dei poligoni convessi. Calcolo dell'inviluppo convesso (Graham scan e Gift wrapping). Intersezione di due poligoni. Algoritmi di triangolazione (per rimozione delle orecchie e per ricerca delle diagonali). Richiami di teoria dei grafi. Il grafo duale di una triangolazione. La libreria matplotlib e il modulo pyplot. Il package NetworkX. Il Problema della Galleria d'Arte. Il Teorema di Fisk. Soluzione dell'Art Gallery Problem.
Lingua Insegnamento
Italiano
Corsi
Corsi
MATEMATICA
Laurea Magistrale
2 anni
No Results Found
Persone
Persone
No Results Found