DOCENTE: Domenico Talia
OBIETTIVI E ORGANIZZAZIONE DEL CORSO
Obiettivo del corso e' di presentare i concetti di base dell'informatica nonche' descrivere e sperimentare tecniche e metodologie per l'utilizzo di strumenti informatici. Gli argomenti trattati durante il corso sono: l'architettura dei sistemi informatici, elementi di programmazione, strumenti per la gestione dei dati. Come quasi sempre accade nei corsi introduttivi di informatica, una parte rilevante del corso e' dedicata allo studio di un linguaggio di programmazione. In questo corso il linguaggio di programmazione utilizzato e' il linguaggio C. Oltre ad essere studiato, il linguaggio C e' oggetto di esercitazioni in cui vengono studiate tecniche di programmazione in C in ambiente Windows.
CONTENUTI DEL CORSO
1. Introduzione
Cosè l'informatica, concetto di algoritmo, esempi di algoritmi, proprietè degli algoritmi, architettura dei sistemi di elaborazione, hardware, software, software di base, software applicativo, firmware, applicazioni informatiche.
2. Architettura di un calcolatore
Macchina di von Neumann, unità di elaborazione (ALU, PC, registri e clock), memoria centrale, bus, unità di ingresso/uscita, tipologie di periferiche, modelli alternativi.
3. Codifica binaria dell'informazione
Informazione come sequenza di numeri, codifica dei numeri, numeri binari, ottali ed esadecimali, operazioni aritmetiche e logiche, operatori logici e algebra di Boole, codifica di caratteri, di immagini e di suoni, formati ASCII, UNICODE, GIF, JPG, TIFF, RAM ed MP3.
4. Il linguaggio del calcolatore
Linguaggio macchina, formato ed esecuzione delle istruzioni, codice istruzione, codice operandi, principali istruzioni: load, store, read, write, jump, halt, rappresentazioni dei dati in memoria, modalità di indirizzamento: immediato, diretto, indiretto, con indice, il linguaggio assembler, esempi di programmi.
5. Codifica di algoritmi in pseudo-codice
Codifica di algoritmi ad alto livello, compilatori ed interpreti, sintassi e semantica, dichiarazione di variabili e istruzioni fondamentali, esempi di programmi in psuedo-codice C, dati strutturati, costruzione incrementale di programmi.
6. Introduzione al linguaggio C
BNF: un formalismo per la sistassi dei linguaggi, la BNF del C, struttura dei programmi C, dichiarazioni di costanti e variabili, parte istruzioni, espressioni e condizioni, istruzioni composte, input/output, libreria standard
7. Tipi di dati in C
Tipi semplici predefiniti, tipi short, int, float, double, char, unsigned, long, tipi definiti dall'utente, tipi strutturati: array monodimensionali e multidimensionali, tipizzazione e conversione di tipi in C, cenni a struct, union e puntatori.
8. Strutture di controllo
Costrutti if, switch, cicli for e do-while, istruzioni break e continue, strutture di controllo di altri linguaggi. Esempi di algoritmi di ricerca e ordinamento.
9. Archivi e basi di dati
Memorie di massa, nastri, dischi e dischetti, organizzazione degli archivi, basi di dati, livelli di astrazione in una base di dati, modelli e linguaggi per la gestione dei dati.
10. Basi dati relazionali e strumenti di produttività
Il modello relazionale dei dati: relazioni, tuple, attributi, operazioni sui dati, algebra relazionale, il linguaggio SQL, la presentazione dei dati, foglio elettronico, basi di dati nel foglio elettronico.
ESERCITAZIONI
Sistema operativo MS-DOS, ambiente Windows, programmazione C in ambiente MS Visual C, uso di strumenti di produttività individuale.
LIBRI DI TESTO
ESAME
L'esame consiste di una prova pratica ed una prova orale. Durante la prova pratica verrà svolta la scrittura ed esecuzione su calcolatore di un esercizio di programmazione in C (vedi esempi). Nella prova orale verranno discussi i vari argomenti del corso.
Il docente
Martedì dalle ore 17.00 alle 19.00.