Gestione progetto e organizzazione d'impresa

Anno scolastico: 2025/2026 - Classi: 5INB / 5INC

L'obiettivo del corso è quello di insegnare le basi della gestione del ciclo di sviluppo dei progetti software, utilizzando tecnologie come i Version Control Systems (VCS), Git e altri.


Lezione 1 - Introduzione al corso

Argomenti:
  • Motivi per studiare Gestione Progetto;
  • Lo sviluppo collaborativo;
  • I Version Control Systems (VCS):
    • Caratteristiche principali;
    • Parole chiave (commit, branch e merge).
  • Introduzione a Git.
Materiali
Slides della lezione
(link)

Lezione 2 - Fondamenti di Git

Argomenti:
  • Cenni storici;
  • Configurazione profilo utente;
  • Comando git init;
  • Comando git commit -m "[...]".
Materiali
Slides della lezione
(link)
Esercizio 1 - Lo Zoo di Java
(link)

Lezione 3 - Funzioni di hash e commit

Argomenti:
  • Funzioni di hash;
  • Composizione di un commit:
    • Intestazione (autore, data e messaggio);
    • Modifiche dei file selezionati.
  • Navigazione nello storico dei commit:
    • Comando git checkout;
    • Puntatore HEAD;
    • Concetto di detached head.
Materiali
Slides della lezione
(link)
Esercizio 2 - La macchina del tempo
(link)

Lezione 4 - Gestione dei branch

Argomenti:
  • I branch in un VCS:
    • Definizione di branch;
    • Motivi per creare un branch;
    • Esempio: con o senza Git?
  • I branch in Git:
    • Creazione di un nuovo branch;
    • Visualizzazione dei branch in un repository;
    • Navigazione tra i branch;
  • Viaggio tra le dimensioni:
    • Detached head;
    • Regole di add e commit;
  • L'operazione di merge:
    • Definizione di merge;
    • Comandi per Git Bash.
Materiali
Slides della lezione
(link)
Esercizio 3 - Viaggio nelle dimensioni (1)
(link)

Lezione 5 - I conflitti nei merge

Argomenti:
  • L'operazione di merge:
    • Definzione;
    • Comando git merge;
    • Il commit di merge.
  • I conflitti nell'operazione di merge:
    • Come risolvere un conflitto;
    • Gestione delle modifiche;
    • Differenze tra HEAD e branch.
Materiali
Slides della lezione
(link)
Esercizio 4 - Segreteria dell'Accademia
(link)

Lezione 6 - Git Flow (parte 1)

Argomenti:
  • Introduzione a Git Flow:
    • Modello di funzionamento;
    • Elenco dei vari branch.
  • I branch di Git Flow:
    • Il branch development;
    • Il branch feature/[...];
    • Il branch release/[...];
    • Il branch hotfix/[...].
Materiali
Slides della lezione
(link)
Dispensa - "Learn Git Branching"
(link)

Lezione 7 - Git Flow (parte 2)

Argomenti:
  • L'estensione Git Flow:
    • Uso del comando git flow init;
    • Configurazione iniziale dei branch.
Materiali
Slides della lezione
(link)
Esercizio 5 - Wattpad
(link)

Lezione 8 - Introduzione a GitHub

Argomenti:
  • Introduzione a GitHub:
    • Cenni storici;
    • Git + GitHub = VCS ibrido.
  • Creazione del repository:
    • Nome e descrizione;
    • Visibilità (pubblico / privato);
    • Cenni su .gitignore;
    • Cenni sulle licenze.
  • Credenziali e sicurezza:
    • Gestione dei Personal Access Tokens;
    • Gli Scope di un token;
    • Salvataggio delle credenziali su Git.
  • Lavorare sul repository:
    • Comandi git clone e git remote add [...];
    • Comando git pull;
    • Comando git push.
Materiali
Slides della lezione
(link)
Esercizio 6 - Hello World (GitHub)
(link)

Lezione 9 - Gestione delle Pull Request

Argomenti:
  • Concetto di Pull Request (PR):
    • Ripasso su operazione di merge;
    • Operazione di merge in cloud.
  • Sviluppo condiviso:
    • Fasi di approvazione di una PR;
    • Tag(s) della PR:
      • Revisori (Reviewers);
      • Assegnatari (Assignees);
      • Etichette (Labels).
    • Chiusura di una PR.
Materiali
Slides della lezione
Progetto di Natale
Slides della lezione
(link)
Approfondimento - API REST con PHP + JS
(link)
Approfondimento - Query SQL con PHP
(link)

Indice delle lezioni:

Calendario delle lezioni
Classe 5INB
Ogni venerdì
11:20 / 13:00 - Aula S51
Classe 5INC
Ogni venerdì
13:00 / 14:40 - Aula 104