domenica 20 maggio 2012     •  Login
 
   
 
   
   
   
 
 
Vai a
Per gli studenti

PROGRAMMA DEL CORSO DI FONDAMENTI DI INFORMATICA (a.a. 08/09) 
Prof. F. Seriani

 

INTRODUZIONE: significato di “informatica”; sistema di elaborazione; computer; hardware e software.

ALGORITMO: introduzione; definizione di problema, istanza, algoritmo; proprieta’ degli algoritmi; risoluzione di un problema ed errori; la metafora dell’ufficio; diagramma di flusso, programma, linguaggio di programmazione; diagrammi di flusso strutturati; equivalenza debole e forte; teorema di Böhm-Jacopini; teorema di Peterson-Kasami-Tokura.

CODIFICHE DEI NUMERI: i sistemi numerici nella storia; il sistema decimale; sistema posizionale; alfabeto e base; numerazione in base b; conversione da base b a 10, da 10 a b, da 2 a 8, da 2 a 16; minimo e massimo rappresentabile di un numero N puro; cenni di operazioni aritmetiche di un numero naturale; numeri relativi (rappresentazione modulo e segno, complemento ad 1, complemento a 2); minimo e massimo rappresentabili; cenni di operazioni aritmetiche di numeri relativi; grandezze fondamentali (bit, byte, kilo, mega, giga).

CODIFICA DEI CARATTERI: ASCII standard ed esteso

CODIFICA DELLE IMMAGINI: bitmap (B/N, colori); concetto di palette; immagini raster.

CODIFICA SEGNALI AUDIO: campionamento (teorema di Nyquist), quantizzazione, codifica.

CODIFICA SEGNALI VIDEO.

ARCHITETTURA DEL COMPUTER: macchina di von Neumann; CPU (ALU, Control Unit, clock, registri); memoria cache; memoria centrale; indirizzamento e caratteristiche delle memorie; altre memorie (ROM, PROM, EPROM); bus di sistema (dati, indirizzi, comandi).

DISPOSITIVI DI I/O: nastri magnetici; dischi magnetici; CD; DVD; porte di I/O.

CENNI SUL SISTEMA OPERATIVO: definizione; scopo e compiti del SO; il SO come gestore di risorse e come macchoina estesa; cenni sull'architettura del sistema operativo.

PROGRAMMAZIONE: cos'è la programmazione;  creazione ed esecuzione di un programma (compilazione, linker, loader); linguaggi compilati e linguaggi interpretati.

INTRODUZIONE AL LINGUAGGIO C: linguaggi imperativi, strutturati e a oggetti; struttura del programma C; buone norme di scrittura; cenni di programmazione ad oggetti.

ELEMENTI DI PROGRAMMAZIONE C: parole chiave; commenti; costanti numeriche; costanti carattere e stringa; identificatori; variabili (operatore assegnamento); qualificatore const; tipi primitivi (char, int, float, double) quantificatori short e long; qualificatori signed ed unsigned; operatori per i diversi tipi primitivi; compatibilita’ fra tipi primitivi; regole di conversione implicita; conversione esplicita (cast); definizione ed inizializzazione variabili; dichiarazione tipi non primitivi (ridefiniti, enumerati).

ISTRUZIONI: operatore di assegnamento esteso ed abbreviato; precedenza ed associativita’ degli operatori; istruzioni di I/O (scanf, printf); istruzioni strutturate (composte, if, switch, while, do...while, for); break e continue; goto.

DATI STRUTTURATI: definizioni ed inizializzazioni di vettori, matrici e stringhe; libreria standard per le stringhe (strcmp, strcat, strcpy, strlen); I/O a caratteri e stringhe (getchar, putchar, gets, puts); record (struct); puntatore; operatore di indirizzo (&) e dereferencing (*); variabili dinamiche (malloc, free); problemi con puntatori (riferimenti pendenti, aree inutilizzabili, aliasing).

FUNZIONI E PROCEDURE IN C: dichiarazione e definizione di una funzione; parametri formali ed attuali; passaggio dei parametri (legame per valore ed indirizzo); variabili locali e globali; effetti collaterali; cenni sulla ricorsione; parametri dalla linea di comando (argc, argv).

FILE: file standard di I/O (stdin, stdout, stderr); file di testo; apertura e chiusura (fopen, fclose); lettura (fscanf, fgetc, fgets); scrittura (fprintf, fputc, fputs); fine del file (feof).

RETI DI COMPUTER: vantaggi; tipi di reti; modello ISO/OSI; layer, protocollo, peer process; header e trailer; Internet Protocol Suite.

TCP/IP: funzioni dell’ IP; indirizzamento IP; DNS; funzioni del TCP; porte di comunicazione.

POSTA ELETTRONICA: protocolli (POP, IMAP, SMTP); messaggi di testo; standard MIME; nuove funzionalita’.

WEB: multimedialita’, ipertesto e ipermedia; www (http, html); URL; linguaggi di marcatura (html); plug-in; Java; data streaming.

 

Testi di approfondimento:

  • Introduzione all’informatica in C (Piero Demichelis, Elio Piccolo, McGraw-Hill);
  • Programmare in C (S. Gottfried, McGraw-Hill); versione inglese: Schaum's Outline of Programming with C, Ed. Paperback;
  • Linguaggio C (B. Kernighan, D. Ritchie, Jackson Libri); versione inglese: C Programming Language (2nd Edition) Ed. Paperback
Link interessanti
Scarica il file pdf