Informazioni generali
- Anno di corso: 1
- Semestre: 2
- CFU: 6
Docente responsabile
Programma del corso
Generalità
Introduzione all'informatica: denizioni di base, algoritmo, rappresentazione dei dati. Architettura di Von Neumann; cenni di storia dell'informatica.
Elementi del linguaggio Matlab
Elementi del linguaggio: identificatori, parole chiave. Costanti numeriche. Rappresentazione dei numeri in virgola mobile. Variabili scalari ed espressioni aritmetiche. Espressioni booleane.
Sintassi del linguaggio Matlab
Espressioni booleane. Strutture di controllo: istruzioni condizionali if/then/else, switch; cicli: for e while. Istruzione break.
Tipi di dati derivati
Vettori e matrici; operatori aritmetici e booleani elemento per elemento; concatenazione di array. Indicizzamento indiretto. Operazioni aritmetiche vettoriali: prodotto di matrici. Cell array e stringhe. Strutture (struct).
Organizzazione del codice
Script e funzioni. Spazio dei nomi e visibilità delle variabili. Regole di passaggio dei dati; funzioni con risultati multipli. Input/output: istruzioni di interazione con i file (fopen/fclose/fprintf/fscanf).
Algoritmi
Esempi di algoritmi: l'algoritmo di Euclide, divisibilitàa, numeri primi. Ricorsione: il fattoriale; "wrapper functions" e "tail recursion".
Grafica
Semplici operatori di grafica in 2D e 3D in Matlab. Diagrammi lineari e logaritmici.
Calcolo numerico
Operatore di divisione per matrici; soluzione di sistemi lineari, problemi ai minimi quadrati, polinomiale. Soluzione di equazioni non lineari con il metodo di bisezione.
Complessità computazionale
Definizione; esempi di complessitàa polinomiale e logaritmica: la ricerca di dati, gli operatori matriciali.
Principi di "problem solving"
Organizzazione degli algoritmi, modularitàa,
operatori ricorrenti di "Folding", visita, costruzione.
Ordinamento
Principali metodi: inserzione, quicksort, mergesort, e loro complessitàa nel caso medio e nel caso peggiore.
Risultati d'apprendimento previsti
Fornire agli studenti i concetti basi dell'informatica, formare la loro capacita di problem solving e dare gli elementi base per la progettazione ed implementazione di algoritmi atti a risolvere problemi ingegneristici. Il corso si basa su MATLAB un linguaggio ad alto livello unito a un ambiente interattivo che consente di risolvere problemi di calcolo tecnico intensivo più rapidamente rispetto ai linguaggi di programmazione tradizionali come C, C++ e Fortran. Gli studenti impareranno a progettare ed implementare soluzioni algoritmiche per la risoluzione di problemi di fisica, matematica e ingegneristici utilizzando Matlab.
Eventuali propedeuticità
Non previste.
Testi di riferimento
- D. Smith: Engineering Computation with MATLAB, Pearson
- Dispense fornite dai docenti
< Prec. | Succ. > |
---|