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])

13 ottobre 2020 (Lezione di teoria n° 1)

  • Presentazione del corso e delle modalità d’esame
  • Richiami di programmazione strutturata
  • Richiami di complessità di programmi

14 ottobre 2020 (Lezione di teoria n° 2)

  • Tipi riferimento definiti dall’utente
  • Variabili e Oggetti in memoria
  • Stack e Heap nei tipi riferimento
  • Tipi riferimento definiti ricorsivamente
  • Strutture dati: dizionari
  • Introduzione alle strutture dati elementari: Pile e Code

15 ottobre 2020 (Lezioni di laboratorio n° A.1 e B.1)

  • Tipi riferimento definiti dall’utente
  • Array di tipi riferimento
  • Implementazione di pile in Java

20 ottobre 2020 (Lezione di teoria n° 3)

  • Strutture dati: liste
  • Alberi e loro rappresentazione in memoria
  • Alberi binari di ricerca

21 ottobre 2020 (Lezione di teoria n° 4)

  • Heap
  • Heapsort (parte I)

22 ottobre 2020 (Lezioni di laboratorio n° A.2 e B.2)

  • Implementazione di code in Java
  • Implementazione di liste ordinate in Java

27 ottobre 2020 (Lezione di teoria n° 5)

  • Introduzione alla programmazione orientata ad oggetti
  • Incapsulamento
  • Campi di istanza e campi di classe
  • Metodi di istanza e campi di classe

28 ottobre 2020 (Lezione di teoria n° 6)

  • Costruttori e costruttore di default
  • Parola chiave this
  • Modificatori di accesso e Information hiding
  • Metodi di accesso e di modifica
  • Inizializzazione dei campi di istanza

29 ottobre 2020 (Lezioni di laboratorio n° A.3 e B.3)

  • Implementazione di alberi binari di ricerca in Java
  • Verifica sperimentale dell’altezza di un albero di ricerca casuale

3 novembre 2020 (Lezione di teoria n° 7)

  • Modificator final
  • Classe String
  • Introduzione agli ArrayList
  • Classi involucro

4 novembre 2020 (Lezione di teoria n° 8)

  • Ereditarietà
  • Costruttori di classi figlie e parola chiave super
  • Gerarchia delle classi in Java: la classe Object
  • Il polimorfismo: l’overriding
  • Ereditarietà singola
  • Modificatore di accesso “protected”
  • Metodo toString

5 novembre 2020 (Lezioni di laboratorio n° A.4 e B.4)

  • Package
  • Esercizi su programmazione a oggetti
  • Implementazione del’Heap e dell’HeapSort in Java
  • Java Generics: metodi generici
  • Java Generics: implementazione di Liste di elementi

10 novembre 2020 (Lezione di teoria n° 9)

  • Metodo equals: significato ed implementazione
  • Tipo statico e tipo dinamico di variabili di tipo riferimento
  • Selezione della firma con overriding e overloading
  • Possibili relazioni tra classi nella programmazione a oggetti

11 novembre 2020 (Lezione di teoria n° 10)

  • import static
  • modificatore final per metodi di istanza
  • Classi astratte e metodi astratti
  • Esercizi su classi astratte

12 novembre 2020 (Lezioni di laboratorio n° A.5 e B.5)

  • Esercizi su programmazione a oggetti, ereditarietà e classi astratte

17 novembre 2020 (Lezione di teoria n° 11)

  • Le interfacce
  • Metodi di default
  • Introduzione alle tabelle Hash

18 novembre 2020 (Lezione di teoria n° 12)

  • Funzioni di hashing
  • Hashing esterno con liste di trabocco
  • Hashing interno: ispezione lineare e hashing doppio
  • Gestione delle cancellazioni nell’hashing interno

19 novembre 2020 (Lezioni di laboratorio n° A.6 e B.6)

  • Implementazione di tabella Hash in Java (prima parte)

24 novembre 2020 (Lezione di teoria n° 13)

  • Le eccezioni in Java

25 novembre 2020 (Lezione di teoria n° 14)

  • Introduzione alla programmazione dinamica
  • Il problema delle attività compatibili

26 novembre 2020 (Lezioni di laboratorio n° A.7 e B.7)

  • Implementazione di Stack con generics ed eccezioni
  • Implementazione di tabelle hash (seconda parte)
  • Classe Chrono per la misurazione delle performance di programmi java
  • Esercizi

1° dicembre 2020 (Lezione di teoria n° 15)

  • Algoritmi Greedy
  • Grafi: introduzione e definizioni

2 dicembre 2020 (Lezione di teoria n° 16)

  • Implementazione di grafi tramite liste di adiacenza
  • Implementazione di grafi tramite matrici di adiacenza
  • Visita in ampiezza di grafi: analisi e proprietà

3 dicembre 2020 (Lezioni di laboratorio n° A.8 e B.8)

  • Assegnazione del progetto
  • Dichiarazioni delle variabili con var (tipo inferito)
  • Iteratori: interfacce Iterable e Iterator
  • Iteratori per Liste
  • Esercizi

9 dicembre 2020 (Lezione di teoria n° 17)

  • Visita in profondità di grafi: analisi e proprietà
  • Applicazioni della visita in profondità: Componenti connesse e verifica di ciclicità

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

  • Iteratori per tabelle hash con liste di trabocco
  • Implementazione di tabelle hash (terza parte)
  • Esercizi

15 dicembre 2020 (Lezione di teoria n° 18)

  • Ordinamento topologico di un DAG
  • Versione ricorsiva ed iterativa della visita in profondità
  • Problema del minimo albero ricoprente (MST)
  • Algoritmo di Kruskal
  • Analisi di complessità dell’algoritmo di Kruskal secondo diverse implementazioni

16 dicembre 2020 (Lezione di teoria n° 19)

  • Algoritmo di Prim e sua analisi di complessità
  • Dimostrazione di correttezza algoritmi di Prim e Kruskal

17 dicembre 2020 (Lezione di laboratorio n° A.10 e B.10)

  • Esercizi su programmazione ad oggetti

22 dicembre 2020 (Lezione di teoria n° 20)

  • Problema dei cammini minimi da singola sorgente
  • Algoritmo di Dijkstra e sua analisi di complessità
  • Algoritmo di Bellmann-Ford e sua analisi di complessità

7 gennaio 2021 (Lezione di laboratorio n° A.11 e B.11)

  • Esercizi su programmazione ad oggetti

12 gennaio 2021 (Lezione di teoria n° 21)

  • Problema dei cammini minimi tra tutte le coppie di nodi
  • Algoritmo di Floyd-Warshall (I parte)

13 gennaio 2021 (Lezione di teoria n° 22)

  • Algoritmo di Floyd-Warshall (II parte)
  • Java Generics: type erasure
  • Invarianza dei Generics e Covarianza degli Array
  • Array di Generics: problematicità

14 gennaio 2021 (Lezioni di laboratorio n° A.12 e B.12)

  • Java Generics: Wildcards e wildcards bounded
  • Lettura e scrittura di file di testo in Java
  • Lettura e scrittura di file di binari in Java: interfaccia Serializable
  • Interfaccia Comparable
  • Esercizi su programmazione ad oggetti

19 gennaio 2021 (Lezione di teoria n° 23)

  • Esercizi su strutture dati
  • Esercizi su algoritmi per grafi

20 gennaio 2021 (Lezione di teoria n° 24)

  • 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