Diario delle lezioni

Ogni lezione è da 2 ore.

Totale:

  • 24 lezioni (48 ore) per il modulo di teoria da 6 CFU.
  • 2*12=24 lezioni (2*24 = 48 ore) per il modulo di Laboratorio da 3 CFU, sdoppiato in due canali (A[A-L] e B[M-Z])

8 ottobre 2019 (Lezione di teoria n° 1)

  • Presentazione del corso e delle modalità d’esame
  • Richiami di programmazione strutturata
  • Richiami di complessità di programmi
  • Richiami di Java: tipi riferimento definiti dall’utente

9 ottobre 2019 (Lezione di teoria n° 2)

  • Introduzione alla programmazione orientata ad oggetti
  • Incapsulamento
  • Campi di istanza e campi di classe
  • Metodi di istanza e campi di classe
  • Costruttori e costruttore di default
  • Parola chiave this
  • Modificatori di accesso e Information hiding

15 ottobre 2019 (Lezione di teoria n° 3)

  • Inizializzazione dei campi di istanza
  • Modificator final
  • Classe String
  • Metodi di accesso e di modifica
  • Introduzione agli ArrayList

16 ottobre 2019 (Lezione di teoria n° 4)

  • Ereditarietà
  • Costruttori di classi figlie e parola chiave super
  • Gerarchia delle classi in Java: la classe Object
  • Il polimorfismo: l’overriding
  • Tipo statico e tipo dinamico di variabili di tipo riferimento
  • Ereditarietà singola
  • Introduzione ai Java Generics

17 ottobre 2019 (Lezioni di laboratorio n° A.1 e B.1)

  • Package
  • Esercizi su programmazione a oggetti
  • Java Generics: implementazione di Liste di elementi

22 ottobre 2019 (Lezione di teoria n° 5)

  • Java generics
  • Modificatore di accesso “protected”
  • Metodo equals della classe Object
  • Selezione della firma con overriding e overloading

23 ottobre 2019 (Lezione di teoria n° 6)

  • import static
  • modificatore final per metodi di istanza
  • Classi astratte e metodi astratti
  • Eserizio: espressioni di interi

24 ottobre 2019 (Lezioni di laboratorio n° A.2 e B.2)

  • Esercizi su programmazione a oggetti
  • Esercizi su ArrayList
  • Esercizi su classi involucro, auto boxing e auto unboxing

29 ottobre 2019 (Lezione di teoria n° 7)

  • Possibili relazioni tra classi nella programmazione a oggetti
  • Le interfacce
  • Metodi di default
  • Interfacce con tipi generici

31 ottobre 2019 (Lezioni di laboratorio n° A.3 e B.3)

  • Esercizi su ereditarietà e classi astratte

5 novembre 2019 (Lezione di teoria n° 8)

  • Tabelle hash: liste di trabocco e hashing esterno con ispezione lineare.

6 novembre 2019 (Lezione di teoria n° 9)

  • Tabelle Hash: hashing doppio
  • Gestione delle cancellazioni nell’hashing interno
  • Introduzione alla programmazione dinamica

7 novembre 2019 (Lezione di teoria n° 10)

  • Il problema del taglio delle aste
  • Il problemma del sottoarray di somma massima (prima parte)

7 novembre 2019 (Lezioni di laboratorio n° A.4 e B.4)

  • Implementazione di tabelle hash (prima parte)

12 novembre 2019 (Lezione di teoria n° 11)

  • Esercizi di programmazione dinamica

13 novembre 2019 (Lezione di teoria n° 12)

  • Esercizi di programmazione dinamica
  • Introduzione alla programmazione greedy

14 novembre 2019 (Lezioni di laboratorio n° A.5 e B.5)

  • Implementazione di tabelle hash (seconda parte)
  • Iteratori: interfacce Iterable e Iterator
  • Iteratori per Liste e per tabelle hash con liste di trabocco

19 novembre 2019 (Lezione di teoria n° 13)

  • Esercizi di programmazione dinamica
  • Algoritmi Greedy
  • Le eccezioni in Java (prima parte)

20 novembre 2019 (Lezione di teoria n° 14)

  • Le eccezioni in Java (seconda parte)
  • Esercizi di programmazione dinamica e greedy

21 novembre 2019 (Lezioni di laboratorio n° A.6 e B.6)

  • Implementazione di tabelle hash (terza parte)

26 novembre 2019 (Lezione di teoria n° 15)

  • Grafi: introduzione e definizioni
  • Implementazione di grafi tramite liste di adiacenza
  • Implementazione di grafi tramite matrici di adiacenza

27 novembre 2019 (Lezione di teoria n° 16)

  • Visita in ampiezza di grafi: analisi e proprietà
  • Visita in profondità di grafi: analisi e proprietà (prima parte)

28 novembre 2019 (Lezioni di laboratorio n° A.7 e B.7)

  • Assegnamento del progetto
  • Implementazione di tabelle hash (quarta parte)

3 dicembre 2019 (Lezione di teoria n° 17)

  • Visita in profondità di grafi: analisi e proprietà (seconda parte)
  • Ordinamento topologico di un DAG.
  • Versione ricorsiva ed iterativa della visita in profondità

4 dicembre 2019 (Lezione di teoria n° 18)

  • Esercizi di programmazione ad oggetti

5 dicembre 2019 (Lezioni di laboratorio n° A.8 e B.8)

  • Implementazione di tabelle hash (quinta parte)
  • Esercizi su programmazione ad oggetti

10 dicembre 2019 (Lezione di teoria n° 19)

  • Problema del minimo albero ricoprente (MST)
  • Algoritmo di Kruskal
  • Analisi di complessità dell’algoritmo di Kruskal secondo diverse implementazioni
  • Algoritmo di Prim e sua analisi di complessità

17 dicembre 2019 (Lezione di laboratorio n° B.9)

  • Esercizi su programmazione ad oggetti

17 dicembre 2019 (Lezione di teoria n° 20)

  • Dimostrazione di correttezza algoritmi di Prim e Kruskal
  • Problema dei cammini minimi da singola sorgente
  • Algoritmo di Dijkstra (prima parte)

18 dicembre 2019 (Lezione di teoria n° 21)

  • Implementazione dell’algoritmo di Dijkstra tramite liste e heap di minimo, con relativa analisi di complessità
  • Algoritmo di Bellmann-Ford e sua analisi di complessità
  • Problema dei cammini minimi tra tutte le coppie di nodi
  • Algoritmo di Floyd-Warshall (prima parte)

19 dicembre 2019 (Lezione di laboratorio n° A.9)

  • Esercizi su programmazione ad oggetti

7 gennaio 2020 (Lezione di teoria n° 22)

  • Algoritmo di Floyd-Warshall (seconda parte)
  • Esercizi su grafi

8 gennaio 2020 (Lezione di teoria n° 23)

  • Generics, Wildcards e wildcards bounded
  • Invarianza dei Generics e Covarianza degli Array
  • Array di generics: problematicità

9 gennaio 2020 (Lezioni di laboratorio n° A.10 e B.10)

  • Lettura e scrittura di file di testo in Java
  • Esercizi su programmazione ad oggetti

14 gennaio 2020 (Lezione di teoria n° 24)

  • Esercizi in preparazione all’esame

15 gennaio 2020 (Lezioni di laboratorio n° A.11 e B.11)

  • Esercizi in preparazione all’esame

16 gennaio 2020 (Lezioni di laboratorio n° A.12 e B.12)

  • Esercizi in preparazione all’esame

Scopri cosa vuol dire essere dell'Ud'A

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

icona Facebook   icona Twitter

icona Youtube   icona Instagram