Diario delle lezioni

Corso di Programmazione e Algoritmi 2, modulo di teoria
A.A. 2026/2027

Diario delle lezioni

  • Dove non diversamente specificato, le lezioni sono da 2 ore.

Totale: 24 lezioni da 2 ore (totale 48 ore) per il modulo di teoria da 6 CFU.

23 settembre 2026 (Lezione di teoria n° 1)

  • Presentazione del corso e delle modalità d’esame
  • Richiami di programmazione strutturata
  • Modelli di calcolo: Macchina di Turing e Random Access Machine

24 settembre 2026 (Lezione di teoria n° 2)

  • Non calcolabilità di tutti i problemi
  • Notazioni asintotiche
  • Complessità di algoritmi
  • Tipi di dato definiti dall’utente
  • Variabili e Oggetti in memoria
  • Tipi di dato definiti ricorsivamente

30 settembre 2026 (Lezione di teoria n° 3)

  • Complessità di problemi
  • Introduzione alle strutture dati elementari e ai dizionari
  • Alberi e loro rappresentazione in memoria

1° ottobre 2026 (Lezione di teoria n° 4)

  • Alberi binari di ricerca e loro implementazione in Python

7 ottobre 2026 (Lezione di teoria n° 5)

  • Alberi binari di ricerca e loro implementazione in Python (II parte)

8 ottobre 2026 (Lezione di teoria n° 6)

  • Alberi binari di ricerca e loro implementazione in Python (III parte)
  • Heap: introduzione e definizioni

14 ottobre 2026 (Lezione di teoria n° 7)

  • Heap per implementare code con priorità
  • Esercizio su Heap

15 ottobre 2026 (Lezione di teoria n° 8)

  • Heapsort
  • Esercizi su Heap

21 ottobre 2026 (Lezione di teoria n° 9)

  • Introduzione alla programmazione orientata ad oggetti
  • Incapsulamento
  • Introduzione a campi e metodi di istanza e campi di classe
  • Costruttori
  • Campi di istanza e campi di classe
  • Metodi di istanza
  • Metodi di classe e metodi statici

22 ottobre 2026 (Lezione di teoria n° 10)

  • Information hiding in Python
  • Metodi di accesso e di modifica.
  • Proprietà (alternativa a utilizzo metodi di accesso e modifica)
  • Sistema di dichiarazione di tipi
  • Funzioni come oggetti: passate come parametro, ritornate da altre funzioni
  • Final per campi di istanza
  • Esercizio su numeri razionali (class Razionale)

29 ottobre 2026 (Lezione di teoria n° 11)

  • Ereditarietà
  • Costruttori di classi figlie e parola chiave super
  • Modificatore di accesso per protezione a livello di classe (__) e di gerarchia di classi (_)
  • Il polimorfismo: l’overriding
  • Gerarchia delle classi: la classe object
  • final per metodi di istanza e per classi
  • Possibili relazioni tra classi nella programmazione a oggetti

2 novembre 2026 (Lezione di teoria n° 12)

  • Ereditarietà singola e multipla
  • Method Resolution Order (o Linearizzazione)
  • Strctural subtyping: Protocolli
  • Itaratori

4 novembre 2026 (Lezione di teoria n° 13)

  • Eccezioni in Python: gerarchia, sollevare e catturare eccezioni
  • Il ruolo dell’eccezione StopIteration negli iteratori.
  • Precisazioni sul metodo __eq__
  • Generatori

5 novembre 2026 (Lezione di teoria n° 14)

  • Generics
  • Implementazione di code con tipi generici
  • Calcolo dell’altezza di un albero binario di ricerca in modo iterativo (sfruttando una coda di nodi)
  • Classi astratte e metodi astratti
  • Espressioni numeriche implementate con ereditarietà e classi astratte

11 novembre 2026 (Lezione di teoria n° 15)

  • Esercizi in preparazione all’esonero
  • Introduzione alle tabelle Hash: tabelle a indirizzamento diretto
  • Tabelle Hash: Funzioni di hashing e collisioni

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