Diario delle Lezioni

Giovedì 10 marzo 2011

  • Presentazione del corso
  • Programmazione ad oggetti
  • Classi: dichiarazione e modificatori
  • Tipi primitivi e tipi di riferimento
  • Variabili Boxed

Lunedì 14 marzo 2011

  • Motodi, tipi restituiti e parametri
  • Costruttori di classe
  • Metodi static factory
  • Alcuni esempi
  • Gestione della memoria in Java

Lunedì 21 marzo 2011

  • Metodi static factory
  • Costruttori telescopici
  • Costruttori Builder
  • Oggetti immutabili
  • Esempi

Giovedì 24 marzo 2011

  • Progettazione orientata agli oggetti
  • Ereditarietà e polimorfismo
  • Composizione di classi
  • Esempi
  • Interfacce e classi astratte
  • Gestire gli errori con le eccezioni

Lunedì 28 marzo 2011

  • Cattura e specifica delle eccezioni
  • Esempi di utilizzo delle eccezioni
  • Tecniche e tool per il debugging
  • Evitare gli errori di programmazione
  • Eliminazione di oggetti obsoleti
  • Concatenazione di stringhe
  • Tecniche per il calcolo in valuta

Lunedì 4 aprile 2011

  • Tecniche per il calcolo in valuta
  • Ritenzione non intenzionale di oggetti
  • Caso di studio: la serie di Fibonacci
  • Soluzione ricorsiva
  • Soluzione ricorsiva con memorizzazione
  • Soluzione iterativa

Giovedì 7 aprile 2011

  • Strumenti per l'analisi
  • Principali funzioni matematiche
  • Confronto della velocità di incremento
  • Analisi di algoritmi
  • Natazione asintotica
  • La notazione O-grande

Lunedì 11 aprile 2011

  • Ricorsione
  • Esempi di funzioni ricorsive
  • Ricorsione lineare
  • Ricorsione di coda
  • Ricorsione binaria
  • Ricorsione multipla

Giovedì 14 aprile 2011

  • Ricorsione e Iterazione
  • Trasformazione della ricersione in iterazione
  • Utilizzo dello stack per la trasformazione
  • Esempi e casi di studio

Lunedì 18 aprile 2011

  • Uso degli array
  • Inserimento di un elemento
  • Cancellazione di un elemento
  • Inserimento in un insieme ordinato
  • Uso delle matrici
  • Esempio: moltiplicazione di matrici

Giovedì 28 aprile 2011

  • Uso delle liste linkate
  • Liste linkate semplici: inserimento e cancellazione
  • Operazioni con le liste linkate

Lunedì 2 maggio 2011

  • Liste doppiamente linkate : inserimento e cancellazione
  • Liste doppiamente linkate ed ordinate
  • Liste cirolari e gestione del cursore
  • Ricerca all'interno di una lista

Giovedì 5 maggio 2011

  • Introduzione ai tipi generici
  • Il tipo di dato astratto stack
  • Interfaccia per lo stack
  • Implementazione di uno stack mediante array
  • Implementazione di uno stack mediante liste
  • Applicazioni dello stack

Lunedì 9 maggio 2011

  • Il tipo di dati astratto coda
  • Interfaccia per la coda
  • Implementazione di una coda mediante array
  • Implementazione di una coda mediante liste
  • Implementazione di una coda doppia
  • Implementazione di una coda mediante due stack

Lunedì 9 maggio 2011 (minicorso di C)

  • Introduzione al linguaggio C
  • tipi primitivi
  • tipi derivati
  • funzioni
  • preprocessore

Giovedì 12 maggio 2011

  • ArrayList e indici
  • ArrayList implementata mediante array
  • Implementazione con array estensibili
  • NodeList e posizioni
  • Implementazione mediante liste doppiamente linkate

Giovedì 12 maggio 2011 (minicorso di C)

  • puntatori
  • aritmetica dei puntatori
  • puntatori a funzione
  • puntatori a void
  • puntatori null
  • attributo const
  • operazioni su stringhe
  • array multidimensionali
  • array di puntatori
  • parametri di un programma
  • memoria dinamica
  • input/output

Lunedì 16 maggio 2011

  • Gli Iteratori
  • Le interfacce Iterator e Iterable
  • Implementazione di un iteratore
  • Implementazione di un oggetto iterabile
  • Implementazione di una PositionList iterabile
  • Esercizi ed esempi

Giovedì 19 maggio 2011

  • Gli alberi
  • Definizione e struttura di un albero
  • Proprietà di un albero
  • Profondità e altezza
  • Visita preorder, postorder e inorder
  • Esempi

Lunedì 23 maggio 2011

  • Implementazione in Java
  • Operazioni di base sui nodi
  • Iteratore dei figli di un nodo
  • Iteratore dei nodi di un albero
  • Gli alberi binari
  • Proprietà degli alberi binari