martedì 28 gennaio 2025

Corso Applicazioni e Progetti Reali Informatici: 1 Project Work: costruire un programma con tracce guidate

🎯 Obiettivi del modulo

  • Applicare concretamente le conoscenze acquisite nei moduli precedenti.
  • Acquisire competenze nella progettazione, sviluppo e testing di un'applicazione software.
  • Sviluppare capacità di collaborazione, organizzazione del lavoro, gestione del tempo e dei ruoli.
  • Familiarizzare con strumenti di supporto alla programmazione: diagrammi di flusso, pseudocodice, debugging.

📚 Contenuti del modulo

1. Analisi del problema e stesura dei requisiti

  • Cosa vuol dire “analizzare un problema”: esigenze, utenti finali, contesto d’uso.
  • Come si scrive un documento dei requisiti: funzioni essenziali, optional, vincoli.
  • Esempi: diario digitale, quiz interattivo, calcolatrice evoluta.

2. Scelta del linguaggio e degli strumenti

  • Come scegliere il linguaggio (es. Python per semplicità e sintassi leggibile).
  • IDE e ambienti consigliati: Thonny, Replit, Visual Studio Code, Jupyter.
  • Librerie utili (Tkinter per GUI, random, datetime, math).

3. Progettazione e pianificazione

  • Pseudocodice: che cos’è e come scriverlo.
  • Diagrammi di flusso: come rappresentano visivamente la logica.
  • Divisione del lavoro in fasi: input, elaborazione, output, salvataggio dati, ecc.

4. Implementazione graduale

  • Sviluppo incrementale: partire dal nucleo minimo funzionante.
  • Debugging continuo: testare ogni passaggio.
  • Versioni successive: aggiunta di funzioni extra, miglioramenti grafici, validazione input.

🛠️ Attività pratiche

🔹 Attività 1: Tracce guidate (a scelta)

Ogni traccia può essere proposta individualmente o in gruppi.

A. Il Diario Digitale

  • L’utente può scrivere una nuova nota, rileggere le note passate, cancellare una voce.
  • Usa data/ora per indicizzare le note.
  • Salva le note su file .txt.

B. Il Gioco Quiz

  • Presenta una domanda e 3 risposte possibili.
  • Valuta la risposta e dà un punteggio finale.
  • Funzioni aggiuntive: tempo limite, livelli di difficoltà, classifica locale.

C. Calcolatrice Intelligente

  • Operazioni base: somma, sottrazione, moltiplicazione, divisione.
  • Funzioni avanzate: radice quadrata, potenza, media di n numeri.
  • Versione con GUI: interfaccia semplice con bottoni (opzionale, per avanzati).

🔹 Attività 2: Lavoro in gruppo (facoltativo per contesti formativi)

  • Ogni gruppo sceglie un progetto tra quelli proposti o ne inventa uno.
  • I ruoli:
    • Developer: scrive il codice.
    • Tester: verifica ogni funzione, registra i bug.
    • Designer: cura l’interfaccia (testuale o grafica).
    • Scrittore (opzionale): documenta il progetto.
  • Riunioni periodiche di revisione con feedback del tutor.

🔹 Attività 3: Diario di bordo

  • Ogni partecipante tiene un diario del progetto: idee, problemi, soluzioni trovate.
  • Alla fine, ogni gruppo o individuo presenta il progetto e il percorso fatto.

🧪 Esercizi di supporto

Esercizio 1 – Analisi dei requisiti (per tutti i progetti)

Compila questo schema per uno dei tre progetti proposti:

  • Nome del progetto: ___________
  • Obiettivo principale: ___________
  • Utente tipo: ___________
  • Funzionalità richieste: ___________
  • Requisiti opzionali: ___________
  • Limiti tecnici (es. solo testo, no database): ___________

Esercizio 2 – Scrivi il pseudocodice di una funzionalità

Esempio: pseudocodice per "inserisci una nuova nota nel diario"

Inizio
   Chiedi all’utente di inserire il testo della nota
   Ottieni la data e ora attuali
   Apri il file delle note in modalità scrittura
   Scrivi la data, ora e testo nel file
   Chiudi il file
   Mostra “Nota salvata con successo”
Fine

Esercizio 3 – Crea un diagramma di flusso

Rappresenta con un diagramma la logica di una delle funzioni chiave (es. verifica risposta nel quiz, o scelta dell’operazione nella calcolatrice).


Test di autovalutazione finale

1. Qual è la funzione di un diagramma di flusso in fase progettuale?

a. Aiuta a scrivere direttamente il codice
b. Mostra visivamente la logica e i passaggi di un processo ✅
c. È obbligatorio per tutti i progetti
d. Serve solo ai designer


2. Qual è la differenza tra pseudocodice e codice vero?

a. Nessuna, sono sinonimi
b. Il pseudocodice è scritto in linguaggio naturale strutturato ✅
c. Il codice vero è più semplice
d. Il pseudocodice funziona anche se non lo esegui


3. Cos’è il “debugging”?

a. Un tipo di programma per costruire interfacce
b. L’eliminazione dei bug (errori) nel codice ✅
c. La scrittura automatica di funzioni
d. La scelta del linguaggio


4. Cosa indica il termine “implementazione incrementale”?

a. Sviluppare il programma tutto in una volta
b. Iniziare da funzioni facili e aggiungere poi quelle complesse ✅
c. Sviluppare una versione per ciascun utente
d. Usare più linguaggi nello stesso progetto


📈 Valutazione finale

  • Presentazione del progetto (orale o scritta)
  • Funzionalità del codice (verifica tutor o test automatici)
  • Organizzazione del lavoro e documentazione
  • Capacità di debugging e problem solving


Nessun commento:

Posta un commento

Come sopravvivere con l'informatica: Neurosimulators: deep learning ispirato al cervello

  📌 Neurosimulators: deep learning ispirato al cervello La prossima rivoluzione dell’intelligenza artificiale potrebbe arrivar...