LAB OF COMPUTER SKILLS

Luigi Laura

Obiettivi formativi

Il corso fornisce le nozioni fondamentali per comprendere i principi di funzionamento delle moderne tecnologie digitali ed alcune implicazioni nel loro utilizzo quotidiano da parte di utenti e organizzazioni. In particolare gli obiettivi del corso possono suddividersi in due macro categorie legate ad aspetti teorici o aspetti pratici, come descritti di seguito. - Aspetti teorici: comprendere il concetto di "computational thinking" in relazione a diversi contesti, in particolare relativamente alle scienze economico sociali; comprendere il concetto di algoritmo; comprendere alcuni principi di programmazione; comprendere le principali caratteristiche delle moderne reti di comunicazione, l’architettura del web, ed il fenomeno del cloud computing; comprendere il concetto di database e le potenzialità dei Big Data come strumento di supporto alle decisioni; comprendere i concetti chiave della sicurezza informatica; essere consapevole dei rischi che derivano dall’uso di software malevolo e dall’esposizione di informazioni sensibili sia aziendali sia personali; comprendere i concetti di base del machine learning e delle valute digitali; comprendere i concetti di base dei Large Language Models (LLM), il loro utilizzo e i fondamenti dell’Agentic AI. - Aspetti pratici: introdurre lo studente alle attività di coding di livello base, utili sia a sviluppare un approccio alternativo alla risoluzione di problemi sia a comprendere meglio i principi basilari della programmazione da utilizzare poi nel campo della matematica finanziaria e statistica.

Prerequisiti

Saper utilizzare i più comuni strumenti di automazione di ufficio e produttività individuale su PC, con particolare attenzione a: elaborazione testi, fogli elettronici, applicazioni per la creazione di presentazioni elettroniche.

Risultati di apprendimento attesi

Alla fine del corso lo studente comprenderà i principi base di funzionamento delle moderne tecnologie digitali. In più svilupperà competenze logiche e capacità di problem solving attraverso attività di coding di livello base. Conoscenza e comprensione: il corso fornisce le nozioni fondamentali per comprendere i principi di funzionamento delle moderne tecnologie digitali e permette agli studenti di sviluppare, tramite tecniche di programmazione, il pensiero computazionale, processo logico-creativo che permette di risolvere problemi complessi in maniera efficiente. Il corso introduce inoltre i concetti di base dei Large Language Models (LLM), del loro utilizzo e dell’Agentic AI. Capacità di applicare conoscenza e comprensione: Nella parte pratica del corso gli studenti avranno modo di comprendere il funzionamento di un programma software e saranno in grado di scrivere (semplici) programmi in linguaggio Python. In particolare, gli studenti saranno in grado di: - riconoscere ed analizzare le componenti principali di un'infrastruttura software. - identificare minacce e rischi nell'utilizzo delle reti come Internet. - progettare e creare semplici programmi software. - scrivere programmi che usano cicli per ripetere l'esecuzione di blocchi di codice. Autonomia di giudizio: gli studenti matureranno capacità di analizzare i sistemi digitali e il modo in cui vengono utilizzati all'interno di un'organizzazione. Saranno in grado di discutere e valutare gli elementi essenziali di un'infrastruttura tecnologica. Abilità comunicative: lo studente avrà maturato la capacità di comprendere e utilizzare i principali termini e concetti relativi ai sistemi digitali. Gli studenti saranno in grado di comunicare le proprie idee, proposte, analisi e ragionamenti critici legati alle tematiche del mondo digitale in modo più efficace e appropriato. Capacità di apprendimento: questo corso contribuisce a potenziare le capacità di comprensione degli studenti fornendo loro gli strumenti per capire come funzionano i sistemi digitali ed i principi alla base della programmazione. Gli studenti riusciranno a sviluppare le capacità di problem solving tramite risoluzione di semplici problemi utilizzando il linguaggio di programmazione Python.

Contenuti Del Corso

Il programma è composto da una parte teorica (lezioni tradizionali) e da una parte pratica (lezioni in aula informatizzata). I contenuti di ciascuna parte sono descritti di seguito. Parte teorica - Intro corso e Computational thinking; Perché digitale? (notazione binaria ed unità di misura); introduzione agli algoritmi - Algoritmi, Strutture dati e linguaggi di programmazione - Fondamenti di reti e protocolli (in particolare quelli applicativi) - Risorse in rete (cloud computing e ricerca di informazioni) - Database/DBMS e Big Data - Sicurezza delle informazioni e privacy - Machine learning - Valute Digitali - Introduzione ai LLM; Utilizzo di LLM; Agentic AI Parte pratica - Introduzione a Python - Tipi e strutture dati - Costanti e variabili - Strutture di controllo: if e loop - Funzioni - Funzioni ricorsive - Algoritmi di Ricerca - Algoritmi Numerici

Testi Di Riferimento

Il materiale è reso disponibile sulla piattaforma di e-learning all’interno della quale gli studenti troveranno dispense e slide aggiornate e le indicazioni del testo di riferimento.

Metodologie Didattiche

Di seguito le metodologie didattiche utilizzate durante il corso: - didattica frontale - didattica online - esercizi in laboratorio

Modalità di verifica dell'apprendimento

La valutazione può essere scritta o orale sulla base del numero di studenti. È prevista una valutazione intermedia basata su una prova di programmazione in linguaggio Python.

Criteri per l’assegnazione dell’elaborato finale

L’elaborato finale sarà assegnato a tutti gli studenti, previa specifica richiesta inoltrata al docente, che dimostrano un serio e motivato interesse ad approfondire le tematiche affrontate dal programma del corso.

Settimana 1

Introduzione al corso e al pensiero computazionale.

Settimana 2

Perché digitale? (notazione binaria ed unità di misura); intro algoritmi Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 3

Algoritmi, Strutture dati e linguaggi di programmazione Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 4

Fondamenti di reti e protocolli (in particolare quelli applicativi) Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 5

Risorse in rete (cloud computing e ricerca di informazioni) Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 6

Database/DBMS e Big Data Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 7

Sicurezza delle informazioni e privacy Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 8

Machine learning Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 9

Valute Digitali, con particolare focus su Bitcoin ed Ethereum. Smart Contract sulla blockchain di Ethereum. Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 10

Introduzione ai Large Language Models (LLM) Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 11

Utilizzo dei Large Language Models (LLM) Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).

Settimana 12

Agentic AI. Ricapitolazione degli argomenti trattati durante il corso. Esercitazione in Laboratorio (le parti pratiche, relative al "saper fare" saranno svolte principalmente on campus).