Data Ora Argomenti
16/2/2015 11 00 Descrizione generale del corso, modalità di esame. Generalità sui sistemi informatici, componenti hardware e software, classi di calcolatori. Dispositivi di ingresso, uscita, memoria, CPU. Tastiere e mouse, monitor, stampanti, plotter. Memorie permanenti e volatili. Parametri caratteristici, parametri di qualità, costi. Tipi di cpu, architetture e velocità. Bus di sistema. 
17/2/2015 11 00 Classificazione dei sistemi informatici. Processo di bootstrap. Dispositivi per la connessione in rete di calcolatori. Generalità sul sistema operativo; Windows e metafora della scrivania virtuale.  
18/2/2015 11 00 Connessioni basate su modem, linea commutata e Internet Access Provider. Reti locali, schede di rete e mezzi di trasmissione: doppini e fibre ottiche. Protocolli di rete: tcp/ip, numeri ip e indirizzi, formazione gerarchica degli indirizzi. Protocollo http e pagine web, browser e server; protocollo ftp, protocollo smtp; concetto di server e di client. Cenni sul linguaggio html. 
23/2/2015 11 00 Introduzione all'utilizzo del sistema di sviluppo Eclipse. Processo di sviluppo di un programma: problema, algoritmo, linguaggio di programmazione, codifica. Introduzione al concetto di algoritmo. Introduzione al concetto di variabile.
24/2/2015 11 00 Struttura di un programma C: variabili e istruzioni, incolonnamento. Istruzioni di assegnamento. Espressioni aritmetiche e logico-relazionali. Sequenze e ripetizioni. Ripetizioni basate sul conteggio. Esempi di algoritmi elementari. Calcolo delle medie aritmetiche e geometriche. Calcolo del fattoriale. Calcolo dell'esponenziale con sviluppo in serie di Maclaurin. Esempio del programma di calcolo della media aritmetica. Istruzioni di ripetizione: concetti generali, inizializzazione. Variabili di tipo int e double e loro casi di utilizzo. Istruzioni di input e output: Printf e scanf, uso dei "segnaposto" %d e %lf, uso del segnale di "a capo" \n.
25/2/2015 11 00 Codifica delle informazioni, tipi di files. Rappresentazione di valori numerici in ANSI C. Rappresentazione di interi in codifica binaria, complemento a 2 per rappresentare numeri interi negativi. Overflow. Rappresentazione di numeri in virgola mobile. Differenze tra i numeri in virgola mobile di ANSI C e i numeri reali. Precisione ed errore di rappresentazione. Proprietà aritmetiche delle operazioni in virgola mobile.
2/3/2015 11 00 Operatori logici ed espressioni logiche e leggi di De Morgan. Sequenza di istruzioni. Cicli con acquisizione di dati da input e messaggi di interfaccia utente. Definizione di "blocco" di istruzioni. Istruzione do ... while. Istruzione do...while e confronto con while. 
3/3/2015 11 00 Esempi comparati di utilizzo. Istruzione for e confronto con le altre istruzioni per la specifica di cicli. Istruzione for per la ripetizione con conteggio. Cicli innestati. Incremento e decremento. Istruzioni if e Assegnamento con espressione += e simili.
4/3/2015 11 00 Lezione annullata per AlmaOrienta
9/3/2015 11 00 if...else per la specifica di blocchi condizionali. If innestati. Scambio dei valori di due variabili. Esempi di utilizzo. Esempio dell'equazione di secondo grado
10/3/2015 11 00 Esempi di trattamento di sequenze di valori. Ricerca di massimo. Utilizzo combinato delle varie istruzioni.
11/3/2015 11 00 La persistenza dei dati. Il tipo FILE, fopen e fclose. Relazioni tra files in un programma C e files del sistema operativo. Modalità di apertura r, w, a. Input e output formattato: fscanf e fprintf. fscanf, fprintf. Esempi di letture e scritture di files. Esempio del calcolo della media da file.  
16/3/2015 11 00 Introduzione al concetto di astrazione funzionale. Scrittura e uso di funzioni in C. Passaggio di parametri per valore. Tipo di una funzione. Istruzione return.  Uso di funzioni per il calcolo di valori. Parametri formali e parametri effettivi. Esempi. 
17/3/2015 11 00 Funzioni con parametri riferimento, motivazione e tecnica di utilizzo. Operatore * per i parametri formali riferimento; operatore & per i parametri effettivi riferimento. Funzioni void. Prototipo di una funzione e regole di scrittura di programmi con funzioni. Esempi di utilizzo di procedure e funzioni. Introduzione di costanti con #define.
18/3/2015 11 00 Scelta a più vie: istruzione switch. Istruzione switch per la scelta tra più vie in base a un'espressione a valore intero. 
23/03/15 11 00 Stringhe. Terminatore di stringa. Funzioni di "string.h" per la manipolazione di stringhe: strlen, strcpy, strcat, strcmp. Acquisizione di stringhe da input e visualizzazione su output. 
13/4/2015 11 00 Dichiarazione e utilizzo di array. Dimensionamento e indici. Esempio di calcolo delle frequenze assolute delle modalità di un carattere in un insieme di osservazioni. Caso di insieme delle modalità isomorfo a un sottoinsieme contiguo di interi. Caso di conteggio di frequenze per classi di modalità. 
14/4/2015 11 00 Uso di array in parametri di procedure. Discussione sull'uso degli operatori * per la dichiarazione di un puntatore e di & per l'estrazione di un indirizzo. Discussione sull'uso di * nei parametri formali di una procedura.
15/4/2015 11 00 Esempi di array a più dimensioni. Conteggio delle frequenze di coppie di variabili. Esempi con stringhe memorizzate in array. Dimensionamento statico dell'array e utilizzo dei primi n elementi dell'array. Esempi. 
20/4/2015 11 00 Ricerca binaria iterativa. Discussione sul numero di operazioni di confronto in rapporto al numero di elementi nell'array. Ricerca binaria su array ordinato. 
21/4/2015 11 00 Complessità computazionale della ricerca binaria. Problemi di ordinamento. Ordinamento per selezione e implementazione in C. Complessità del problema dell'ordinamento. 
22/4/2015 11 00 Introduzione alla complessità computazionale. Complessità asintotica. Classi di complessità dei problemi: lineari, polinomiali, esponenziali, logaritmici. Complessità di algoritmi con cicli innestati. Caso peggiore e caso medio. Esempi
27/4/2015 11 00 Generazione di numeri pseudo-casuali. Funzioni rand() e srand() dalla libreria stdlib. Trasformazioni lineari per generare numeri casuali uniformemente distribuiti in intervallo assegnato. Generazione con distribuzione non uniforme.
28/4/2015 11 00 Generazione di numeri casuali con distribuzione assegnata: esempio della frequenza delle lettere nella lingua italiana
29/4/2015 11 00 Generazione di numeri casuali con distribuzioni di frequenze espresse matematicamente: teorema dell'inversione analitica. Generazione con distribuzione esponenziale. Generazione con distribuzione binomiale.
4/5/2015 11 00 Esercitazioni sulla generazione di numeri casuali
5/5/2015 11 00 Il linguaggio HTML per la composizionie delle pagine web: caratteristiche fondamentali
6/5/2015 11 00 Il software per la gestione di basi di dati: caratteristiche principali. Operazioni su tabelle: selezione, proiezione, join.
11/5/2015 11 00 Esempi di utilizzo di MS Access, collegamenti con MS Excel.
12/5/2015 11 00 Informatica e società. Tipi di licenze, copyright.
13/5/2015 11 Dati multimediali. Privacy e protezione delle informazioni.