Ogni lezione è da 2 ore.
Totale:
· 24 lezioni (48 ore) per il modulo di teoria da 6 CFU.
· 12 lezioni (24 ore) per il modulo di Laboratorio da 3 CFU, sdoppiato in due canali (A[A-L] e B[M-Z])
· Presentazione del corso di laurea
· Presentazione del corso e delle modalità d’esame
· Paradigmi di programmazione
· Linguaggi di alto livello
· Compilatore ed Interprete
· Java ed Eclipse: installazione e primi programmi
· Bytecode: compilazione ed interpretazione inJava
· Outputin Java
· Introduzione alle variabili
· Commenti in Java
· Il sistema binario: bit, byte e loro multipli
· Hardware e Software
· Linguaggio macchina
· Codifica binaria di numeri interi; complemento a 2
· Rappresentazione mantissa ed esponente
· Tipi primitivi del linguaggio Java
· Non tutto è calcolabile: halting problem.
· Variabili, tipi, identificatori
· Tipi primitivi del Java
· Dichiarazione, Inizializzazione ed assegnazionedi variabili
· Sintassi e semantica dei linguaggi diprogrammazione
· Espressioni ed effetti collaterali
· Operatori per tipi numerici
· Conversione implicita e conversione esplicita(cast)
· Esercizi su variabili ed assegnamento
· Esercizi su Operatori aritmetici per numeri interie numeri in virgola mobile
· Esercizi su input e output
· Esercizi su conversione implicita e conversioneesplicita (cast)
· Espressioni booleane
· Operatori relazionali
· Operatori booleani
· Leggi di De Morgan
· Problema / algoritmo / programma
· I diagrammi di flusso
· Comandoif e If…else
· Comando vuoto
· Comando blocco
· Esercizi su diagrammi di flusso
· Ambito di visibilità delle variabili e blocchi
· 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 visibilità variabili
· Esercizi su array
· Comando while e do…while: gioco indovinello;somma e media di numeri
· Introduzione agli array
· Tipi primitivi vs tipi riferimento
· Stack e Heap
· Array monodimensionali: dichiarazione, creazione,accesso
· Esercizi sui cicli con array
· 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
· Espressione condizionale
· Esercizi su array e comandi iterativi
· Esercizisu array
· Esercizi su cicli
· Metodi
· Parametri formali e Parametri attuali
· Parametri di tipo primitivo e di tiporiferimento
· Stack e Heap nella chiamata dei metodi
· Simulazione programmi con Stack e Heap
· Ricerca lineare e ricerca binaria
· Esercizi su array e cicli
· Esercizisu array e cicli
· Esercizi su metodi
· Esercizio: conteggio elementi non ripetuti in array
· Ordinamento per selezione
· Ordinamento per inserimento
· Esercizio: controllo se array è ordinato
· Esercizio: Ordinamento a bolle
· Overloading di metodi
· Ricorsione
· Albero delle chiamate ricorsive
· Esercizio: fattoriale (versione ricorsiva editerativa)
· Esercizi su array e cicli
· Esercizi su metodi
· Esercizio: conteggio elementi non ripetuti inarray
· Evoluzione dello stack nelle chiamate ricorsive
· Iterazione e ricorsione
· Esercizio: potenza (versione ricorsiva editerativa)
· Tipi riferimento definiti dall’utente: costruttoclass
· Differenza tra tipi primitivi e tipi riferimento
· Esercizi in classe in preparazione alla provaparziale
· Prova parziale
· Correzione prova parziale
· Esercizi su tipi riferimento definitidall’utente
· Operatore “.”
· Array di tipi riferimento
· Introduzione alla programmazione ad oggetti esue caratteristiche (incapsulamento, ereditarietà, polimorfismo)
· Incapsulamento e occultamento di informazione
· Variabili di istanza e metodi di istanza
· Variabili di classe e metodi di classe
· Modificatori di accesso public e private
· Costruttore di default
· Costruttori definiti dall’utente
· Parola chiave “this”
· Blocco di inizializzazione
· Modificatore final
· Metodi di accesso (get) e di modifica (set)
· La classe String e i suoi metodi principali
· Metodo toString()
· I package
· Invocazione di metodi come scambio di messaggitra oggetti
· Invocazione di altri costruttori con la parolachiave “this”
· Esercizi su programmazione a oggetti: il cambiodi prospettiva rispetto alla programmazione strutturata
· Ereditarietà
· Polimorfismo (overriding e overloading)
· Tipi di dato ed ereditarietà
· Tipo statico e tipo dinamico delle variabili
· Modificatore di accesso: protected emodificatore vuoto (a livello di package)
· Classe Object e gerarchia delle classi
· Modificatore “final” applicato a metodi e classi
· Selezione della firma a tempo di compilazione edel metodo che sovrascrive a tempo di esecuzione
· Metodi astratti e classi astratte
· ArrayList
· Classi involucro
· ArrayList:i metodi add, set, get, size, clear, remove, indexOf
· Classi involucro
· Boxing e Unboxing automatici
· ArrayList con tipi generici
· Interfacce
· Implementazione di default
· Implementazione di più interfacce
· Eccezioni
· Eccezioni controllate e non controllate
· Gestione delle eccezioni: try-catch-finally
· Esercizi
· Esercizisu interface: gli iteratori
· Esercizi su programmazione ad oggetti
· Operatore instanceof
· Metodo equals
· Esercizi
· Esercizi in preparazione all’esame
· Esercizi in preparazione all’esame
· Esercizi in preparazione all’esame
· 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