Section outline

  • Questo è l'elenco dettagliato delle lezioni (normalmente due ore, se non diversamente specificato). Per ogni lezione sono specificate le parti del libro di testo corrispondenti. Le sezioni denominate "Strumenti" nel libro di testo sono normalmente escluse, a meno di indicazione espressamente contraria.

    Programmazione e Algoritmi 1
    • 25/09 (1 ora): Presentazione dell'insegnamento di Programmazione e Algoritmi 1. Hardware e software. Programmazione in linguaggi a basso ed alto livello. (sezioni 1.1, 1.2, 1.3, argomenti avanzati 1.1)
    • 26/09: Algoritmi. Interagire con Python e l'ambiente di sviluppo Visual Studio Code. (sezioni 1.7, 1.4, 1.5, 1.6)
    • 28/09 (1 ora): Variabili. Tipi di dato intero e float. (sezioni 2.1, 2.2.1, 2.2.2).
      Attenzione
      : il libro suggerisce di utilizzare la convenzione camel case per i nomi delle variabili, ma generalmente in Python è preferita la convenzione snake case. Consultare il notebook del 3 ottobre per maggiori informaziomni.
    • 03/10: Funzioni built-in. Moduli. Convenzioni e stile di programmazione. Il tipo stringa. (sezioni 2.2.3, 2.2.4, 2.2.5, 2.3, 2.4.1, 2.4.2, 2.4.4,
      Attenzione: il libro non mostra come estrarre sottostringhe con le parentesi quadre, ma solo come estrarre singoli caratteri. Consultare il notebook del 3 ottobre per informazioni sull'estrazione di sottostringhe.
    • 05/10: Metodi per operare sulle stringhe. Conversioni di Tipo. Sequenze di escape. Grafica con Python. (sezioni 2.4.3, 2.4.5, 2.5, 2.6)
      Attenzione: il libro all sezione 2.5.3 vi spiega un modo un po' obsolete per formattare numeri e stringhe per l'output. Noi ne parleremo nella lezione del 19 ottobre, usando però un metodo più moderno che è quello delle f-stringhe.
    • 12/10: L'istruzione if. Operatori relazionali. Istruzioni if annidate. Diagrammi di flusso. Esecuzione passo passo del codice. La codifica ASCII/Unicode  (sezioni 3.1, 3.2, 3.3, 3.5)
    • 17/10: La clausola elif. Il tipo bool e gli operatori logici. Testing. (sezioni 3.4, 3.6, 3.7, 3.8, 3.9)
    • 19/10: L'operatore condizionale. Formattazione dell'output: le f-stringhe. Linux e software libero.
    • 24/10: L'istruzione while e l'iterazione indefinita. (sezioni 4.1, 4.2, 4.3)
    • 31/10: Istruzione for. Cicli annidati. (sezioni 4.6, 4.7)
    • 02/11: Manipolazione di stringhe (sezione 4.8)
    • 07/11: Numeri pseduo-casuali e programmi di simulazione. Elaborazione di immagini con la libreria ezgraphics. Funzioni: uso e definizione (sezioni 4.9, 4.10, 5.1 - 5.8)
    • 09/11: Esecuzione passo-passo di programmi con funzioni. Visibilità delle variabili. Documentazione di funzioni. Sviluppo di programmi con funzioni (sezioni 5.1 - 5.8)
    • 14/11: Ancora sulle funzioni. Le liste. (sezioni 6.1, 6.2)
    • 16/11: Esempi sull'uso delle liste. Variabili come riferimenti a oggetti. (sezioni 6.3, 6.4, 6.5)
    • 21/11: Funzioni che modificano le liste sul posto. Tuple. L'algoritmo di ricerca lineare rivisitato. Misura delle prestazioni del codice Python. (sezioni 6.5, 6.6)
    • 23/11: Ricerca binaria. Ordinamento per selezione. (sezioni 12.1 e 12.6)
      Attenzione: il libro mostra una implementazione ricorsiva della ricerca binaria. Noi non abbiamo ancora studiato la ricorsione, per cui abbiamo presentato una implementazione iterativa)
    • 28/11: Complessità dell'ordinamento per selezione. Rappresentazione di tabelle tramite liste di liste. (sezioni  6.7 e 12.3)
    • 30/11: (1 ora) Ancora sulla rappresentazione di tabelle.
    • 07/12: Ancora sulla rappresentazione di tabelle.
    • 12/12: Ricorsione (sezioni 5.10, 11.1, 11.2)
    • 14/12: Efficienza del codice ricorsivo. Uso di funzioni ricorsive ausiliarie (sezione 11.3)
    • 19/12: Efficienza della ricorsione. I file. (sezioni 11.4, 7.1, 7.4)
    • 21/12: Le eccezioni. Parametri opzonali. Passaggio parametri per nome. (sezioni 7.5)
    • 09/01: Ordinamento per fusione. (sezioni 12.4, 12.5)
    • 11/01: Esempio di svolgimento compito scritto.

    Laboratorio di Programmazione 1
    • 02/10: Introduzione all'uso dell'aula informatica. Esercitazione sull'uso di Python.
    • 09/10: Esercitazione su tipi numerici, stringhe e grafica.
    • 16/10: Preferenze in VSCode. Esercitazione sulla istruzione if.
    • 23/10: Input tramite mouse. L'istruzione match. Esercitazione su f-stringhe ed espressione condizionale.
    • 30/10: Esercizi sull'istruzione while (sezione 4.5)
    • 06/11: Esercizi sull'istruzione for
    • 13/11: L'uso del debugger. Esercizi sulle funzioni (esempi completi 5.3)
    • 20/11: Collaudo di funzioni con la libreria PyTest. Esercizi sulle liste.
    • 27/11: Il gioco dell'impiccato.
    • 04/12: Esercizi su tabelle come liste di liste.
    • 11/12: Il gioco Forza4
    • 18/12: Esercizi sulla ricorsione