ELABORAZIONE AUTOMATICA DEI DATI - MOD.1

[053EC]
a.a. 2025/2026

Secondo Semestre

Frequenza Non obbligatoria

  • 3 CFU
  • 30 ore
  • ITALIANO
  • Sede di Trieste
  • Obbligatoria
  • Orale
  • SSD SECS-S/06
  • Caratterizzante
Curricula: COMUNE
Syllabus

Gli obiettivi principali del corso sono i seguenti.

Il corso intende fornire alcuni strumenti per un approccio sistematico e scientifico alla programmazione in un linguaggio di calcolo numerico. Durante il corso, per mezzo di alcuni esempi, verrà illustrato come risolvere un modello matematico per mezzo di un tale linguaggio. Durante le lezioni verrà impiegato il linguaggio di programmazione Matlab. Verranno illustrate anche le basi della programmazione ad oggetti in Matlab.

CONOSCENZA E CAPACITA'' DI COMPRENSIONE
Conoscere i fondamenti di un linguaggio di programmazione orientato al calcolo numerico.
Conoscere le principali regole per scrivere un appropriato programma di calcolo numerico e comprenderne l’uso.
Capire come affrontare un modello matematico di un problema per poter trovarne la soluzione in un ambiente di calcolo numerico.

CONOSCENZA E CAPACITA'' DI COMPRENSIONE APPLICATE
Essere capaci di analizzare un semplice problema, trovarne un modello matematico appropriato, costruirne un algoritmo risolutivo e tradurlo in modo efficiente nel linguaggio di programmazione.
Essere capaci di impiegare buone regole di programmazione.

AUTONOMIA DI GIUDIZIO
Analizzare un semplice problema e valutare in autonomia un appropriato modello per la sua risoluzione.
Tradurre autonomamente l'analisi effettuata in un appropriato programma.

ABILITA'' COMUNICATIVE
Saper spiegare le scelte effettuate ed i passi seguiti per risolvere un problema per mezzo della programmazione nel linguaggio di calcolo impiegato.

CAPACITA'' DI APPRENDERE
Saper impiegare le conoscenze acquisite come base per l'apprendimento di ulteriori argomenti, anche più complessi, sull’uso di modelli matematici e sulla loro risoluzione in un linguaggio di calcolo numerico.

Alcuni esempi presentati nel corso saranno in relazione con argomenti di matematica e statistica illustrati nei corsi di base. E'' richiesta inoltre la conoscenza di concetti di base di programmazione e sugli algoritmi. Il corso di Elementi di Informatica è propedeutico.

a) Definizione di algoritmo. Definizione della complessità media e nel caso peggiore. Classi di complessità e relazione tra complessità e incremento della velocità di esecuzione di un algoritmo. Ricerca sequenziale e calcolo della complessità media e nel caso peggiore. Ricerca dei due elementi più piccoli di un vettore e calcolo della complessità di alcuni algoritmi. Ricerca sequenziale in un vettore ordinato e calcolo delle complessità media e nel caso peggiore. Algoritmo di ricerca binaria e sua complessità. Sort per selezione e calcolo della complessità. Merge di vettori e calcolo della sua complessità nel caso peggiore. Ricorsione. b) Introduzione a Matlab L’ambiente Matlab. Identificatori ed espressioni. Operatori matematici. Arrays. Operazioni vettoriali e puntuali. Stringhe ed array di caratteri. Operatori ed espressioni relazionali. Tipo logico ed espressioni logiche. Casting tra tipi. Principali funzioni numeriche. c) Array in Matlab Array in Matlab. Array casuali. Principali funzioni ed operazioni per la creazione e manipolazione di array. Array come argomenti di funzioni. Operazioni numeriche per array e rispettivi operatori. Array logici. Indicizzazione logica. Principali funzioni logiche. Operatori logici, cortocircuitati e non. Prodotto scalare e funzione dot. Uso di tic e toc e di timeit per valutare la velocità di esecuzione di una funzione. d) Programmazione in Matlab Matlab come interprete. Script Matlab. Funzioni input, fprintf, sprintf, display e disp. Funzioni save e load. Definizione e chiamata di funzioni. Argomenti e variabili locali delle funzioni. Ambito e durata delle variabili locali. Uso di funzioni in modalità comando. Variabili globali e persistenti. Copy on write. Istruzioni condizionali. Principali funzioni di tipo “is” in Matlab. Istruzioni di ciclo. Vettorizzazione. Funzioni di base per leggere e salvare immagini. Tipologie di errori. Tracing, debugger e profiler. e) Array di caratteri e stringhe in Matlab Array di caratteri e stringhe in Matlab: uso e principali differenze. Principali funzioni di manipolazione e conversione delle stringhe e degli array di caratteri. f) Array di celle, variabili strutturate, array categorici e tabelle Array di celle, variabili strutturate, array categorici, tabelle: definizione, modalità di creazione e loro impiego. Comma-separated list. Principali funzioni di manipolazione e conversione tra diverse strutture.

Matlab - A Practical Introduction to Programming and Problem Solving - Sixth Edition
Stormy Attaway
Butterworth-Heinemann
ISBN 9780323917506
eBook ISBN: 9780323986113

Computer Programming with Matlab
J. Michael Fitzpatrick and Ákos Lédeczi
ISBN 9780615751139

Documentazione disponibile sul sito della MathWorks: https://it.mathworks.com/

Nella pagina Moodle del corso saranno messi a disposizione gli esempi presentati durante le lezioni ed altro materiale.



Lezioni teoriche alternate con esercitazioni pratiche di applicazione delle nozioni illustrate in laboratorio informatico. Il corso ha una pagina web con materiale didattico, esempi ed esercizi su moodle2.units.it.

Il programma dettagliato sarà reso disponibile nel sito Moodle di ateneo.

Gli argomenti richiesti per sostenere l'esame comprendono tutto il programma del corso. Agli studenti si richiede di avere compreso i contenuti del corso e non solo di averli esclusivamente memorizzati, nonché di saperli impiegare. L'esame, unico per i due moduli, avrà forma orale e pratica dinanzi ad un PC. Per verificare il livello di comprensione potrà essere chiesta l'applicazione delle nozioni presentate nel corso a qualche problema di calcolo o in generale di programmazione, di risolvere qualche esercizio e di applicare i concetti teorici ad alcuni esempi, discutendo le proprie scelte.