appunti di informatica
teoria degli insiemi
teoremi di Godel
macchina di Turing e calcolabilita'
realizzazioni della macchina di Turing, automi a stati finiti, algoritmi
linguaggi di programmazione, linguaggi compilati e interpretati
paradigmi di programmazione
il teorema di Jacopini-Bohm e la programmazione strutturata
i diagrammi di flusso, costrutti principali: routine, cicli e condizioni
algoritmi di sort
file sequenziali
trattamento dei file sequenziali: rotture e bilanciamenti
la pseudocodifica
il linguaggio Cobol:
-struttura di un programma cobol, le quattro division
-tipi di dati, numerici ed alfanumerici
-tabelle di working storage
-routine, cicli e condizioni in cobol
-sintassi delle istruzioni principali
-le copy
-le call statiche e dinamiche
i mainframe
l'edit del tso: comandi principali
jcl ed sdsf: compilazione, esecuzione di programmi
mvs, data set: librerie e membri, allocazione, cancellazione, copia,
rename
funzioni avanzate sui data set: compare, ricerca stringhe
ftp tra ambienti e file transfer
stampa di data set
applicativi: endevor, changeman, roscoe
debug batch e tp: xpediter
database relazionali
db2/sql: select, insert, delete, update
sqlcodes
istruzioni sql avanzate, subquery
spufi: opzioni principali ed esecuzione
qmf: funzioni principali ed avanzate, gestione data set
unload, load: sysrec e syspunch
db2 commands: restart del db2
istruzioni db2 dentro un programma cobol
cursori: dichiarazione, fetch
gli applicativi tp
transazioni cics, autorestart
il comando new copy
display di un programma tp
mappe BMS
istruzioni cics dentro un programma cobol
sistemi dipartimentali, linux, comandi fondamentali
shell scripting elementare:
-tipi di variabili, wildcards e caratteri speciali
-operatori
-condizioni: if, case
-cicli: for, while
-funzioni esterne
-demoni
il linguaggio java:
-JDK, scrittura, compilazione ed esecuzione di classi
-tipi di dati: interi, in virgola mobile, char, booleani, letterali
-operatori: incremento, decremento, logici, matematici, precedenza tra
operatori
-conversioni di tipi, casting
-array mono e multidimensionali
-condizioni: if, switch
-cicli: while, do-while, for
-istruzioni di controllo: break, continue, return
programmazione ad oggetti (OOP):
-classi (modelli di programmi astratti, dotati sia
di strutture dati
che di procedure che li utilizzano)
-oggetti (istanze di classi, sia dati - o proprieta'
- che procedure -
o metodi)
caratteristiche fondamentali OOP:
-incapsulamento (proprieta' degli oggetti di
contenere sia dati che
procedure che operano su di essi)
-ereditarieta' (meccanismo che permette di derivare
nuove classi da
classi gia' esistenti, aggiungendo delle proprieta' in modo da
specializzarle)
-polimorfismo (possibilita' di richiamare lo stesso
metodo su classi
differenti, ottenendo risultati differenti)
-applet
-IDE: Eclipse, Netbeans
programmazione web
linguaggi di markup, html
linguaggi di scripting, javascript
css, fogli di stile
siti web dinamici, accesso a database, xml, xsl
il linguaggio C/C++:
-struttura di un programma c, funzioni, librerie esterne
-tipi di dati e dichiarazione, costanti
-vettori e matrici
-operatori di assegnazione, aritmetici, di confronto, logici
-cicli, alternative
-input/output
-funzioni matematiche
-accesso a file esterni
-puntatori, operatori relativi a puntatori
-funzioni per la gestione della memoria
-passaggio di variabili nelle funzioni
-librerie ed api, utilizzo delle librerie win32
-gestione dei driver grafici: CGA, EGA, VGA
-IDE: DevC++
-pile e trucchi nella gestione della memoria
programmazione di basso livello
assembly
linguaggio macchina
processori
teoria dell'informazione di Shannon
entropia e informazione
crittografia
crittosistemi a blocchi:
la chiave e' fissa di una certa lunghezza
crittosistemi a flusso:
la chiave varia in funzione del testo
crittosistemi simmetrici (a chiave privata):
la chiave per la decifratura e' la stessa di quella della cifratura
la sicurezza dipende dalla segretezza e dalla complessita' della chiave
esempi: DES & Triple DES, Blowfish, IDEA, RC4, Safer
crittosistemi asimmetrici (a chiave pubblica):
la chiave per la decifratura e' diversa da quella con cui e' effettuata
la cifratura
la sicurezza dipende dalla difficolta' di invertire una certa funzione
matematica (solitamente la scomposizione in fattori primi di un numero
estremamente grande)
esempi: RSA, Diffie-Hellman, DSS, ElGamal, LUC, Crittosistemi con curve
ellittiche
firma digitale: esempio di utilizzo di algoritmi a chiave pubblica che
certifica
l'identita' di un soggetto
la firma digitale consiste in un messaggio cifrato mediante una chiave
privata: se la firma si decifra con la chiave pubblica si e' sicuri che
e' stata
cifrata da chi possiede la corrispondente chiave privata
la sicurezza dipende dalla segretezza della chiave privata (non
necessaria per verificare l'autenticita' della firma): solo chi
possiede la chiave privata puo'
firmare messaggi, mentre chiunque puo' verificare l'autenticita' della
firma
hash functions
pseudorandom number generators
interpretazione quantistica di Zeilinger, qubits
quantum information
quantum cryptography
intelligenza artificiale
connessionismo, reti neurali, calcolo parallelo
applicazioni: data mining, sistemi esperti
automi a stati finiti, macchine di Turing e sistemi dinamici
teoria del caos
fuzzy logic
"The real
question is not whether machines think but
whether men do. The mystery which surrounds a thinking machine already
surrounds a thinking man."
B. F. Skinner