Fondamenti di Informatica

  • PDF

Informazioni generali

  • Anno di corso: 1
  • Semestre: 2
  • CFU: 6

Docente responsabile

Alfredo ACCATTATIS

Programma del corso

Generalità

Introduzione all'informatica: de nizioni di base, algoritmo, rappresentazione dei dati. Architettura di Von Neumann; cenni di storia dell'informatica.

Elementi del linguaggio Matlab

Elementi del linguaggio: identi ficatori, 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 gra fica 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

De finizione; 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

Ultimo aggiornamento Mercoledì 21 Ottobre 2020 20:43