giovedì 3 aprile 2025

Corso di Fondamenti di Informatica e Programmazione: 4 Programmazione Strutturata e OOP (in preparazione)

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

SILICIO E NUVOLE News 8 luglio 2025

8 luglio 2025 📡 SILICIO E NUVOLE Tutti i mondi. Tutti i giorni. 🖥️ Informatica, Tecnologia, Innovazione Benvenuti all’edizione...