Descrizione del corso
Questo corso intensivo di Python offre una base solida e pratica del linguaggio, ideale per chi possiede già familiarità con i concetti di programmazione a oggetti ma accessibile anche a chi si avvicina per la prima volta allo sviluppo software.
Il percorso parte dall'installazione di Python e di Visual Studio Code, prosegue con l'uso di Jupyter Notebook, e introduce la sintassi di base, i tipi di dati e le strutture di controllo (condizioni e cicli), per poi approfondire le principali strutture dati (liste, tuple, dizionari, set) e la definizione di funzioni e moduli (inclusi argomenti di default, posizionali, keyword, *args e **kwargs). Vengono quindi trattati i capisaldi della programmazione orientata agli oggetti (OOP) — classi, oggetti, ereditarietà, polimorfismo — insieme alla gestione dei file, alla gestione degli errori (con try/except) e all'uso delle librerie fondamentali pandas e matplotlib per analisi e visualizzazione dei dati. Una sezione è dedicata alle buone pratiche di sviluppo — debug e logging — e culmina nello sviluppo di una applicazione CLI per la gestione di una rubrica (aggiunta, modifica, rimozione, ricerca contatti e salvataggio su file), mettendo in pratica l'organizzazione del codice in un progetto strutturato.
Per illustrarti le potenzialità di Python in ambito analisi dati, il corso propone un caso reale di analisi dei rendimenti del NASDAQ 100, con il calcolo del rendimento annualizzato effettuato con pandas, permettendo di collegare i concetti di programmazione appresi a un caso concreto di analisi dati. Il percorso si chiude con una lezione finale di congratulazioni, pensata per consolidare i risultati e indicare i prossimi passi.
In una sezione dedicata all'intelligenza artificiale viene proposto un progetto pratico di Web-Only RAG (Retrieval-Augmented Generation): un'API FastAPI che risponde a domande dell'utente combinando ricerca web in tempo reale (Tavily) e modelli di linguaggio (Groq), il tutto coordinato da LangChain. Lo sviluppo di questo modulo è svolto con l'ausilio di Cursor come ambiente di editing e di tecniche di AI prompting: gli studenti imparano a descrivere obiettivi e vincoli in linguaggio naturale e a iterare sui prompt per ottenere il comportamento desiderato dall'assistente, sperimentando in modo concreto come strumenti di coding assistito e prompting possano supportare la progettazione e la manutenzione del codice in un contesto reale.
Dopo il progetto Web-Only RAG, il corso illustra le potenzialità di Python nei casi che l'hanno reso più famoso e utilizzato: lo sviluppo di agenti AI e di sistemi RAG su documenti. Una lezione di inquadramento introduce i due temi come anteprima dei percorsi dedicati; si chiarisce cosa distingue un agente da una semplice chat e si vede un esempio concreto di agente che usa tool su dati reali; sul fronte RAG si ripercorre il ciclo Retrieve-Augment-Generate, si visualizzano gli embedding e le metriche di vicinanza in un notebook. Vedrai come si realizza in Python un sistema RAG essenziale end-to-end su una knowledge base locale (ingestione, indice e generazione con fonti). L'obiettivo non è sostituire i corsi specialistici, ma mostrare come, con Python, si passi dalla chiamata a un modello LLM a sistemi agentici più evoluti e ambiti, che agiscono con tool specializzati, e che rispondono basandosi su documenti recuperati in modo controllabile.