Descrizione del corso:
Il corso “AI Full Stack Developer” mira a formare la figura professionale dell’AI Developer, fornendo agli allievi e alle allieve interessati le conoscenze necessarie per sviluppare competenze specifiche inerenti all’implementazione di modelli e sistemi basati sull’Intelligenza Artificiale. Iscrivendosi al progetto formativo “AI Full Stack Developer”, i corsisti impareranno ad applicare i principi fondamentali dell’analisi e della progettazione dei sistemi informatici, comprese le applicazioni che utilizzano l’Intelligenza Artificiale (AI), individuando i metodi e le tecniche più efficaci per progettare e realizzare software applicativi in termini di funzioni, strutture dati, algoritmi risolutivi e modelli di apprendimento automatico. Si applicheranno i principali paradigmi della programmazione Object Oriented alle fasi di progettazione e sviluppo del software applicativo, per poi integrare i metodi e le tecniche per progettare e modellare i Database, includendo i requisiti specifici per le applicazioni che utilizzano l’Intelligenza Artificiale (AI). Ci si affaccerà, inoltre, allo sviluppo di segmenti di codice e procedure per applicazioni client-server e web; fino ad utilizzare correttamente una piattaforma per lo sviluppo di soluzioni Mobili, applicando le tecniche e le metodologie di sviluppo di applicazioni per le più diffuse piattaforme: dall’interfaccia grafica, alla business logic, al packaging finale e alla loro distribuzione su App Store e Android Market. Nel quadro formativo proposto, si punta a far conoscere e comprendere i vantaggi e le limitazioni delle applicazioni cloud e delle applicazioni AI su cloud al fine di svilupparle e integrare la propria applicazione web, secondo i meccanismi di Cloud Computing. Fornendo le basi per sviluppare e realizzare applicativi Web in grado di adattarsi ad ogni dispositivo e migliorarsi in relazione ai dati utilizzati, obiettivo finale del corso diviene la capacità di applicare i principi, le tecniche e gli strumenti per lo sviluppo di applicazioni software che integrano componenti di Intelligenza Artificiale (AI), con particolare attenzione alla progettazione, all’addestramento, al test e alla distribuzione di modelli di apprendimento automatico (Machine Learning). Sviluppare applicazioni software che sfruttano le potenzialità dell’AI per risolvere problemi complessi e fornire funzionalità avanzate, garantendo la sicurezza e rispettando le normative in materia di privacy, è ciò su cui si incentra il profilo professionale dell’AI Developer.
Architettura e struttura del corso.
Definizione di applicazioni informatiche
Obbiettivi formativi
-
- Acquisire conoscenze e abilità per applicare i principi fondamentali dell’analisi e della progettazione dei sistemi informatici, incluse le applicazioni che utilizzano l’Intelligenza Artificiale (AI), individuando i metodi e le tecniche più efficaci per progettare e realizzare software applicativi in termini di funzioni, strutture dati, algoritmi risolutivi e modelli di apprendimento automatico.
- Acquisire le competenze utili a produrre documenti di analisi e progettazione, considerando gli aspetti specifici delle applicazioni AI, come la progettazione di pipeline di addestramento e distribuzione dei modelli di apprendimento automatico, la gestione dei dati per l’addestramento, l’integrazione di componenti AI nelle architetture software e la spiegabilità dei modelli.
Contenuti del modulo
Analisi dei processi di progettazione e sviluppo del software applicativo:
- Processi per lo sviluppo del software; processo a cascata; processo iterativo, evolutivo e agile; Unified Process (UP) tecniche di programmazione
- I Requisiti del software: Requisiti, Casi d’uso, Altri requisiti, inclusi quelli specifici per le applicazioni AI
- Analisi orientata agli oggetti: Modelli di dominio, Diagrammi di sequenza di sistema, Contratti delle operazioni ·
- Mockup, prototipazione wireframe e demo, inclusi mockup per funzionalità AI ·
- Le interviste con il cliente, incluse le interviste per comprendere i requisiti delle applicazioni AI
- Processi di modellazione del software, inclusi i processi di modellazione per l’apprendimento automatico
- Domain Driven Design
- Architetture e Patterns, inclusi gli pattern specifici per applicazioni AI ·
- Design Patterns
- TDD: Test Driven Development, inclusi i test per i modelli di apprendimento automatico
- Principi di apprendimento automatico (Machine Learning) e Deep Learning
- Tecniche di preparazione dei dati e di elaborazione dei dati per l’apprendimento automatico ·
- Librerie e framework per lo sviluppo di applicazioni AI (ad es. TensorFlow, PyTorch, Scikit-learn, Keras)
Progettazione Object Oriented
Obbiettivi formativi
-
- Acquisire conoscenze e abilità utili ad applicare i principali paradigmi della programmazione a oggetti e i concetti fondamentali dell’Intelligenza Artificiale alle diverse fasi di progettazione e sviluppo del software applicativo, incluse le applicazioni che integrano componenti di apprendimento automatico, avvalendosi dei principali software di Design Object Oriented e degli strumenti e framework per lo sviluppo di applicazioni AI.
- Acquisire le competenze per progettare e sviluppare applicazioni software che utilizzano modelli di apprendimento automatico, inclusi la preparazione dei dati per l’addestramento, l’implementazione di pipeline di addestramento e test dei modelli, l’integrazione dei modelli addestrati nelle architetture software secondo best practice e pattern architetturali specifici.
Contenuti del modulo
I Paradigmi di programmazione O.O.
- Il linguaggio di rappresentazione dei sistemi UML
- Progettazione di gerarchie di oggetti
- Notazione e Semantica
- Codifica di oggetti per l’interfaccia
- Utilizzo di tool per la rappresentazione grafica UML
- Standard OMG
- UML: Meta – modello e diagrammi
- Diagrammi logici, di implementazione e d’uso
- Diagrammi delle classi e diagrammi di sequenza
- Filosofia della programmazione ad oggetti
- Incapsulamento, astrazione, ereditarietà, polimorfismo
- Analisi e progettazione di software Object Oriented
- Principi di apprendimento automatico (Machine Learning) e Deep Learning
- Tecniche di preparazione dei dati e di elaborazione dei dati per l’apprendimento automatico
- Librerie e framework per lo sviluppo di applicazioni AI (ad es. TensorFlow, PyTorch, scikit-learn, Keras)
- Integrazione di componenti AI in applicazioni object-oriented
- Diagrammi e modelli per rappresentare le componenti AI nelle applicazioni
Definire, creare e gestire database
Obbiettivi formativi
-
- Acquisire conoscenze e abilità per applicare i metodi e le tecniche per progettare e modellare i Database dal punto di vista concettuale, logico, fisico, gestire l’accesso ai dati ed eseguire l’elaborazione delle informazioni in modalità SQL e no-SQL, inclusi i requisiti specifici per le applicazioni che utilizzano l’Intelligenza Artificiale (AI).
- Acquisire le competenze per progettare e gestire data lake e architetture di archiviazione e gestione dei dati per l’addestramento dei modelli di apprendimento automatico, considerando aspetti come la qualità dei dati, la gestione di grandi volumi di dati, l’integrazione con pipeline di elaborazione e preparazione dei dati per l’AI.
Contenuti del modulo
Progettazione e modellazione dei database:
- Elementi fondamentali dei Database informatici
- Classificazione dei Database: Relazionali, Document, Key-Valued, Column family ecc.
- Metodi di progettazione, creazione, gestione di database relazionali e non relazionali
- Le tipologie di database e le loro applicazioni
- Tecniche e metodi di accesso ai dati correlati alla tipologia di Database e di applicazione
- Progettazione e gestione di Database non relazionali
- Modelli avanzati di Basi di Dati: Datawarehouse e GIS
- Tecniche di Data Mining e Data Visualization
- Data lake e architetture di archiviazione e gestione dei dati per l’AI
Sviluppo di software applicativi con il framework di riferimento
Obbiettivi formativi
-
- Acquisire conoscenze e abilità per sviluppare routine, funzioni, segmenti di codice e procedure per applicazioni client-server e web, seguendo le architetture standard ed enterprise, avvalendosi dei framework di riferimento e applicando gli standard cogenti. Pianificare e implementare procedure di test a vari livelli (unit test, function test, system test) e gestire il rilascio delle applicazioni.
- Acquisire conoscenze sui principi di base dell’apprendimento automatico (Machine Learning), sulle librerie e i framework per lo sviluppo di applicazioni AI (ad es. TensorFlow, PyTorch, scikit-learn, Keras), e sulle sfide e best practice relative all’addestramento, al test e alla distribuzione di modelli di apprendimento automatico in produzione.
Contenuti del modulo
Programmazione software
- Concetti fondamentali di architettura delle piattaforme software del framework di riferimento
- Principi e fondamenti del funzionamento delle tecnologie software
- Paradigmi di programmazione a oggetti e la loro implementazione pratica in classi software, senza riferimenti specifici a linguaggi o framework.
- Sviluppo di applicazioni console e comprensione dei principali concetti di gestione degli errori e delle eccezioni.
- Progettare e implementare applicazioni grafiche
- Principi e fondamenti dell’accesso ai dati e interazione con database, inclusi i database e i data lake per l’addestramento dei modelli AI.
- Principali design pattern software, inclusi i pattern architetturali come MVC e le best practice di sviluppo.
- Sviluppo web, inclusi i principi di multi-tier architecture e le tecniche di programmazione web
- Principali tecniche di comunicazione e integrazione tra sistemi software
- Sviluppo guidato dai test (Test Driven Development) e le best practice associate
- Principi di base dell’apprendimento automatico (Machine Learning) e dell’intelligenza artificiale
- Librerie e i framework per lo sviluppo di applicazioni AI (ad es. TensorFlow, PyTorch, scikit-learn, Keras)
- Integrazione dei modelli di apprendimento automatico in applicazioni software
- Comprendere le sfide e le best practice relative all’addestramento, al test e alla distribuzione di modelli di apprendimento automatico in produzione.
Sviluppo di applicazioni mobile
Obbiettivi formativi
Acquisire le conoscenze e le abilità necessarie a utilizzare correttamente una piattaforma per lo sviluppo di soluzioni mobili, applicare le tecniche e le metodologie di sviluppo di applicazioni per le più diffuse piattaforme: dall’interfaccia grafica, alla business logic, al packaging finale e alla loro distribuzione su App Store e Android Market.
Contenuti del modulo
Le soluzioni mobile
- Il linguaggio Object-Oriented di riferimento per un dato dispositivo mobile
- Le librerie di base del dispositivo
- Progettazione di user interface
- Dati in dispositivi mobili
- Performance
- Web Views e Location & Maps
- Gestione di add-on quali Accelerometri, fotocamere ecc.
- Gestione delle batterie e sistemi di alimentazione
- API per l’audio e il video
- Web Content Settings
- Data Storage
- GPS, Mappe, geolocalizzazione
- Gestione delle lingue e culture
- Realizzazione e sviluppo di App internazionalizzate
- Comunicazioni Peer-to-Peer
- Web app
- Sviluppo di applicazioni web responsive fruibili anche da dispositivi mobile
- Realizzazione e sviluppo di una App e inserimento sullo store
Applicazioni cloud – AI
Obbiettivi formativi
-
- Acquisire le conoscenze e le abilità utili a comprendere i vantaggi e le limitazioni delle applicazioni cloud per svilupparle e integrare la propria applicazione web con meccanismi di sicurezza, autenticazione, database ecc. offerti dal servizio di Cloud Computing.
-
- Acquisire competenze per sviluppare applicazioni cloud-native che integrano componenti di Intelligenza Artificiale, sfruttando i servizi e gli strumenti offerti dai principali provider di cloud computing per lo sviluppo di applicazioni AI (ad es. Azure Machine Learning, AWS SageMaker, Google Cloud AI Platform).
Contenuti del modulo
Le applicazioni cloud
- Gli ambienti cloud (MS Azure, Amazon AWS ecc.) e i loro servizi AI
- Gestione e integrazione dati on-premises/on-the-cloud
- Ambienti di sviluppo per applicazioni Cloud
- Strumenti e metodi di progettazione e sviluppo di applicazioni in ambienti ibridi e multi-Cloud
- Modelli e tecniche di Deploy su Microsoft Azure
- Architetture e best practice per l’integrazione di componenti AI in applicazioni cloud
- Tecniche, possibilità, infrastrutture finalizzate a Scalare una applicazione Cloud
Sviluppare Fronted con framework javascript avanzati
Obbiettivi formativi
Acquisire le conoscenze e le abilità necessarie a sviluppare Frontend con framework javascript avanzati (Angular, React, Vue) per la realizzazione di applicazioni Web lato client in grado di adattarsi al dispositivo finale (browser per PC, tablet, smartphone ecc.).
Contenuti del modulo
Frontend evoluti per il Web
- Principali framework disponibili nel mercato
- Principali editor per lo sviluppo ed il test delle pagine
- Concetti “core” di un client web ricco e “adattabile” al dispositivo
- Classi e i pattern principali utilizzati
- Ciclo di vita della pagina ed il dialogo con il backend applicativo
- Client per Web service : JSON e altri formati per lo scambio di informazioni
- Il design delle finestre: componenti principali, finestre, finestre di dialogo, bottoni, caselle di test, widget principali
- Layout responsive
- Tecnolgie di comunicazione con il Backend
- Gestione dei dati, modello, validazione
- Sviluppo di un front end completo per una applicazione web
Definire e disegnare applicazioni AI
Obbiettivi formativi
Acquisire le conoscenze e le abilità necessarie a definire e ad applicare i principali algoritmi di machine learning per progettare sistemi che apprendono o migliorano le loro performance in relazione ai dati che utilizzano.
Contenuti del modulo
Fondamenti di Machine Learning
- Machine Learning, Deep Learning
- Principi e metodologie della progettazione di algoritmi di Machine Learning
- Analisi dei Modelli
- Principi e fondamenti dei Dataset strutturati o non strutturati
- Normalizzazione dei Dataset
- Apprendimento Supervisionato – Regressione
- Apprendimento Supervisionato – Classificazione
- Scrivere client per la API più diffuse di LLM
- Disegno applicazioni di Machine Learning
- Sviluppo di applicazioni di tipo RAG
Sviluppare applicazioni software con Intelligenza Artificiale
Obbiettivi formativi
-
- Acquisire competenze per preparare e pre-elaborare i dati per l’addestramento dei modelli di apprendimento automatico, utilizzando tecniche di pulizia, trasformazione e riduzione della dimensionalità dei dati.
- Acquisire competenze per integrare modelli di apprendimento automatico addestrati in applicazioni software, seguendo best practice, pattern architetturali e tecniche di progettazione specifiche per le applicazioni AI.
- Acquisire abilità per sviluppare pipeline di addestramento, test e distribuzione per i modelli di apprendimento automatico, implementare tecniche di spiegabilità e interpretabilità dei modelli di AI, e affrontare sfide come il bias dei dati, la privacy e la sicurezza nell’ambito delle applicazioni AI.
- Acquisire conoscenze sulle tecniche di test e validazione delle componenti AI nelle applicazioni software, inclusi i test dei modelli di apprendimento automatico, e competenze per produrre documentazione tecnica relativa alle componenti AI delle applicazioni sviluppate.
Contenuti del modulo
Sviluppo Applicazioni AI
- Principi di base dell’Intelligenza Artificiale, dell’apprendimento automatico e del deep learning
- Tecniche di apprendimento automatico supervisionato, non supervisionato e di rinforzo
- Algoritmi e modelli di apprendimento automatico (ad es. reti neurali, alberi decisionali, clustering, ecc.)
- Librerie e framework per lo sviluppo di applicazioni AI (ad es. TensorFlow, PyTorch, scikit-learn, Keras)
- Preparazione dei dati e tecniche di pre-elaborazione (ad es. pulizia, trasformazione, riduzione della dimensionalità)
- Processi di addestramento, valutazione e ottimizzazione dei modelli di apprendimento automatico
- Pattern architetturali e best practice per l’integrazione di componenti AI in applicazioni software Tecniche di spiegabilità e interpretabilità dei modelli di AI
- Gestione del bias dei dati e della privacy nell’ambito delle applicazioni AI
- Test e validazione delle applicazioni AI, inclusi i test dei modelli di apprendimento automatico
- Deployment e monitoraggio di modelli di apprendimento automatico in produzione
- Etica e responsabilità nell’ambito dell’Intelligenza Artificiale
Sicurezza informatica
Obbiettivi formativi
Acquisire le conoscenze e le abilità utili per garantire la sicurezza e rispettare le normative in materia di privacy, adottando eventuali misure di correzione.
Contenuti del modulo
Principi, strumenti e tecniche per la programmazione e lo sviluppo in ottemperanza della cybersecurity
- Le modalità di sicurezza operative dell’applicazione e dell’ambiente di sviluppo
- I requisiti di sicurezza in ogni fase del ciclo di vita di una applicazione
- La normativa di riferimento
- Principi di programmazione sicura
- Sicurezza dei sistemi operativi
- Sicurezza delle applicazioni web
- Sicurezza delle basi di dati
- Normativa sulla protezione dei dati personali Normativa sull’informazione
- Principi comuni e aspetti applicativi della legislazione vigente in materia di sicurezza
- Le professionalità con cui interagire
Eseguire test di applicazioni informatiche
Obbiettivi formativi
Acquisire le conoscenze e le abilità utili per definire e applicare procedure per il test di software applicativi e applicazioni informatiche per stabilirne la conformità alle specifiche di analisi.
Contenuti del modulo
Le procedure di Test
- Tipologie di test di una applicazione informatica
- Criteri di pianificazione e costruzione di matrici di test
- Tecniche, metodologie e strumenti di testing
Destinatari:
Il corso è rivolto ai cittadini, occupati o disoccupati, ai professionisti dell’informatica e, più nel generale, a tutti coloro che desiderano intraprendere il percorso da AI Developer partendo dalle basi fino a raggiungere un livello più avanzato.
Attestazione in esito
Attestato di frequenza.
Costo del corso
€ 3200