Non sono richieste specifiche capacità in ingresso
E' richiesta la frequenza obbligatoria
Introduzione: Algoritmi e Programmi
Elaborazione automatica dell'informazione. Algoritmi e programmi. Un linguaggio di programmazione. Il progetto di un programma. La programmazione strutturata. Diagrammi di flusso e pseudocodice.
Rappresentazione dell'informazione
Sistemi di codifica. Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile. Rappresentazione di dati multimediali.
Architettura di un sistema di elaborazione
La struttura di un elaboratore: memoria centrale, unità centrale, funzionamento elementare dell'elaboratore (ciclo macchina). Dispositivi periferici e memorie di massa. Classificazione dei sistemi di elaborazione.
Software di base e Sistemi Operativi
Traduzione ed esecuzione di programmi. Ambiente di Programmazione. Compilatori vs. interpreti. Architettura e funzionalità del Sistema Operativo. Gestione dei processi. Gestione della memoria. Gestione
del file system.
Reti di Calcolatori e Internet
Generalità sulle reti di calcolatori. Reti locali. Reti geografiche. I protocolli di rete. Cenni su Internet e sulle
più diffuse applicazioni di rete.
Il linguaggio di programmazione "C": sintassi e semantica
Istruzioni di Assegnazione. Strutture di controllo. Tipi di dato in C: tipi semplici (int, char, float, double) e
strutturati (array e stringhe, strutture). Il tipo puntatore. Le funzioni. Campo d'azione degli identificatori.
Dichiarazioni e campo d'azione degli identificatori. Variabili locali, globali e statiche. Tecniche di passaggio
dei parametri. La ricorsione. I File: file di testo e file binari. Primitive di accesso ai file.
Algoritmi di ordinamento e ricerca
Ricerca sequenziale e binaria. Algoritmi di ordinamento.
Strutture dati
Strutture dati dinamiche. Allocazione dinamica della memoria. Liste, Pile, Code ed Alberi. Primitive e relative
implementazioni in C. Esempi di programmi.
Dispense e slide del docente disponibili su http://studium.unict.it
La prova in itinere si svolgerà in due parti:
1. Prova teorica di un’ora al PC con 20 quesiti risposta multipla - +1.0 risposta corretta, -0.5 risposta errata (voto on-thefly)
2. Homework - Tre esercizi assegnati individuali nelle ultime settimane del corso. Una per settimana - Ogni esercizio vale 10 punti 3.
Voto finale - Media nelle due prove più eventuale bonus variabile
La prova finale di fine corso comprende una parte teorica (stessa modalità della prova in itinere) e una parte pratica (un esercizio di programmazione) e si sovlgerà nello stesso giorno per una durata complessiva di due ore.