Diario delle lezioni A.A. 2015/2016
14 settembre 2015 (Lezione n° 1)
· 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.
15 settembre 2015 (Lezione di Laboratorio n° 1)
· Java ed Eclipse: installazione e primi programmi
· Paradigmi di programmazione
· Outputin Java
· Inputin Java
· Introduzione alle variabili
· Bytecode: compilazione ed interpretazione inJava
16 settembre 2015 (Lezione n° 2)
· 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
21 settembre 2015 (Lezione n° 3)
· 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)
22 settembre 2015 (Lezione di Laboratorio n° 2)
· 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)
23 settembre 2015 (Lezione n° 4)
· Comandoif e If…else
· Comando vuoto
· Comando blocco
· Espressioni booleane
· Operatori relazionali
· Operatori booleani
· Leggi di De Morgan
28 settembre 2015 (Lezione n° 5)
· 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
29 settembre 2015 (Lezione di Laboratorio n° 3)
· Esercizi su visibilità variabili
· Esercizi su array
· Comando while
30 settembre 2015 (Lezione n° 6)
· 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
5 ottobre 2015 (Lezione n° 7)
· Comando for
· Equivalenza tra comandi while, do…while e for
· Array multidimensionali
6 ottobre 2015 (Lezione di Laboratorio n° 4)
· Esercizisu array
· Esercizi su cicli
7 ottobre 2015 (Lezione n° 8)
· Comando for each
· Comando switch e comando break
· Comandi etichettati
· Comando break
· Comando continue
· Esercizi su array e comandi iterativi
12 ottobre 2015 (Lezione n° 9)
· Metodi
· Parametri formali e Parametri attuali
· Stack e Heap nella chiamata dei metodi
· Simulazione programmi con Stack e Heap
13 ottobre 2015 (Lezione di Laboratorio n°5)
· Esercizi su cicli e array
· Esercizi su metodi
14 ottobre 2015 (Lezione n° 10)
· Ricerca lineare e ricerca binaria
· Esercizi su array e cicli
19 ottobre 2015 (Lezione n° 11)
· Ordinamento per selezione
· Ordinamento per inserimento
· Esercizio: numero elementi non ripetuti in array
· Esercizio: controllo se array è ordinato
· Ordinamento a bolle
20 ottobre 2015 (Lezione di Laboratorio n° 6)
· Esercizi su cicli e array
· Esercizi su metodi
21 ottobre 2015 (Lezione n° 12)
· Overloading di metodi
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
26 ottobre 2015 (Lezione n° 13)
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
27 ottobre 2015 (Lezione di Laboratorio n° 7)
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
28 ottobre 2015 (Lezione n° 14)
· Esercizi su metodi
· Esercizi su comandi iterativi
· Esercizi su array
2 novembre 2015 (Lezione n° 15)
· Esercizi in classe in preparazione alla provaparziale
3 novembre 2015 (Lezione di Laboratorio n° 8)
· Assegnazione del progetto
· Esercizi
4 novembre 2015 (Lezione n° 16)
· Prova parziale
9 novembre 2015 (Lezione n° 17)
· Ricorsione
· Albero delle chiamate ricorsive
· Evoluzione dello Stack nelle chiamate ricorsive
· Iterazione e ricorsione
· Esercizi: fattoriale, potenza
10 novembre 2015 (Lezione di Laboratorio n° 9)
· Correzione esercizi prova parziale
· Esercizi
11 novembre 2015 (Lezione n° 18)
· Tecnica Divide et Impera
· Ricorsione su array
· Esercizi
· Ricerca binaria ricorsiva in array
16 novembre 2015 (Lezione n° 19)
· Metodo Merge per l’unione di due array ordinatiin un unico array ordinato
· Merge-Sort
· Programmazione dinamica (esercizio sottoarray disomma massima)
17 novembre 2015 (Lezione di Laboratorio n° 10)
· 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
18 novembre 2015 (Lezione n° 20)
· Tipi riferimento definiti dall’utente: costruttoclass
· Differenza tra tipi primitivi e tipi riferimento
· Array di tipi riferimento
· Tipi ricorsivi (esempio Espressioni numeriche)
· Ricorsione strutturale
23 novembre 2015 – mattina (Lezione n° 21)
· 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)
23 novembre 2015 – pomeriggio (Lezione n° 22)
· Liste in Java (con operazioni di inserimento ecancellazione)
· Discussione di alcune varianti: listeidentificate da elemento di testa; liste doppiamente concatenate
· Esercizi
24 novembre 2015 (Lezione di Laboratorio n° 11)
· Esercizi su tecnica divide et impera
· Esercizi su tipi ricorsivi
30 novembre 2015 (Lezione n° 23)
· Esercizi su ricorsione strutturale
· Esercizi su divide et impera
· Esercizi su Liste, Pile, Code
1° dicembre 2015 (Lezione di Laboratorio n° 12)
· Esercizi
2 dicembre 2015 (Lezione n° 24)
· Esercizi in preparazione all’esame