016IN - PROGRAMMAZIONE 2015
| Sezione | Nome | Descrizione | 
|---|---|---|
| Le date degli orali vengono generalmente concordate al termine della prova scritta. | ||
| Aspetti organizzativi | 
 | |
| Lucidi | ||
| Rudimenti della sintassi di Java | Qualche istruzione di Java. | |
| Ingredienti sintattici di Java | ||
| Esempio di lettura da tastiera. | ||
| Hello, World | ||
| Hello, World No.2 | ||
| Un altro esempietto minimale di programma Java | ||
| Condizioni; istruzioni iterative: Es. d'uso in Java. | Lucidi su condizioni e istruzioni iterative. | |
| Due implementazioni Java di un convertitore da gradi centigradi a Fahrenheit e viceversa. | ||
| Riconoscitore di numeri primi, implementato in Java in tre modi | ||
| Riconoscitore di quadrati perfetti, implementato in Java in 4 modi | ||
| L'uso dei connettivi logici nelle condizioni Java | Lucidi aggiornati sull'utilizzo di espressioni booleane in Java. | |
| Una classe (solo da utilizzare, ma non ancora da capire), per effettuare letture tramite un pannello. | ||
| Tecnica 'ottimizzata' per stabilire se un numero sia un quadrato perfetto. | ||
| Scambio di valori fra due variabili intere, effettuato tramite una XOR. | ||
| Conversione di numerali in numeri e di numeri in numerali. | Lucidi sulla conversione di numerali in numeri (e vicecersa) | |
| Trasformatore di numeri in numerali sviluppato in aula (ignora i caratteri inattesi) | ||
| Trasformatore di numerali in numeri (variante di quella che precede) | ||
| Scomposizione di un numero naturale in somma di quattro quadrati. | ||
| Programma Java che effettua la scomposizione di un numero naturale in somma di quattro quadrati. | ||
| Firme dei metodi: Qualche esempio | ||
| Confronto alfabetico fra stringhe, versione sviluppata in aula (provvisoria, non ancora testata): | ||
| Confronto alfabetico fra stringhe: versione stabile, variante della precedente. | ||
| Impiego di metodi e loro invocazione | Lucidi di approfondimento sul meccanismo d'invocazione di metodi: | |
| Lancio (pseudo)casuale di una moneta | ||
| Contatore binario ad un prestabilito numero di bit | ||
| Cenni sull'Architettura dei Sistemi di Elaborazione | Lucidi sull'Architettura dei Sistemi di Elaborazione (1.a parte). | |
| Esempio di programmino multi-threaded (non occorre capirlo ora, ma ci da` un esempio di cosa vuol dire 'processore virtuale') | ||
| Lucidi sul livello circuitale del computer: Circuiti combinatori e un esempio di circuito sequenziale: flip-flop D | ||
| Effetto collaterale su un parametro di un metodo | Lucidi sul tema: Può un metodo di Java modificare un proprio parametro? | |
| Introduzione alla programmazione ricorsiva | "Circoli viziosi": L'ABC della ricorsione | |
| Test di palindromicita` in Java | ||
| Un autentico circolo vizioso deriva dall'assenza, in un metodo ricorsivo, di un caso-base; o dalla mancata riduzione a un caso-base di problemi per cui non e` prevista risoluzione immediata. Esempio: | ||
| Calcolo dei coefficienti binomiali | ||
| Specifica di un valutatore di espressioni che verra` affrontato lunedi` prossimo | ||
| Realizzazione di un piccolo analizzatore sintattico che valuta espressioni aritmetiche | Parser per semplici espressioni aritmetiche completamente parentesizzate. Versione sviluppata in aula (con qualche correzione e aggiunta fatte dopo). | |
| Variante del piccolo parser visto sopra, sviluppato con calma in ufficio | ||
| Classi di oggetti in un guscio di noce | Due domande di ripasso | |
| Lucidi sulle classi di oggetti... in un guscio di noce | ||
| Esempio: classe per la rappresentazione di frazioni, con l'operazione di addizione (Versione sommaria realizzata in aula) | ||
| Classe delle frazioni a numeratore e denominatore interi (versione piu` estesa di Fraz) | ||
| Prime informazioni sugli array | Costruzione e riempimento del triangolo di Khayyam/Tartaglia/Pascal | |
| Esempio illustrativo di utilizzo di una bitmap, con suggerimento di alcuni esercizi da svolgere | ||
| Esercizio sugli anagrammi | ||
| Operazioni basilari sugli array | ||
| Ordinamento ('sorting') di un array | Lucidi sugli array (informazioni generali) | |
| Ricerca tramite metodo di bisezione in un array ordinato. 'Insertion sorting', 'bubble sorting' | ||
| Versione estesa della classe 'Vettori.java' della lezione del 26 ottobre: ora comprende anche un metodo di sorting; inoltre il metodo 'leggiComp' e` diventato pubblico. | ||
| Soluzione di due esercizi Java proposti in occasione di prove scritte d'esame | ||
| Due semplici esempi di classi di oggetti | ||
| Serve al collaudo della classe Derisore specificata poco fa | ||
| classe Contatore, implementata tramite un array booleano | ||
| classe Contatore, implementata con un long anziche` con un array booleano | ||
| class TestContatore: Impiego della classe Contatore (in una o l'altra delle due implementazioni viste sopra) per la risoluzione di un problema discusso nella precedente lezione | ||
| Conto delle isole in un arcipelago. | Compito d'esame sulle isole di un'arcipelago | |
| Risolutore del compito d'esame sulle isole di un arcipelago | ||
| classe Contatore sviluppata in aula. Da collaudarsi con lo stesso TestContatore che figura nell'argomento Moodle della precedente lezione | ||
| Lucidi tratti dall'Horstmann sulle classi di oggetti | ||
| La classe parametrica ArrayList | Lucidi introduttivi agli ArrayList | |
| Lucidi sull'ereditarieta` fra classi di oggetti | ||
| Gerarchia di ereditarieta` fra classi, eccezioni, interfacce | Eccezioni | |
| Un'implementazione della classe Trabocco ('overflow' in inglese) | ||
| interfacce | ||
| Alcuni tracce della prova scritta di Programmazione | Prova sugli automi | |
| Prova sulla valutazione di espressioni | ||
| Prova sull'individuazione di un cammino per guadare un torrente | ||
| Soluzione del problema delle 8 (generalizzato a N) regine | ||
| Altro compito d'esame che chiede di risolvere un problema d'instradamento | ||
| Altra prova d'esame scritto | 
