sigillo
Programmazione Internet 2003/04
 orario   docenti   esami   programma   materiale   esercizi   lab   testi   risorse 

Programma

  • Hardware e software
  • Rappresentazione digitale dell'informazione
  • Le reti
  • Architettura di un eleaboratore
  • I programmi come solutori di problemi
  • Java: introduzione e struttura di un programma
  • Commenti, identificatori, parole riservate, white space
  • Livelli di linguaggi
  • Compilazione
  • Sintassi e semantica
  • Gli oggetti
  • L'oggetto come astrazione
  • I metodi print e println
  • Le stringhe
  • Le variabili: dichiarazione e inizializzazione
  • L'assegnamento
  • Le costanti
  • Tipi di dato primitivi: numerici, caratteri, booleani
  • Le espressioni aritmetiche
  • La precedenza negli operatori artimentici e nell'assegnamento
  • Conversioni: widening e narrowing.
  • Conversioni per assegnamento, per promozione, casting.
  • Creazione di oggetti
  • Librerie di classi
  • I package
  • La dichiarazione import
  • Uso dei metodi statici
  • La classe Keyboard
  • Formattazione dell'output
  • Ciclo di sviluppo di un programma
  • Il controllo del flusso
  • Il costrutto if e if-else
  • Le espressioni booleane e gli operatori relazionali
  • I block statement
  • If nidificati
  • Lo statement switch
  • Gli operatori logici
  • Le tabelle di verità
  • Valutazione "shot circuited"
  • Comparazione di caratteri, di stringhe (ordine lessicografico), di float
  • Operatori di incremento, decremento, assegnamento
  • L'operatore condizionale
  • I cicli
  • Lo statement while
  • Cicli infiniti e cicli nidificati
  • La classe StringTokenizer
  • Lo statement do
  • Confronto fra while e do
  • Lo statement for
  • La scelta del costrutto per realizzare un ciclo
  • Sviluppo dei programmi: dalla raccolta dei requisiti al testing
  • Scrivere le classi
  • Gli oggetti: stato e comportamento
  • La struttura di una classe
  • Instance data e metodi
  • La classe Coin
  • Lo scope dei dati
  • Le variabili di istanza
  • UML: il class diagram e l'object diagram
  • L'incapsulazione
  • Il principio della "scatola nera"
  • I modificatori di visibilità
  • La dichiarazione dei metodo
  • Il flusso di esecuzione nell'invocazione dei metodi
  • Metodi: intestazione e corpo
  • I valori di ritorno
  • Parametri attuali e formali
  • Le variabili locali
  • Dettagli sui costruttori
  • L'overloading dei metodi
  • La decomposizione
  • Relazione fra classi e oggetti in UML
  • L'aggregazione
  • L'aggregazione in UML
  • Le reference
  • La reference null
  • La reference this
  • L'assegnamento con le reference
  • L'alias fra reference
  • Confronto fra reference
  • Usare una reference come parametro nell'invocazione di un metodo
  • Il modificatore static
  • L'uso di static con i metodi
  • L'uso di static con le variabili d'istanza
  • Le classi wrapper delle libreria standard di Java
  • Le interfacce
  • L'interfaccia Comparable
  • Gli array
  • Dichiarazione di un array
  • Instanziazione di un array
  • Controllo dei limiti negli array
  • Liste di inizializzazione per gli array
  • L'uso degli array come parametri nell'invocazione dei metodi
  • Gli argomenti in linea di comando
  • Array di oggetti
  • Ordinamento di array
  • Insertion sort
  • Selection sort
  • Ordinamento di array di oggetti
  • Array bidimensionali
  • Array multidimensionali
  • La classe ArrayList
  • L'ereditarietà
  • Il modificicatore di visibilità protected
  • Ereditarietà nei diagrammi UML
  • La reference super
  • L'overriding dei metodi
  • Gerarchie di classi
  • La classe Object
  • Le classi e i metodi astratti
  • Il polimorfismo
  • Gerarchie di interfacce
  • Le eccezioni
  • La gestione delle eccezioni
  • Il costrutto try/catch
  • La clausola finally
  • Propagazione delle eccezioni
  • Lanciare una eccezione
  • Creare una classe da usare come eccezione
  • Le eccezioni checked e unchecked
  • La ricorsione
  • Definizione ricorsiva di un problema
  • Caso base/ricorsione infinita
  • Ricorsione diretta e indiretta
  • Uso della ricorsione: l'uscita da un labirinto
  • Gli stream di I/O
  • Input stream/output stream
  • Data stream/processing stream
  • Stream, reader e writer
  • L'eccezione IOException
  • La serializzazione
  • Le strutture dati dinamiche
  • Gli ADT: liste, code e stack
  • Strategia per implementare una lista (linked list, doubly linked list, ...)
  • Le collezioni del package java.util
  • La gerarchia delle interfacce nelle collezioni
  • L'interfaccia Collection
  • L'iterazione degli elementi, l'interfaccia Iterator
  • L'interfaccia List
  • Classi concrete che implementano List
  • L'interfaccia Map
  • Classi concrete che implementano Map
  • L'ordinamento nelle collezioni