Fondamenti di Informatica prof. Stefano Marrone a.a. 2016/2017 Introduzione Concetto di elaborazione e di algoritmo, esecutori di algoritmi. Algebra di Boole (cenni). Automi a stati finiti e macchina di Turing. Modello funzionale di Von Neumann, programmi e dati di un elaboratore. Informazione, valore e dato. Codifica e decodifica dei dati: codifica binaria, conversioni di basi decimalebinario (da e verso decimale). Conversioni binario-esadecimale. Elementi di architettura Architettura dei calcolatori: memoria, processore, I/O, bus. Memorie cache. Linguaggio Macchina ed assemblativo. Compilazione ed interpretazione. Sistemi Operativi: funzionalità, struttura e sottoelementi. Il sistema operativo Unix: principali comandi da terminale, editing di file, compilazione C sotto Unix. Programmazione di base Il linguaggio di programmazione C. I dati nella programmazione: concetto di variabile e tipo di dato. Tipo intero (rappresentazione segno e modulo e rappresentazione complemento a due). Tipo reale: sistemi floating point. Tipo booleano. Tipo caratttere. Dichiarazione ed uso delle variabili. Operatori logicoaritmetici. Operatori di flusso di controllo: sequenza, selezione (IF, IF-ELSE, SWITCH), iterazioni (FOR, WHILE, DOWHILE). Array Concetto di array: i vettori come array monodimensionali. Le matrici come array bidimensionali. Algoritmi notevoli: ricerca (sequenziale, binaria) e ordinamento (bubble sort). Argomenti avanzati Introduzione al concetto di puntatore: i puntatori in C: assegnazione ed uso dei puntatori a variabile semplice. Allocazione dinamica di array monodimensionali. Gestione stringhe in C. Procedure e funzioni Concetto di sottoprogramma: procedure e funzioni. Schemi di passaggio dei parametri. Parametri di ingresso/uscita. Ricorsione. Libri di testo consigliati ● Harvey Deitel e Paul Deitel, C. Corso completo di programmazione - Apogeo ● Brian Kernighan e Dennis Ritchie, Il linguaggio C: principi di programmazione e manuale di riferimento - Pearson ● Dino Mandrioli, Elementi di informatica - McGraw-Hill libri Italia ● Dino Mandrioli, Flavio De Paoli, Fondamenti di informatica Copertina - McGraw-Hill libri Italia ● Dispense del docente