Il corso e' finalizzato a formare programmatori esperti che intendono ridurre drasticamente i tempi di sviluppo, migliorare notevolmente la qualita' del software e organizzare al meglio la propria operativita' attraverso i principi dettati dalle metologie di sviluppo agile.
Il percorso si apre con una visione generale sui concetti fondamentali dell'ingegneria del software, con particolare attenzione verso i diversi modelli organizzativi finalizzati a strutturare i processi operativi appartenenti a cio' che viene definito come ciclo di vita del software.
Diversi approcci e dinamiche a confronto daranno modo allo studente di comprendere l'importanza di un'approccio di tipo strutturato e di conoscere nel dettaglio le diverse fasi operative che saranno in grado di trasformare una serie di requisiti iniziali in un prodotto software finale in grado di adempiere nel migliore dei modi agli obbiettivi prefissati.
Un'analisi accurata delle metodologie classiche mettera' lo studente nelle condizioni di cogliere in modo del tutto consapevole gli enormi vantaggi che le piu' moderne metodologie agili sono in grado di offrire.
Segue un dettagliato approfondimento sui principi sostanziali che costituiscono il cuore concettuale dell'approccio metodologico di tipo agile.
Concetti quali la pianificazione adattiva, il pair-programming, i cross-functional teams e molto altro, forniranno allo studente dei potentissimi strumenti che gli faranno cogliere e apprezzare a pieno l'agilita', la flessibilita' e l'efficacia che solo un'approccio di tipo agile puo' garantire.
Diversi framework e scuole di pensiero agili quali Scrum ed Extreme Programming verranno analizzate e messe a confronto, cosicche' lo studente possa scegliere in autonomia quale approccio piu' si adatta alle proprie esigenze e sia provvisto di un panorama abbastanza ampio per renderlo in grado di poter applicare un metodo di tipo personalizzato, avvalendosi dei punti di forza piu' rilevanti con criterio trasversale.
Terminata la parte concettuale, verra' trattata la parte piu' sostanziosa e interattiva del percorso: la progettazione e lo sviluppo del codice attraverso tecniche di tipo agile.
Mediante l'utilizzo di esempi pratici, esercitazioni collettive e di gruppo, lo studente potra' osservare in modo diretto i frutti delle nozioni apprese attraverso la stesura di moduli software concreti realizzati secondo i criteri dello sviluppo agile. Verrano approfondite tematiche importanti sulla progettazione del software orientata agli oggetti, la modellizzazione UML, l'utilizzo di framework ad oggetti e concetti operativi fondamentali come il test-driven development e il rapid refactoring.
Completata questa fase e ottenuta la dovuta confidenza sul fronte pratico, lo studente potra' presentarsi nel mondo del lavoro come un programmatore esperto in grado di produrre software di alta qualita' in tempi rapidissimi grazie alla sue forti competenze in termini di sviluppo agile.
La parte finale del percorso potra' svilupparsi attraverso un qualsiasi linguaggio di programmazione ad oggetti.
Prerequisiti
Conoscenza minima dei principi di progettazione del software.
Programma Didattico
Il Programma si compone delle seguenti
Unità Didattiche:
"Ottima formazione su Excel, per le modalita' di svolgimento del corso, le capacita' del relatore e gli esercizi pratici."