Il programma del corso comprende i seguenti argomenti:
-Rappresentazione di basso livello(rappresentazione di dati e istruzioni)
-Rappresentazione di alto livello(metalinguaggio BNF, linguaggio c)
-Strutture dati elementari(liste , schemi di programmazione iterativa e ricorsiva)
-Introduzione al linguaggio c++
-Introduzione a MATLAB
Enrico Vicario, "Fondamenti di Programmazione: linguaggio c, strutture dati e algoritmi elementari, c++", Editrice Esculapio Bologna, 2011.
Obiettivi Formativi
-Comprensione della struttura e dei principi di funzionamento di un calcolatore.
-Padronanza di una terminologia corretta e dei concetti di base dell'informatica.
-Comprensione della struttura sintattica di un linguaggio.
-Conoscenza del linguaggio c e capacità di sviluppo di programmi.
-Conoscenza basilare di Matlab e c++ e capacità di sviluppo di programmi elementari
Prerequisiti
Il corso è disegnato per studenti che non hanno alcuna conoscenza dell'informatica. Il corso è comunque indirizzato a studenti che hanno capacità di ragionamento logico, attitudine ai processi di conoscenza deduttivi, capacità di attenzione e applicazione ai problemi.
Metodi Didattici
Le lezioni si svolgono prevalentemente con presentazione alla lavagna tradizionale.
Altre Informazioni
Ricevimento Dott.sa Laura Carnevali: giovedì dalle 8:30 alle 10:30. Gli studenti sono comunque pregati di contattare il docente all'indirizzo laura[dot]carnevali[at]unifi[dot]it.
Eventuali comunicazioni da parte del docente saranno pubblicate all'indirizzo:
http://www.dsi.unifi.it/carneval/fondamenti-informatica.html
Modalità di verifica apprendimento
L'esame consiste in una prova scritta sugli argomenti del programma (domande di natura teorica e esercizi di programmazione).
Programma del corso
1.Rappresentazione di basso livello
-Rappresentazione dei dati: codifica posizionale; algoritmi di conversione della base di rappresentazione; interi senza segno;caratteri; interi con segno; valori in virgola mobile.
-Rappresentazione delle istruzioni: linguaggio assembler e linguaggio macchina (istruzioni aritmetiche, di lettura /scrittura in memoria, e di controllo del flusso); esecuzione su un processore;compilazione, assemblaggio e collegamento.
2.Rappresentazione di alto livello
-Definizione di un linguaggio: sintassi; grammatica; albero sintattico; il metalinguaggio BNF; semantica.
-Linguaggio c: tipi, variabili e costanti; operatori ed espressioni;puntatori; array; istruzioni; funzioni; dati strutturati.
3.Strutture dati elementari
-Liste: rappresentazione in forma collegata con puntatori; operazioni di inserimento, ricerca e cancellazione.
-Schemi di programmazione iterativa e ricorsiva.
4.Introduzione al linguaggio c++
-Introduzione alla programmazione a oggetti
-Classi e oggetti; attributi e metodi statici; ereditarietà; polimorfismo e dynamic binding.
5.Introduzione a MATLAB
-Introduzione all'ambiente di lavoro e operazioni di base
-Array e matrici; funzioni predefinite; controllo del flusso.