INFORMATICA

INFORMATICA

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 la combinazione di componenti hardware e software che è alla base dei dispositivi digitali utilizzati soprattutto in ambito aziendale; comprendere le principali caratteristiche delle moderne reti di comunicazione, l’architettura del web, ed il fenomeno del cloud computing; comprendere il concetto del mobile computing, le mobile app e il fenomeno “Internet of Things”; comprendere il fenomeno dei social network; 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. - 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.

Risultati di apprendimento attesi

Conoscenza e comprensione: Al termine del percorso gli studenti conosceranno le nozioni fondamentali per comprendere i principi di funzionamento delle moderne tecnologie digitali. Gli studenti svilupperanno, tramite tecniche di programmazione, il pensiero computazionale, processo logico-creativo che permette di risolvere problemi complessi in maniera efficiente. Capacità di applicare conoscenza e comprensione: Al termine della 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: Al termine del percorso 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: Al termine del percorso gli studenti matureranno 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 - Risorse in rete (cloud computing e ricerca di informazioni) - I dispositivi mobili (comprese le app) e l'IoT - Social networks e introduzione ai grafi - Database/DBMS e Big Data - Sicurezza delle informazioni e privacy - Machine learning - Valute Digitali - recap 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 - esercizi in laboratorio

Modalità di verifica dell'apprendimento

La valutazione dello studente avverrà tramite una prova finale che si svolgerà al calcolatore (in una delle aule informatiche) e che comprende due parti distinte: - una parte di programmazione, che incide per il 40% sul voto finale: in questa parte si intende testare principalmente le conoscenze e la capacità di comprensione dei principi fondamentali di programmazione e della sintassi del linguaggio Python; - una parte di teoria, che incide per il rimanente 60% sul voto finale: in questa parte si intende testare principalmente le conoscenze e la capacità di comprensione delle nozioni teoriche del corso. È necessario riportare la sufficienza in entrambe le parti della prova (ovvero almeno 7 punti sui 12 della parte di Python e 11 sui 18 della parte di teoria). La parte di teoria consisterà in un questionario di domande a risposta multipla e/o domande a risposta aperta, in cui lo studente dovrà dimostrare di conoscere le nozioni teoriche dell'insegnamento, saperle applicare a casi pratici dimostrando di aver conseguito il metodo di studio e la capacità di apprendimento necessari a proseguire anche in autonomia l'approfondimento della materia. La numerosità delle domande di ciascuna di tali tipologie verrà decisa dal docente nel corso dello svolgimento dell'insegnamento e comunicato agli studenti prima dell'esame. La parte di programmazione consisterà in una serie di esercizi da svolgere nel linguaggio di programmazione Python, in cui lo studente dovrà dimostrare di aver recepito i principi fondamentali della programmazione e di aver acquisito la giusta praticità nell'applicarli tramite il linguaggio Python. Il mancato raggiungimento di un punteggio pari a 18/30 comporta il mancato superamento dell'esame. La risposta corretta a tutte le domande a risposta multipla (teoria) e la corretta esecuzione degli esercizi (laboratorio) comporta l'attribuzione di un punteggio coerente con l'incidenza delle due parti sul punteggio finale.

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

Intro corso e Computational thinking

Settimana 2

Perché digitale? (notazione binaria ed unità di misura); intro algoritmi Esercitazione in Laboratorio

Settimana 3

Algoritmi, Strutture dati e linguaggi di programmazione (prima parte) Esercitazione in Laboratorio

Settimana 4

Algoritmi, Strutture dati e linguaggi di programmazione (seconda parte) Esercitazione in Laboratorio

Settimana 5

Risorse in rete (cloud computing e ricerca di informazioni) Esercitazione in Laboratorio

Settimana 6

Social networks e introduzione ai grafi Esercitazione in Laboratorio

Settimana 7

Database/DBMS e Big Data (prima parte) Esercitazione in Laboratorio

Settimana 8

Database/DBMS e Big Data (seconda parte) Esercitazione in Laboratorio

Settimana 9

Sicurezza delle informazioni e privacy Esercitazione in Laboratorio

Settimana 10

Intelligenza Artificiale e Machine Learning (prima parte) Esercitazione in Laboratorio

Settimana 11

Intelligenza Artificiale e Machine Learning (seconda parte) Esercitazione in Laboratorio

Settimana 12

Blockchain - Valute Digitali – Ricapitolazione argomenti trattati durante il corso Esercitazione in Laboratorio