Schema della sezione

  • Qui trovate l'elenco delle lezioni già svolte, con il corrispondente PDF della lavagna. Si noti che questi PDF non sono adatti ad essere utilizzati come materiale didattico principale del corso, perché mancano delle spiegazioni e dei commenti che collegano una scritta con un'altra. Dopo la sigla WS (abbreviazione di Walter Savitch) trovate le sezioni del libro di testo che corrispondono alla lezione. La sigla IE (abbreviazione di Irv Englander) indica invece le pagine delle slide tratte dal testo di Irv Englander.

    • 27/9/2022. Presentazione del corso di laurea. Presentazione dell'insegnamento di Programmazione e Algoritmi 1. L'hardware del calcolatore. WS 1.1.1  (lavagna)
    • 28/9/2022. Il software. Interpreti e compilatori. Il linguaggio Java. Il primo programma in Java. WS 1.1.2, 1.1.3, 1.1.4, 1.2.3, 1.2.4 (lavagna)
    • 03/10/2022. LABORATORIO. Introduzione a Linux e all'ambiente operativo dell'aula informatica.
    • 04/10/2022. Algoritmi, collaudo, bug e debugging. L'ambiente di sviluppo: JDK, Visual Studio Code, Git. Commenti e indentazione. Dichiarazione di variabili. I tipi interi e in virgola mobile. WS 1.3.2, 1.3.3, 2.1.1, 2.1.2, 2.1.4, 2.1.5, 2.1.6, 2.4.2, 2.4.3 (lavagna)
      • Si consiglia anche la lettura della sezione 2.4.1 (nomi significativi per le variabili) sebbene non trattata esplicitamente durante la lezione.
    • 05/10/2022. I tipi boolean e char. Gli identificatori. Letterali. Espressioni. Promozioni e conversioni di tipo con il cast. Altre istruzioni di assegnamento. Istruzioni di auto-incremento e auto-decremento.  Il tipo stringa. WS 2.1.3, 2.1.7,2.1.9, 2.1.10, 2.1.11, 2.1.12, 2.1.13, 2.1.14, 2.2.1, 2.2.2, 2.2.3, 2.2.4 (lavagna)
      • Si consiglia anche la lettura delle sezioni 2.1.8 (constanti con nome), 2.2.5 (caratteri di escape) e 2.4.4 (linee guida per l'uso di costanti con nome) sebbene non trattate esplicitamente a lezione.
    • 11/10/2022. Ancora sulla classe String. Il Progetto 2.8.3 del libro di testo. Revisitazione delle operazioni di input/output. L'istruzione if-then-else. WS 2.3.1, 2.3.2, 3.1.1 (lavagna)
    • 12/10/2022. Ancora sull'istruzione if-then-else. Esempio di programma che calcola massimo e minimo di due numeri. Espressioni booelani, operatori di confronto ed operatori logici.  Istruzioni if annidate. WS 3.1.2, 3.1.3, 3.2.1 (lavagna)
    • 17/10/2022. LABORATORIO. Esercitazione su Visual Studio Code, dichiarazione di variabili, assegnamento e selezione.
    • 18/10/2022. If-then-else multi ramo. Confronto tra stringhe. L'operatore condizionale. Il sistema di numerazione binario. WS 3.1.4, 3.1.5, 3.1.6. IE da 3-1 fino 3-29 (lavagna)
      • Si consiglia anche la lettura delle sezioni 3.2.2 (regole di precedenza), e 3.2.3 (input e output di valori boolean) sebbene non trattate esplicitamente a lezione.
    • 19/10/2022. Rappresentazione in modulo e segno e in complemento a due. Overflow. Rappresentazione dei caratteri: codice ASCII e Unicode. IE da 4-1 a 4-15. IE da 5-1 a 5-30. WS 2.2.6. IE (lavagna)
    • 24/10/2022. LABORATORIO. Esercitazioni con i costrutti di assegnamento e selezioni. Il comando switch. WS 3.3.
    • 25/10/2022. Rappresentazione di stringhe e sequenze di escape. Sistema di numerazione ottale ed esadecimale. Numeri frazionari in base 2 e problemi di rappresentazione dei tipi double e float. WS 2.2.5. IE da 3-30 a 3-40 (lavagna)
    • 25/10/2022. Iterazione definita e l'istruzione for. WS 4.1.3, 4.1.4, 4.2.1, 4.2.2, 4.2.4 (ma attenzione, il libro fa prima l'iterazione indefinita e poi quella definita: nel leggere il libro, meglio seguire l'ordine seguito lì)
    • 02/11/2022. Cicli for annidati. L'iterazione indefinita e l'istruzione while (WS 4.1, 4.1.1)
    • 07/11/2022. LABORATORIO. Esercitazione con iterazione definita (e indefinita)
    • 08/11/2022. Ancora su iterazione definita. L'istruzione do-while. WS 4.1.2, 4.2.3 (lavagna)
      • Si consiglia anche la lettura della sezione 4.2.5 (Cicli difettosi)
    • 09/11/2022. Metodi statici. WS 5.1, 5.1.1, 5.1.2, 5.1.3, 5.1.5.(lavagna)
      • Si consiglia anche la lettura delle sezioni 5.1.4 (blocchi) e 5.1.6 (ancora sull'istruzione return) sebbene non trattate esplicitamente a lezione.
    • 14/11/2022. LABORATORIO. Realizzazione di chatbot per Telegram. Esercizi.
    • 15/11/2022. La classe Math. Pila dei record di attivazione. Il debugger. Gli array. WS 5.2, 5.3, 6.1, 6.1.1, 6.1.1, 6.1.3, 6.1.4.
      • Si consiglia anche la lettura della sezione 5.4 (Come  scrivere  i  metodi) e tutte le sue sottosezioni, sebbene non trattate esplicitamente durante la lezione.
    • 16/11/2022. Ancora sugli array. I tipi riferimento. WS 6.1.5, 6.1.7, 6.2.1, 6.2.2, 6.2.4, 6.2.5 (lavagna)
    • 21/11/2022. LABORATORIO. Collaudo dei metodi. Esercizi.
    • 22/11/2022. ESERCITAZIONE. Metodi che modificano gli array sul posto.
    • 23/11/2022. Algoritmi di ricerca lineare e binaria. Ordinamento per selezione. WS 6.3, 6.3.1, 6.3.2, 6.3.3.
    • 2022/11/28. LABORATORIO. Metodi statici, array e test.
    • 29/11/2022. Complessità computazionale: analisi della complessità di un algorimto; caso pessimo ottimo e medio; complessità asintotica. (lavagna)
    • 30/11/2022. Complessità computazionale: analisi complessità della ricerca binaria  del selection sort; complessità minima di un problema. (lavagna)
    • 05/12/2022. LABORATORIO. Un programma completo: l'impiccato.
    • 06/12/2022. Costanti e variabili statiche (o globali). Array multi-dimensionali. WS 2.1.8, 6.4, 6.4.1, 6.4.2 (lavagna)
    • 07/12/2022. Array multidimensionali e array di array. WS 6.4.3, 6.4.4. (lavagna)
    • 12/12/2022. LABORATORIO. Esercizi su array multi-dimensionali e Forza 4.
    • 13/12/2022. Valutazione a corto circuito delle espresisoni booleane. Overloading dei metodi. Ricorsione. WS 3.2.2, 9.3.1, 7.1, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5. (lavagna)
    • 14/12/2022. Progettazione di metodi ricorsivi. Ricerca binaria (ricorsiva) e merge sort. WS 7.2.1, 7.2.2. (lavagna)
    • 19/12/2022. Progettazione del metodo principale di un programma: il gioco del tris.
    • 20/12/2022. Ripasso di complessità computazionale. Complessità computazionale del Merge Sort e relazioni di ricorrenza (lavagna)
    • 21/12/2022. Introduzione alla classi Java come metodo di aggregazione dei dati (record). WS 8, 8.1, 8.1.1, 8.1.2 (lavagna)
    • 09/01/2023. LABORATORIO. Metodi ricorsivi. Oggetti.
    • 10/01/2023. Array di oggetti. Parametri della riga di comando. WS 6.2.3 (lavagna)
    • 11/01/2023. Svolgimento del compito di prova.