Francesco Giordani



Scaricare 41.75 Kb.
10.12.2017
Dimensione del file41.75 Kb.

I.T.I.S. “Francesco Giordani” Caserta

Specializzazione informatica ABACUS

prof. Ennio Ranucci



Diario delle lezioni

Argomento lezione

Ore

Discussione del piano didattico annuale: 
1) Dal Pascal al C++ a Java. 
2)Archiviazione elettronica tradizionale. 
3)Database: progettazione concettuale e logica. 
4)Sql - php - asp

1

Origini dell'informatica (matematica, tecnologica, ling. di programazione e s.o.). Il concetto di astrazione. C++ (es1. minimo in overload)'

1

La struttura "classe", l'incapsulamento, l'ereditarietà, il polimorfismo.

1

Il sogno di Leibniz(1646 - 1716): "Calcolemus", linguaggio naturale e linguaggio artificiale. 
"Quando sorgeranno delle controversie, non ci sarà maggior bisogno di discussione tra due filosofi di quanto ce ne sia fra due calcolatori. Sarà sufficiente, infatti, che essi prendano la penna in mano, si siedano a tavolino, e si dicano reciprocamente (chiamando, se vogliono, a testimone un amico): CALCOLEMUS, calcoliamo." 



2

Origini dell'informatica. Astrazione. Programmazione a "spaghetti", programmazione strutturata, divide et impera, top-down. Programmazione orientata agli oggetti: incapsulamento, hide information, ereditarietà, polimorfismo. '

1

Il costruttore. 
Abbiamo visto la sintassi che consente di creare una semplice classe C++. 
Un costruttore è una funzione membro di una classe. I costruttori sono utili per inizializzare le variabili della classe o per allocare aree di memoria. Private-Protected-Public 
Lo specificatore d'accesso della classe base può essere public, private o protected.

1

Discussione sulle certificazioni Microsoft e Cisco. 
Proposta di tesina per l'esame di stato: " Sicurezza ed Investigazioni digitali". Differenza tra dati sensibili e personali.

1

Discussione e completamento del piano di lavoro concordato con gli alunni e firma del contratto formativo. 
Correzione es6 "Orologio con le funzioni membro private ". Es7"La classe ventilatore" in C++

2

Correzione es. 6: la struttura della classe "ventilatore". 
Perché nasce Java? Java è un linguaggio di programmazione orientato agli oggetti, creato da James Gosling e altri ingegneri di Sun Microsystems.

1

Il costruttore (es.8.cpp) e il distruttore (es.9.cpp) in C++. Correzione es7.cpp "Ventilatore" 
Il concetto di classe può essere considerato l'erede del tipo di dato astratto che prevede la definizione di tipi di dato con cui si può interagire solo attraverso una interfaccia ben definita, nascondendo all'utilizzatore i dettagli dell'implementazione.
 
I costrutti sintattici che permettono di definire una classe, nei linguaggi a oggetti, possono essere visti come un supporto strutturato per realizzare i dati astratti.
 
I membri di una classe sono i seguenti:
 
attributi (analoghi ai membri di un record)
 
metodi (procedure che operano sugli attributi)
 
Un oggetto è una istanza di una classe.
 
Inviare un messaggio ad un oggetto si dice, in gergo, invocare un metodo su quell'oggetto.
 
Molti linguaggi forniscono un supporto per l'inizializzazione automatica di un oggetto, con uno o più metodi speciali, detti costruttori. Analogamente, la fine della vita di un oggetto può essere gestita con un metodo detto distruttore.
 
I costruttori sono, quindi, metodi associati alle classi che hanno lo scopo di inizializzare le variabili di istanza. La chiamata è effettuata automaticamente all'atto della creazione di un nuovo oggetto di una classe.
 
Primi linguaggi ad oggetti: Simula (1967), Smalltalk e da varie estensioni del Lisp. Negli anni ottanta sono state create estensioni orientate ad oggetti del linguaggio C (C++, Objective C, e altri), e di altri linguaggi (Object Pascal). Negli anni novanta è diventato il paradigma dominante, per cui gran parte dei linguaggi di programmazione erano o nativamente orientati agli oggetti o avevano una estensione in tal senso. Linguaggi che supportano solo il paradigma di programmazione orientata agli oggetti sono Smalltalk ed Eiffel. Più spesso si incontra una realizzazione non esclusiva del paradigma di programmazione orientata agli oggetti, come in C++, Java, Delphi, Python, C#, Visual Basic .NET, Perl, PHP (a partire dalla versione 4).
 
Qualità del software e definizione di correttezza, robustezza e portabilità.


1

Gli attibuti ed i membri che vengono ereditati dalla classe base possono cambiare la loro visibilità nella classe figlia, in base allo specificatore d’accesso con il quale si esegue l’ereditarietà stessa.
Durante l’ereditarietà un accesso può restringersi o restare uguale ma mai ampliarsi.


2

Verifica es.10 "pix1.cpp" mediante lavoro di gruppo e pc.

1

Progetto di classe: organizzazione del lavoro, assegnazione del compito, elezione capo-progetto e scelta del documentarista.

1

Lezione guidata mediante videoproiettore: "pix2" (classe circonferenza), "pix3" (condividere nella gerarchia il metodo Muovi_a). 
Esercitazione per gruppi di lavoro mediante pc: Costruire la gerarchia Locazione-Punto-Circonferenza (pix1, pix2, pix3)
 .

2

