· Presentazione del corso e delle modalità d’esame
· Il sistema binario: bit, byte e loro multipli
· Hardware e Software
· Linguaggio macchina
· Linguaggi di alto livello
· Compilatore ed Interprete
· Non tutto è calcolabile: halting problem.
· Java ed Eclipse: installazione e primi programmi
· Paradigmi di programmazione
· Outputin Java
· Inputin Java
· Introduzione alle variabili
· Bytecode: compilazione ed interpretazione inJava
· Codifica binaria di numeri interi; complemento a2
· I tipi interi del Java
· Conversione tra base 2, 8 e 16
· Rappresentazione mantissa ed esponente
· Tipi in virgola mobile del java
· Conversone numeri in virgola mobile in binario
· Variabili, tipi, identificatori
· Dichiarazione, Inizializzazione ed assegnazionedi variabili
· Sintassi e semantica dei linguaggi diprogrammazione
· Problema / algoritmo / programma
· I diagrammi di flusso
· Espressioni ed effetti collaterali
· Operatori per tipi numerici
· Conversione implicita e conversione esplicita(cast)
· Esercizi su variabili ed assegnamento
· Esercizi su Operatori aritmetici per numeriinteri e numeri in virgola mobile
· Esercizi su input e output
· Commenti in java
· Esercizi su conversione implicita e conversioneesplicita (cast)
· Comandoif e If…else
· Comando vuoto
· Comando blocco
· Espressioni booleane
· Operatori relazionali
· Operatori booleani
· Leggi di De Morgan
· Esercizi su diagrammi di flusso
· Ambito di visibilità delle variabili e blocchi
· Introduzione agli array
· Tipi primitivi vs tipi riferimento
· Stack e Heap
· Array monodimensionali
· Esercizi su visibilità variabili
· Esercizi su array
· Comando while
· Esercizi su diagrammi di flusso
· Comando while e suo diagramma di flussostrutturato
· Programmazione strutturata versus programmazionecon salti
· Comando do…while e suo diagramma di flussostrutturato
· Equivalenza comandi while e do…while
· Esercizi su cicli e selezione
· Comando for
· Equivalenza tra comandi while, do…while e for
· Array multidimensionali
· Esercizisu array
· Esercizi su cicli
· Comando for each
· Comando switch e comando break
· Comandi etichettati
· Comando break
· Comando continue
· Esercizi su array e comandi iterativi
· Metodi
· Parametri formali e Parametri attuali
· Stack e Heap nella chiamata dei metodi
· Simulazione programmi con Stack e Heap
· Esercizi su cicli e array
· Esercizi su metodi
· Ricerca lineare e ricerca binaria
· Esercizi su array e cicli
· Ordinamento per selezione
· Ordinamento per inserimento
· Esercizio: numero elementi non ripetuti in array
· Esercizio: controllo se array è ordinato
· Ordinamento a bolle
· Esercizi su cicli e array
· Esercizi su metodi
· Overloading di metodi
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
· Esercizi in classe in preparazione alla provaparziale
· Assegnazione del progetto
· Esercizi
· Prova parziale
· Ricorsione
· Albero delle chiamate ricorsive
· Evoluzione dello Stack nelle chiamate ricorsive
· Iterazione e ricorsione
· Esercizi: fattoriale, potenza
· Correzione esercizi prova parziale
· Esercizi
· Tecnica Divide et Impera
· Ricorsione su array
· Esercizi
· Ricerca binaria ricorsiva in array
· Metodo Merge per l’unione di due array ordinatiin un unico array ordinato
· Merge-Sort
· Programmazione dinamica (esercizio sottoarray disomma massima)
· Esercizi su programmazione dinamica
· Esercizi su tecnica divide et impera
· Implementazione del Selection-Sort
· Implementazione del Merge-Sort
· Confronto tra Merge-Sort e Selection-Sort
· Tipi riferimento definiti dall’utente: costruttoclass
· Differenza tra tipi primitivi e tipi riferimento
· Array di tipi riferimento
· Tipi ricorsivi (esempio Espressioni numeriche)
· Ricorsione strutturale
· Strutture dati dinamiche
· Introduzione a Liste, Pile, Code
· Pile in java (con operazioni di push e pop)
· Code in java (con operazioni di enqueue edequeue)
· Liste in Java (con operazioni di inserimento ecancellazione)
· Discussione di alcune varianti: listeidentificate da elemento di testa; liste doppiamente concatenate
· Esercizi
· Esercizi su tecnica divide et impera
· Esercizi su tipi ricorsivi
· Esercizi su ricorsione strutturale
· Esercizi su divide et impera
· Esercizi su Liste, Pile, Code
· Esercizi
· Esercizi in preparazione all’esame
SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551
SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371
email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693