MACROAREA 4 – Programmazione Strutturata e OOP
Obiettivi:
Accompagnare lo studente nella transizione da una programmazione semplice e lineare a una più avanzata, modulare e orientata agli oggetti, introducendo strumenti, concetti e pratiche professionali attraverso esercitazioni guidate e piccoli progetti concreti.
1. Programmazione strutturata: modelli e applicazioni
Contenuti:
Cos’è la programmazione strutturata: principi base
Sequenza, selezione, iterazione come strutture fondanti
Suddivisione del programma in moduli e sottoprogrammi
Buone pratiche di scrittura (indentazione, commenti, leggibilità)
Attività:
Analisi e riscrittura di codice disorganizzato in modo strutturato
Costruzione di mini-programmi modulati
Esercizi di decomposizione logica di problemi
2. Oggetti, classi e metodi: introduzione alla programmazione ad oggetti (OOP)
Contenuti:
Il paradigma a oggetti: motivazioni e vantaggi
Differenza tra programmazione procedurale e OOP
Definizione di classi, istanze, metodi, attributi
Costruire oggetti da classi personalizzate
Attività:
Creazione di una classe “Animale” e sue istanze (es. cane, gatto)
Programmare interazioni tra oggetti
Rappresentare concetti del mondo reale (es. Studente, Libro, ContoBancario)
3. Ereditarietà, incapsulamento, polimorfismo
Contenuti:
Ereditarietà: classi base e derivate
Incapsulamento: protezione dei dati e accesso controllato
Polimorfismo: metodi con lo stesso nome ma comportamento diverso
Importanza di questi concetti nella progettazione del software
Attività:
Costruire una gerarchia di classi (es. Veicolo → Auto, Bici)
Usare getter e setter per il controllo degli attributi
Implementare metodi sovrascritti e polimorfi in Python
4. Debugging: trovare e correggere errori
Contenuti:
Tipi di errori: sintattici, logici, di runtime
Strategie per il debugging
Uso di strumenti di debug nei moderni IDE
Messaggi di errore: come interpretarli
Attività:
Correggere un programma con errori deliberati
Annotare bug e spiegare le correzioni
Debug assistito con IDE (Thonny, IDLE, VS Code)
5. Gestione della memoria
Contenuti:
Cos’è la memoria in un programma
Variabili, strutture dati e spazio occupato
Garbage collection in Python
Errori comuni: uso di variabili non inizializzate, sovrascrittura
Attività:
Visualizzazione della memoria con strumenti grafici
Analisi comparata di codice efficiente vs inefficiente
Laboratorio: scrivere codice ottimizzato per occupazione e velocità
6. IDE e ambienti di sviluppo
Contenuti:
Cos’è un IDE e perché usarlo
Confronto tra IDE: Thonny, VS Code, PyCharm, Replit
Struttura di un progetto software in ambiente professionale
Uso integrato di editor, terminale, debugger, versionamento
Attività:
Configurare un ambiente di sviluppo completo
Progetto guida: creare e gestire un'applicazione base in VS Code
Introduzione al controllo di versione con Git (concetti base)
7. Design dell’interfaccia utente
Contenuti:
Concetti base di UI/UX
Interfacce testuali (console), grafiche (GUI) e web
Librerie grafiche per Python (Tkinter, PyGame, PyQt)
Progettare un'interfaccia semplice, usabile e coerente
Attività:
Creare una calcolatrice GUI con Tkinter
Sviluppare un menù interattivo da console
Analizzare e migliorare un’interfaccia esistente
8. Test di un programma
Contenuti:
Cos’è un test e perché è fondamentale
Test manuale e test automatico (unit test)
Scrivere test per funzioni e classi
Validazione del software: casi di input corretti e non previsti
Attività:
Scrivere casi di test per funzioni esistenti
Introdurre il modulo unittest di Python
Progetto finale: costruzione, test e validazione di una mini-app completa
Output didattici attesi:
Scrivere codice strutturato, modulare, leggibile e riutilizzabile
Padroneggiare i concetti fondamentali della OOP con Python
Saper correggere errori, testare programmi e ottimizzarli
Creare interfacce semplici e funzionali
Utilizzare ambienti di sviluppo professionali con strumenti integrati
Avere le basi solide per realizzare progetti complessi e mantenibili
Nessun commento:
Posta un commento