Questo corso offre un percorso completo nel mondo dello sviluppo software moderno, partendo dalle fondamenta teoriche della programmazione fino alla loro applicazione nelle moderne software house. L’apprendimento inizia con l’analisi dei linguaggi di programmazione, esplorando le macchine astratte, la semantica operazionale e la gestione della memoria. Gli studenti impareranno a padroneggiare i principali paradigmi (orientato agli oggetti, logico e funzionale), comprendendone le differenze implementative. La parte centrale del corso è dedicata alla modellazione software: attraverso l’Unified Process (UP) e il linguaggio UML, si analizzeranno diagrammi di struttura e comportamento (es. classi, sequenza) applicando i necessari Design Patterns. Il programma focalizza poi sull’intero ciclo di vita del software, confrontando metodologie tradizionali come il Waterfall con approcci moderni come Agile e DevOps, con un focus costante su qualità, testing e refactoring. Infine, il corso proietta lo studente nel contesto delle software house contemporanee. Si approfondiranno strumenti di Version Control e l'integrazione dell'Intelligenza Artificiale come supporto strategico per la generazione e la validazione del codice, preparando i futuri professionisti alle sfide di un mercato in continua evoluzione.
Questo corso offre un'introduzione pratica e teorica nel mondo della Intelligenza Artificiale, utilizzando Python e l'ambiente Google Colab come strumenti principali di sviluppo. Il percorso didattico parte dalle basi del Machine Learning, focalizzandosi sulla pre-elaborazione dei dati: dal caricamento alla gestione di valori mancanti, fino alle tecniche di riduzione della dimensionalità e scaling. Si passa poi all'Unsupervised Learning, esplorando algoritmi di clustering come K-Means e DBSCAN per l'analisi dei pattern e il rilevamento degli outlier. La sezione centrale esamina i modelli predittivi, dai classificatori e regressori di base (Naive Bayes, KNN) fino a quelli avanzati, inclusi Support Vector Machines e architetture ensemble come Random Forests. Un modulo cruciale è dedicato alla valutazione e ottimizzazione dei modelli: ad esempio, gli studenti impareranno a gestire il tradeoff tra bias e varianza, utilizzare la cross-validation e interpretare le learning curves per evitare overfitting. Il corso si conclude con l'Intelligenza Artificiale Spiegabile (XAI), affrontando le limitazioni dei modelli "black box" attraverso approcci basati su attribuzione, regole e controfattuali, per garantire trasparenza e fiducia nei sistemi decisionali automatizzati.
Questo corso è progettato per fornire ai dottorandi una base di programmazione al fine di utilizzare modelli machine learning e interpretarne le predizioni. Per rendere fruibile il corso anche a chi non ha background informatico, nel corso verranno impiegate librerie Python ad alto livello (es. sklearn) e programmazione low-code (es. pycaret). Partendo dai fondamentali della programmazione, il corso esplorerà i concetti chiave dell'analisi dei dati e i principali modelli di machine learning applicabili a dati tabulari in contesti di ricerca.
This course addresses the critical "black box" challenge of Machine Learning, where high performance is often hindered by a lack of transparency. To bridge this gap and meet regulatory standards, the program explores Explainable AI (XAI) as a tool to build trust and validation in high-stakes scenarios. Designed for developers, end-users, and researchers alike, the curriculum focuses on two primary techniques: attribution methods and counterfactuals. Participants will gain a comprehensive overview of the current state-of-the-art while developing the critical thinking skills necessary to select the right approach for specific needs. By combining theoretical insights with practical application, the course empowers attendees to transform opaque algorithms into interpretable systems, ensuring that model predictions are not only accurate but also ethically sound and logically verifiable for all stakeholders involved.