La claase rientra dall'incontro sulla sicurezza stradale tenutosi in aula magna alle ore 12.45. Nei rimanenti 15 minuti viene trattato l'argomento Java: il bytecode, la memoria virtuale, la fase di compilazione e la fase di interpretazione.

1

Archiviazione a basso livello: Informazione e dato. Archivi cartacei ed elettronici. Criteri per la scelta della chiave. Caratteristiche dei records logici. 
Un dato è una descrizione elementare di una realtà. Il nome dato deriva dal latino datum (fatto). 
L'informazione aggiunge conoscenza, è costituita dal dato e dalla sua interpretazione. 
Anche se potrebbero sembrare due sinonimi, i termini dato e informazione hanno un significato diverso: 
"dato" è un valore astratto, per esempio un numero, che per essere utilizzato deve essere interpretato, ad esempio, il numero 21; 
"informazione" è il significato contenuto nel dato che viene alla luce quando il dato viene interpretato. Ad esempio, il precedente numero 21 assume significati diversi se si parla di una classe composta da 21 alunni o di 21 cm, la misura di un lato di un foglio. 
L'informazione è ciò che, per un osservatore o un recettore posto in una situazione in cui si hanno almeno due occorrenze possibili, supera un'incertezza e risolve un'alternativa, cioè sostituisce il noto all'ignoto, il certo all'incerto. In altre parole, essa riguarda il contesto in cui i dati sono raccolti, la loro codifica in forma intelligibile ed in definitiva il significato attribuito a tali dati. 
Possiamo distinguere tra dati, informazioni e notizie. 
I dati sono materiale grezzo, indistinto, privo di valore immediato se non connesso ad altro, se non contestualizzato. 
Le informazioni invece hanno valore perché rispondono ad una logica, ad una visione delle cose: sono dati che hanno assunto una forma come il loro stesso nome, informazioni, suggerisce. 
Le informazioni, siano esse di carattere commerciale, giornalistico o di altra natura, sono portatrici di significato, di senso, qualità queste ultime che ai dati manca e che possono arrivare ad avere solo dopo che un lavoro umano, di carattere interpretativo, ha permesso loro di essere trasformati in altro. 
Per la teoria dell’informazione, l’unità di informazione o bit è l’unità di disgiunzione binaria che serve a individuare un’alternativa. L’informazione, secondo Bateson, è una differenza che produce significato, una sorta di limite o di soglia che ripartisce per dare ordine e senso. 
Il concetto di informazione come differenza è importante perché solo ciò che differisce, che esce dalla prevedibilità, può essere colto, perché nell’entropia del tutto uguale a sé stesso non c’è informazione. Il limite, o l’evento di rottura ormai avvenuto, contiene gli elementi per identificare l’informazione. 
In ambito giornalistico per altro si ha una notizia quando un evento infrange una previsione, a causa di un imprevisto, di una stranezza, di una novità, o a causa di una particolare gravità. 
Se gli eventi sono “normali” sono prevedibili e previsti, non sono riconosciuti come notizie.


1

Operazione sugli archivi. metodi di ricerca. Organizzazione degli archivi. Criteri per l'organizzazione dell'informazione. Raccolta, immissione e codifica dei dati. Controlli di ridondanza e quadratura, codice autocontrollante, alg. pari-dispari, alg. numeri primi. Validazione'

1

Prova pratica individuale mediante Pc: le classi e le classi derivate in C++. Correzione della prova pratica.

2

Algoritmo di autocontrollo "numeri primi" e criteri di economia dello spazio (compattamento e collegamento a dati comuni).

1

Non è stato possibile svolgere l'ora di lezione in laboratorio per atti vandalici da parte di ignoti. Verifica orale. Classificazione dei metodi di accesso agli archivi. Organizzazione sequenziale (definizione, vantaggi e svantaggi, problematiche per le operazioni di aggiornamento, ricerca)

1

Polimorfismo: Pix4, collegamento statico e dinamico. Le funzioni virtuali. Es11.cpp "pix2"; es12.cpp"pix3"; es13.cpp"Pix4"; es14.cpp "la classe Penna"; es15.cpp"La classe penna multicolore"

2






























































Esercizi (per consultare il codice sorgente utilizzare il link “esercizi svolti”):

es1.cpp "criteri che adotta il compilatore C++ per la scelta della funzione overload" (es1bis.cpp) 
es2.cpp "funzioni con parametri di default in C++" 
es3.cpp "La classe punto" in C++ “
es4.cpp "La classe orologio versione 1.0" in C++ “
es5.cpp "Orologio versione 2.0" in C++ “ (Utilizza le funzioni di lavoro "convertiOrario_Sec", "convertiSec_Orario" ) 

es6.cpp "Orologio con le funzioni membro private ".

es7.cpp "La classe ventilatore" in C++”

es8.cpp “Il costruttore“

es9.cpp “distruttore“

es10.cpp "pixel, grafica, classe derivata di locazione"

es11.cpp “da Locazione a Circonferenza, passando per Pixel”

es12.cpp “condivisione del metodo Muovi_a con riflessione”

es13.cpp"Pix4 metodi virtuali e polimorfismo"

es14.cpp "la classe Penna"

es15.cpp"La classe penna multicolore"
Differenze compilazione TurboC++ e Dev-C++

Impostare il compilatore Dev-C++ in modo da non preoccuparsi dei Warning, con il comando:

-Wno-deprecated

(Tools/Compiler Options/Add these commands to the linker command line)
Per utilizzare le librerie grafiche in ambiente Dev-C++ si rimanda al link “grafica in ambiente dev c++”



©astratto.info 2017
invia messaggio

    Pagina principale