Calcolo Numerico e Software Didattico (C.d.S. Matematica (LM)) A.A.2025/26
(2^ semestre, 1^ anno)
Esame: prova orale
CFU 6
Docente: Giulio Casciola
Scopo
Conoscenza degli aspetti della matematica computazionale, specificatamente volti alle applicazioni didattiche. Saper utilizzare software didattico e di calcolo scientifico con particolare attenzione a quelli open source.
Contenuto
Richiami di calcolo numerico: aritmetica floating point, approssimazione di dati e funzioni, integrazione numerica, radici di equazioni, sistemi lineari, analisi degli errori, accuratezza e stabilità.
Architetture di calcolo, progettazione di algoritmi, linguaggi di programmazione, programmazione procedurale (coding), testing, progettazione di applicazioni software, librerie di calcolo, installazione, utilizzo e analisi di applicazioni software.
Architetture grafiche, grafica 2D/3D, grafica raster e vector, la matematica per la grafica, librerie grafiche, interfacce grafiche, programmazione ad eventi.
Applicazioni Web per desktop e mobile, HTML5, CSS, JavaScript.
Ambienti software di esempio: Geogebra, Octave/Matlab, LaTex, Maxima, ecc.
Testi Consigliati
- A. Quarteroni, F. Saleri, Calcolo Scientifico esercizi e problemi risolti con Matlab e Octave.
Springer (2008);
Orario delle Lezioni
- Le lezioni inizieranno il 16/02/2026 con il seguente orario:
martedì ore 14:00-16:00 Aula Levi
giovedì ore 11:00-13:00 Aula Levi
venerdì ore 12:00-14:00 Aula Levi (solo per recuperi)
Lezioni e Argomenti trattati
- Ma.17/02/26, ore 14:00-16:00: Aula Levi
Introduzione e informazioni sul corso
(vedi slide in Documenti).
Accesso alle macchine del LAB, aperto Chrome per scaricare il form2526.txt dalla pagina web del corso e aperto Visual Studio Code per modificarlo e salvarlo con il proprio cognome.txt. Spedire il form al docente con subject cnsd2526.
- Gi.19/02/26, ore 11:00-13:00: Aula Levi
Seguendo le slide "Architettura di un Calcolatore e Sistema Operativo"
(vedi slide in Documenti),
si sono ripresi velocemente i concetti più importanti che si possono trovare anche sulla dispensa "Progettazione di Algoritmi e Coding" (vedi dispensa in Documenti).
ESERCITAZIONE 1: Introduzione all'Ambiente Linux (vedi sezione Download Materiale Lab)
Ripetere quanto fatto, sul proprio portatile, nel proprio ambiente/Sistema Operativo (MacOS e/o Windows).
- Ma.24/02/26, ore 14:00-16:00: Aula Levi
Ripresa e completata l'ESERCITAZIONE 1: Introduzione all'Ambiente Linux;
Lasciato come compito di guardare le slide e la dispensa "Progettazione di Algoritmi e Coding".
- Gi.26/02/26, ore 11:00-13:00: Aula Levi
Presentato il video Introduzione al Coding (vedi video in Video e Tutorial)
Seguendo le slide su Progettazione di Algoritmi e Coding si sono richiamati i concetti su operazioni elementari e psudolinguaggio, struttuture fondamentali, fasi di risoluzione di un problema, procedura, strutture dati lista e tabella (vedi slide in Documenti),
Lasciato come compito di guardare la dispensa relativa e di risolvere qualche esercizio lì proposto.
- Ma.3/03/26, ore 14:00-16:00: Aula Levi
Ambiente Octave e Programmazione in linguaggio Octave/MATLAB (vedi slide Octave/MATLAB I Parte in Documenti). Seguendo le slide si è provato l'ambiente Octave, utilizzando VSCode si è scritto un primo codice in linguaggio Octave e lo si è eseguito.
Laciato come compito di svolgere uno degli Esercizi presentati nelle slide e di scivere il relativo codice Octave.
- Gi.5/03/26, ore 11:00-13:00: Aula Levi
Utilizzati gli ambienti Octave e VSCode per implementare uno degli esercizi lasciati come compito.
Riprese e completate le slide sull'Ambiente Octave ed in particolare su function primarie e secondarie e sulla rappresentazione grafica in Octave. Visionato e provato il codice taylor_sin per lo sviluppo polinomiale di taylor della funzione sin(x) con rappresentazione grafica e calcolo dell'errore. Lasciato come compito di guardare il video (su youtube) sullo sviluppo di Taylor (vedi video in Video e Tutorial).
- Ve.6/03/26, ore 12:00-14:00: Aula Levi
Ripreso il video sullo sviluppo di Taylor e discussione. Esaminati alcuni criteri per la progettazione di video didattici (vedi slide Progettazione di Video Didattici in Documenti). Lasciato come esercizio da fare su Octave di modificare la function taylor_sin.m vista la lezione scorsa per realizzare lo sviluppo di Taylor delle funzioni proposte nel video.
Richiami di Calcolo Numerico su Numeri Finiti e Artitmetica Floating Point (vedi Slide Numeri Finiti e Aritmetica Computazionale in Documenti).
- Ma.10/03/26, ore 14:00-16:00: Aula Levi
ESERCITAZIONE 2: Programmazione Scientifica; si sono visionati gli esercizi proposti ed in particolare lo script taylor_sin.m che si era già chiesto di modificare. Utilizzato estemporaneamente Geogebra per il calcolo dei coefficienti dei polinomi di Taylor (comando PolinimioTaylor) delle funzioni presentate nel video sullo sviluppo di Taylor. Rimasto da completare l'esercizio 4. (vedi Esercitazione 2 in Download Materiale Lab)
- Gi.12/03/26, ore 11:00-13:00: Aula Levi
Immagini digitali vettoriali e raster, vantaggi e svantaggi, formati vettoriali, da vector a raster (rasterizzazione) e viceversa (vettorializzazione), rasterizzazione (ciclo di rendering), vettorialzzazione
(vedi Slide su Immagini Vettoriali in Documenti).
Primi info su Inkscape (vedi anche corso online in Video e Tutorial).
- Ma.17/03/26, ore 14:00-16:00: Aula Levi
Seminario sui LLM; prof.Alessandro Lanza
- Gi.19/03/26, ore 11:00-13:00: Aula Levi
Riprese brevemente le slide del seminario sui LLM e commentate insieme.
Curve di Bézier: curve polinomiali in forma parametrica, base polinomiale di Bernstein, curve di Bézier (vedi Slide Curve di Bézier a tratti multi-grado in Documenti).
Aperto e provato il software Inkscape per sperimentare definizione interattiva di una curva di B&ezcutezier (grado 3).
- Ve.20/03/26, ore 11:00-13:00: Aula Levi
Curve di Bézier, proprietà, algoritmo di de Casteljau, suddivisione, applicazione al rendering (algoritmo ricorsivo adattivo), derivata prima e seconda di una curva di Bézier, curve di Bézier a tratti e a tratti multi-grado, tipi di continuità, esempio
(vedi Slide Curve di Bézier a tratti multi-grado in Documenti).
Utilizzato software Inkscape per sperimentare la definizione e modellazione tramite punti di controllo e nodi di una curva di Bézier (grado 3), la suddivisione di una curva di Bézier, e la definizione interattiva di una curva di Bézier a tratti.
Presentato il corso online sulle curve di Bézier e gli esercizi relativi (fatto insieme l'esercizio 1) (vedi sezione "Corso online su Curve di Bézier"). Lasciato come compito di esplorare il corso che fa uso di figure/disegni interattivi e di visionare gli esercizi relativi.
- Ma.31/03/26, ore 14:00-16:00: Aula Levi
ESERCITAZIONE 3: Curve di Bézier cubiche a tratti con il software Inkscape; si sono svolti insieme i primi esercizi proposti e si è lasciato l'ultimo da fare come compito a casa (scaricare sul proprio computer personale Inkscape) (vedi Esercitazione 3 in Download Materiale Lab).
- Gi.9/04/26, ore 11:00-13:00: Aula Levi
ESERCITAZIONE 4: Curve di Bézier a tratti multi-grado con il tool-box anmglib_5.0 in ambiente Octave/MATLAB (vedi Slide in Documenti) ed Esercitazione 4 in
Download Materiale Lab).
- Ma.14/04/26, ore 14:00-16:00: Aula Levi
Ripresa l'Esercitazione 4 e fatti gli esercizi 1 e 5 utilizzando l'AI; visto il disegno di una crf. come curva di Bézier a tratti, l'intersezione, la suddivisione e il join di curve. Lasciato da fare l'esercizio 6.
- Gi.16/04/26, ore 11:00-13:00: Aula Levi
Trasformazioni geometriche; strutture bezier, ppbezier e mdppbezier del toolbox anmglib
(vedi Slide in Documenti). Ripresa e completata l'Esercitazione 4;animazione in Octave/MATLAB, comandi getframe e movie; come esempi vista dimostrazione per animazione e curve su path.
- Ma.21/04/26, ore 14:00-16:00: Aula Levi
Presentazione del software GeoGebra (vedi slide Introduzione a GeoGebra in Documenti).
ESERCITAZIONE 5: Software Didattico GeoGebra (vedi Download Materiale Lab).
Utilizzato GeoGebra per definire un poligono regolare di lato unitario e le rispettive crf. inscritta e circoscritta.
Utilizzato Geogebra per definire un ipocicloide facendo rotolare un crf. piccola internamente ad una crf. grande.
- Gi.23/04/26, ore 11:00-13:00: Aula Levi
Ripresa Esercitazione 5 e visti gli esercizi su cicloide, ipocicloide, epicicloide, curva di Bézier, archi di circonferenza, dimostrazione grafica del teorema di Pitagora.
Proposta dimostrazione dell'area della corona circolare dell'esercizio 7 dell'Esercitazione 4. Lasciato da verificare se in GeoGebra sia possibile realizzare 'testo su tracciato' come fatto in Inkscape e Octave. Lasciato da guardare nel repository di GeoGebra dimostrazioni grafiche del teorema di Pitagora.
- Ve.24/04/26, ore 12:00-14:00: Aula Levi
Ripresi link a pagine web con esempi di GeoGebra e viste alcune dimostrazioni grafiche del teorema di Pitagora.
Introduzione al linguaggio di markup HTML e ai fogli di stile CSS. (vedi Slide HTML e CSS in Documenti).
ESERCITAZIONE 6: Esempi su HTML e CSS (vedi Download Materiale Lab).
- Ma.28/04/26, ore 14:00-16:00: Aula Levi
Ancora sui fogli di stile, font e MathJax; Esercitazione 6: HTML e CSS (vedi Download Materiale Lab);
Primi elementi del linguaggio JavaScript (vedi Slide HTML5, CSS3, JavaScript, canvas e contesto 2d in
Documenti). Visti alcuni codici di esempio su function e cicli in JavaScript e su canvas e contesto 2d (vedi
Esempi dell'Esercitazione 7 in Download Materiale Lab)
- Gi.30/04/26, ore 11:00-13:00: Aula Levi
ESERCITAZIONE 7: riprese le slide su JavaScript, canvas e contesto 2d e visti gli esempi nella cartella cnsd2527_7_js;
elemento canvas, contesto '2d', primitive grafiche, gestione eventi tastiera e mouse, gestione testo.
- Ma.05/05/26, ore 14:00-16:00: Aula Levi
Gestione immagini, animazioni.
Programmazione grafica in JavaScript e contesto 2d
(vedi Slide Programmazione Grafica 2d in Documenti).
Disegno in coordinate floating point, trasformazione window-viewport, esempi: disegno di una poligonale con vertici floating point, disegno di una curva in forma parametrica, curva cardioide per rotazione di crf..
Lasciato come compito di modificare il codice cardioide.html per trovare bug riscontrato, generare la curva per rotazione in senso antiorario e generalizzare il codice per generare epicicloide.
Presentato brevemente il gioco del 15 e la sua storia (lo riprenderemo e vedremo il codice associato).
- Gi.07/05/26, ore 11:00-13:00: Aula Levi
Ancora su alcuni codici JavaScript dell'Esercitazione 7 (cartella cnsd2425_7_js): cardioide.html, fifteen_canvas.html, bezier.html + .js
Esempio di animazione in JavaScript (vedi Slide Animazione in JavaScript: dimostrazione del Teorema di Pitagora in Documenti).
ESERCITAZIONE 8 (cartella cnsd2425_8_js): pitagora0.html + .js (vedi anche il Paper: Il Teorema di Pitagora "senza parole" in Documenti).
- Ve.08/05/26, ore 13:00-15:00: Aula E1 (scuole Ercolani)
Seminario sul software Mathematica tenuto dalla Prof.ssa Giulia Spaletta (vedi notebook in Documenti).
- Ma.12/05/26, ore 14:00-16:00: Aula Levi
Ripresa dimostrazione grafica del teorema di Pitagora e mostrato un progetto realizzato l'anno precedente.
Giochi a due (vedi Slide Giochi a due e Algoritmo Minimax in Documenti): algoritmo Minimax e applicazione al gioco Forza 4 di cui è stata resa disponibile una versione HTML+JavaScript (vedi archivio cnsd2526_8_js.zip).
Slide su linguaggio/formato SVG (vedi Slide SVG (Scalble Vector Graphics) in Documenti).
Il linguaggio/formato SVG, struttura di un file SVG, sistema di riferimento, primitive grafiche e attributi, l'elemento path (vedi archivio cnsd2526_9_svg.zip).
- Gi.14/05/26, ore 11:00-13:00: Aula Levi
Ancora su linguaggio/formato SVG: gruppi, trasformazioni, filtri ed altro.
ESERCITAZIONE 9 (cartella cnsd2425_9_svg e file cnsd2526_9.pdf in Download Materiale Lab): abbiamo svolto alcuni esercizi fra quelli proposti utilizzando i codici/file immagni di esempio in formato svg. In particolare l'esercitazione ha voluto sperimentare il comando path che permette di disegnare con curve di Bézier a tratti di grado 1, 2 o 3 con continuità C0 e/o C1.
È stata effettuata la valutazione delle opinioni degli studenti.
- Ve.15/05/26, ore 12:00-14:00: Aula Levi
Completata Esercitazione 9 su Formato/Linguaggio SVG sperimentando piccole animazioni (vedi codici anim_xxx.svg nella cartella degli esempi)
ESERCITAZIONE 10 Immagini e Disegni in LaTeX con Inkscape e TikZ (vedi archivio latex_inkascape_tikz.zip in
Download Materiali LAB): seguendo il documento la_ink_tikz.pdf si è utilizzato LaTeX con il package graphicx per la gestione di immagini raster e vector; si è utilizzato Inkscape per ritagliare e vettorializzare immagini raster a colori (algoritmo Potrace in Inkscape), quindi per salvare immagini raster e vettoriali e includerle in un documento LaTeX, infine ricompilandolo per generare il documento pdf.
- Ma.19/05/26, ore 14:00-16:00: Aula Levi
Ripreso il documento Immagini e Disegni in LaTeX con Inkscape e TikZ: immagini ibride. Introduzione a TikZ (vedi Slide Il package TikZ di LaTeX in Documenti e i sorgenti in Download Materiali LAB, ed esempi (vedi cartella tikz_esempi nell'archivio latex_inkscape_tikz.zip in Download Materiali LAB).
Visionati alcuni codici di esempio in TikZ e scaricati alcuni esempi dalla homepage di TikZ.
Ripreso e concluso il documento Immagini e Disegni in LaTeX con Inkscape e TikZ; dimostrazione grafica del teorema di Pitagora e testo su immagini in TikZ.
Fine delle Lezioni
Documenti
Download Materiale Lab
Corso online su Curve di Bézier
Sitografia
Video e Tutorial
Modalità d'Esame
Torna alla
home page di Giulio Casciola