Corso di laurea: Applied Computer Science and Artificial Intelligence
A.A. 2020/2021
Conoscenza e capacità di comprensione
Il laureato in Applied Computer Science and Artificial Intelligence Intelligenza Artificiale acquisirà una conoscenza approfondita delle basi scientifico-metodologiche dell'Informatica e delle sue aree e domini di applicazione con particolare rilievo per sistemi, modelli e algoritmi di intelligenza artificiale. Questi apprenderà le principali tecnologie per l'analisi, la progettazione, la manutenzione e la gestione di sistemi informatici complessi che si basino su meccanismi di intelligenza artificiale. Tali conoscenze saranno acquisite tramite lezioni frontali, esercitazioni, attività di laboratorio svolte in modalità individuale o di gruppo, o sotto la guida di un tutore, nonché attraverso attività progettuali, tipicamente svolte in gruppo. La verifica del raggiungimento di questo obiettivo formativo è ottenuta con valutazioni in itinere, e prove finali (esami) scritte e orali. Numerosi corsi prevedono anche verifiche pratiche dei risultati delle attività di laboratorio di carattere individuale o attività di progettazione, tipicamente da svolgere in gruppo, in analogia con quanto si può presentare in situazioni lavorative reali.
Le conoscenze e capacità sono conseguite e verificate in attività formative organizzate nei tre anni nel modo seguente.
Primo anno: Il primo anno ha una struttura con corsi obbligatori di base nel campo della matematica, della fisica e dell’informatica. Per esempio, si tratta di corsi di base di analisi matematica, di algebra o geometria, di fisica e, per quanto riguarda l’informatica, di programmazione e architettura degli elaboratori. Il primo anno vede anche i primi corsi caratterizzanti di informatica, e gli esami affini e integrativi di area matematica e fisica. Tutti i corsi sono in lingua inglese.
Secondo anno: Il secondo anno ha una struttura che vede in modo sostanziale i corsi caratterizzanti di informatica, per esempio in area sistemi, basi di dati e intelligenza artificiale, e i corsi affini e integrativi di area matematica. Tutti i corsi sono in lingua inglese.
Terzo anno: Il terzo anno vede uno spettro più ampio di offerta formativa, principalmente negli aspetti caratterizzanti di informatica nell’area dell’informatica applicata e dell’intelligenza artificiale e nei corsi affini e integrativi con particolare riferimento ai corsi di area diversa da matematica e fisica. Il percorso formativo prevede anche cicli di seminari, tirocini formativi e una prova finale da svolgere in lingua inglese. Tutti i corsi sono in lingua inglese.Capacità di applicare conoscenza e comprensione
Il percorso formativo mette in grado il laureato di applicare la propria conoscenza e capacità di comprensione al fine di risolvere problemi. Tali capacità sono in genere sviluppate tramite la progettazione e realizzazione di sistemi informatici che possono includere aspetti di intelligenza artificiale e machine learning, o attraverso l'applicazione di principi teorici a problemi applicativi. La verifica della capacità di applicare conoscenza e comprensione, oltre che il raggiungimento complessivo di un adeguato livello di conoscenze e capacità di comprensione, avviene tramite gli esami finali dei singoli corsi e complessivamente attraverso la prova finale, relativa a un'attività di tirocinio, svolta sotto la supervisione di un docente.Autonomia di giudizio
Al termine del percorso formativo il laureato in Applied Computer Science and Artificial Intelligence avrà acquisito:
- capacità di interpretare autonomamente gli elementi e le informazioni di cui dispone (ad esempio, le richieste di un committente) al fine di proporre soluzioni congruenti con le possibilità consentite dalle tecnologie disponibili;
- capacità di aggiornamento continuo delle proprie conoscenze per poter affrontare nuove problematiche e mantenersi al passo con l'evoluzione tecnologica.
Tali capacità lo mettono in grado di:
- formulare propri giudizi critici e sostenerli nell'ambito di un gruppo di lavoro, offrendo così il proprio contributo all'avanzamento delle attività;
- avere autonomia di giudizio rispetto alle responsabilità ed alle implicazioni etiche della professione di informatico.
Lo sviluppo della capacità di giudizio degli studenti avviene sia durante le lezioni e le esercitazioni che nell'ambito delle attività di laboratorio e del tirocinio formativo. In particolare, nelle lezioni e esercitazioni gli studenti vengono posti di fronte a snodi problematici (ad esempio riguardo alla scelta delle tecniche algoritmiche più vantaggiose in una data situazione) e vengono sollecitati a proporre soluzioni e a motivarle; nei laboratori e nelle attività progettuali la necessità di prendere decisioni è inerente alla natura del problema, mentre il tirocinio formativo è tipicamente basato sulla proposta di soluzioni tecnologiche a problemi reali, tali da richiedere scelte motivate.
La verifica della capacità di giudizio avviene attraverso le prove d'esame, anche in itinere, e la valutazione della documentazione prodotta a corredo delle attività di laboratorio e del tirocinio formativo. Nella valutazione dell'attività di tirocinio, particolare attenzione viene rivolta a quanto lo studente abbia portato un contributo autonomo alla soluzione, anche e soprattutto qualora il lavoro si sia svolto all'interno di un gruppo comprendente personale senior.Abilità comunicative
Il titolo finale sarà conferito agli studenti che avranno acquisito la capacità di:
- presentare ed argomentare le proprie idee in merito ai problemi affrontati e alle soluzioni proposte, tanto ad interlocutori specialisti che non specialisti;
- comunicare efficacemente e discutere proficuamente con colleghi ed utenti circa i problemi relativi alla propria area di competenza professionale.
Lo sviluppo delle abilità comunicative avviene nell'arco di tutto il corso di studio, sia in occasione di colloqui fra lo studente ed i docenti, sia nell'ambito dei gruppi che svolgono attività di laboratorio, sia fra lo studente ed interlocutori esterni durante il tirocinio formativo.
La verifica di tali abilità avviene attraverso la valutazione di ciò che viene espresso dagli studenti in forma orale o scritta sia durante le prove intermedie e la prova d'esame dei singoli insegnamenti che in occasione delle attività di laboratorio, del tirocinio formativo e della prova finale. In particolare, la prova finale consiste nella redazione di una relazione e nella presentazione, mediante supporti digitali del lavoro svolto, in modo comprensibile anche a chi non conosca i dettagli della specifica problematica affrontata nel tirocinio. Alcuni corsi prevedono pure, a integrazione dell'esame finale, presentazione di progetti, o di articoli dalla letteratura scientifica.
Infine, si sottolinea come l’impiego della lingua inglese durante tutto l’arco del corso di studi consenta al laureato in Applied Computer Science and Artificial Intelligence di esercitare le abilità comunicative anche in contesti professionali internazionali.
Capacità di apprendimento
Il percorso formativo ha fra gli altri l'obiettivo di sviluppare le capacità di approfondimento degli aspetti metodologici e tecnologici delle discipline informatiche, in modo che il laureato:
- comprenda l'evoluzione tecnologica e sia in grado di adeguarsi al progredire delle discipline informatiche;
- sia in grado di affrontare cicli di studio successivi nell'ambito delle discipline informatiche, anche finalizzati allo sviluppo di attività di ricerca;
- possa proseguire il proprio percorso formativo anche in autonomia, grazie alla capacità di consultare efficacemente documentazione di tipo scientifico e tecnologico.
Lo sviluppo delle capacità di apprendimento avviene nell'arco di tutto il corso di studio: tutte le attività previste (lezioni, esercitazioni, attività di laboratorio da soli o in gruppo, tirocinio formativo) concorrono al progressivo aumento delle capacità di apprendimento.
Esempi di pratiche che favoriscono queste capacità sono: la proposta di esercizi di difficoltà crescente durante il corso; la predisposizione di spazi e tempi per permettere agli studenti di rivolgersi ai docenti e ai tutori assegnati per approfondire i punti in cui incontrano difficoltà; la somministrazione di prove in itinere che permettono agli studenti di identificare aree problematiche del loro apprendimento.
La verifica a sua volta avviene in tutte le fasi del corso di studio, iniziando dalle prove d'esame (concepite in modo da evidenziare l'autonomia nell'organizzare il proprio apprendimento), passando dalle verifiche delle attività di laboratorio e del tirocinio formativo per concludersi in occasione della prova finale.
Requisiti di ammissione
Per essere ammessi al corso di laurea in Applied Computer Science and Artificial Intelligence occorre essere in possesso di un diploma di scuola secondaria superiore ovvero di altro titolo di studio conseguito all'estero, riconosciuto idoneo.
Per affrontare con successo il percorso di studio sono necessarie le conoscenze elementari di Fisica e Matematica che sono fornite di norma dal ciclo di studi secondario. È richiesta altresì capacità logica e di comprensione dei testi scritti e del discorso, nonché padronanza di espressione attraverso la scrittura. Lo studente deve possedere adeguata conoscenza della lingua inglese.
L'immatricolazione al corso di laurea è subordinata alla partecipazione a una procedura di ammissione basata sullo svolgimento di test di verifica del possesso delle conoscenze e abilità sopra descritte, inclusa la conoscenza della lingua inglese di livello almeno B1. È prevista l'attribuzione di obblighi formativi aggiuntivi (OFA) di lingua inglese, da assolvere nel primo anno di corso, agli studenti che hanno una competenza di livello inferiore al B2. È prevista inoltre l'attribuzione di obblighi formativi aggiuntivi (OFA), da assolvere nel primo anno di corso, agli studenti che, pur avendo conseguito una posizione utile nella graduatoria di merito, non abbiano superato una soglia di punteggio minimo.Prova finale
La prova finale consiste nella stesura, nella presentazione e nella discussione di una relazione scritta, elaborata autonomamente dallo studente, che documenti in modo organico il problema affrontato nell'ambito del tirocinio formativo e tutte le attività compiute per pervenire alla soluzione.
La discussione si svolge di fronte alla Commissione di laurea che, sulla base della carriera dello studente e della valutazione della relazione, stabilisce il voto di laurea.
Orientamento in ingresso
Il SOrT è il servizio di Orientamento integrato della Sapienza. Il servizio ha una sede centrale nella Città universitaria e sportelli dislocati presso le Facoltà. Nei SOrT gli studenti possono trovare informazioni più specifiche rispetto alle Facoltà e ai corsi di laurea e un supporto per orientarsi nelle scelte. L'ufficio centrale e i docenti delegati di Facoltà coordinano i progetti di orientamento in ingresso e di tutorato, curano i rapporti con le scuole medie superiori e con gli insegnanti referenti dell'orientamento in uscita, propongono azioni di sostegno nella delicata fase di transizione dalla scuola all'università e supporto agli studenti in corso, forniscono informazioni sull'offerta didattica e sulle procedure amministrative di accesso ai corsi.
Iniziative e progetti di orientamento:
1. "Porte aperte alla Sapienza".
L'iniziativa, che si tiene ogni anno presso la Città Universitaria, è rivolta prevalentemente agli studenti delle ultime classi delle Scuole Secondarie Superiori, ai docenti, ai genitori ed agli operatori del settore; essa costituisce l'occasione per conoscere la Sapienza, la sua offerta didattica, i luoghi di studio, di cultura e di ritrovo ed i molteplici servizi disponibili per gli studenti (biblioteche, musei, concerti, conferenze, ecc.); sostiene il processo d'inserimento universitario che coinvolge ed interessa tutti coloro che intendono iscriversi all'Università. Oltre alle informazioni sulla didattica, durante gli incontri, è possibile ottenere indicazioni sull'iter amministrativo sia di carattere generale sia, più specificatamente, sulle procedure di immatricolazione ai vari corsi di studio e acquisire copia dei bandi per la partecipazione alle prove di accesso ai corsi. Contemporaneamente, presso l'Aula Magna, vengono svolte conferenze finalizzate alla presentazione dell’offerta formativa di tutte le Facoltà dell'Ateneo.
2. Progetto "Un Ponte tra Scuola e Università"
Il Progetto "Un Ponte tra scuola e Università" nasce con l'obiettivo di favorire una migliore transizione degli studenti in uscita dagli Istituti Superiori al mondo universitario e facilitarne il successivo inserimento nella nuova realtà.
Il progetto si articola in tre iniziative:
a) Professione Orientamento - Seminari dedicati ai docenti degli Istituti Superiori referenti per l'orientamento, per favorire lo scambio di informazioni tra la Scuola Secondaria e la Sapienza;
b) La Sapienza si presenta - Incontri di presentazione delle Facoltà e lezioni-tipo realizzati dai docenti della Sapienza e rivolti agli studenti delle Scuole Secondarie su argomenti inerenti ciascuna area didattica;
c) La Sapienza degli studenti – Interventi nelle Scuole finalizzati alla presentazione dei servizi offerti dalla Sapienza e racconto dell'esperienza universitaria da parte di studenti "mentore", studenti senior appositamente formati.
3. Progetto "Conosci te stesso"
Consiste nella compilazione, da parte degli studenti, di un questionario di autovalutazione per accompagnare in modo efficace il processo decisionale degli stessi studenti nella scelta del loro percorso formativo.
4. Progetto "Orientamento in rete"
Si tratta di un progetto di orientamento e di riallineamento sui saperi minimi. L'iniziativa prevede lo svolgimento di un corso di preparazione, caratterizzato una prima fase con formazione a distanza ed una seconda fase realizzata attraverso corsi intensivi in presenza, per l'accesso alle Facoltà a numero programmato dell'area biomedica, sanitaria e psicologica, destinato agli studenti degli ultimi anni di scuola secondaria di secondo grado.
5. Esame di inglese
Il progetto prevede la possibilità di sostenere presso la Sapienza, da parte degli studenti dell'ultimo anno delle Scuole Superiori del Lazio, l'esame di inglese per il conseguimento di crediti in caso di successiva iscrizione a questo Ateneo.
6. Percorsi per le competenze trasversali e per l’orientamento - PCTO (ex alternanza scuola-lavoro).
Si tratta di una modalità didattica che, attraverso l’esperienza pratica, aiuta gli studenti delle Scuole Superiori a consolidare le conoscenze acquisite a scuola e a testare sul campo le proprie attitudini mentre arricchisce la formazione e orienta il percorso di studio.
7. Tutorato in ingresso
Sono previste attività di tutorato destinate agli studenti e alle studentesse dei cinque anni delle Scuole Superiori.Il Corso di Studio in breve
Il Corso di Laurea in Applied Computer Science and Artificial Intelligence forma informatici con competenze specifiche nell’intelligenza artificiale e nelle più importanti aree dell’informatica applicata. I laureati in Applied Computer Science and Artificial Intelligence saranno dotati di una solida preparazione culturale di base che permetterà loro di mantenersi al passo col progredire delle tecnologie, e di una salda preparazione tecnica che consentirà loro un rapido inserimento professionale nel settore delle tecnologie dell'informazione e della comunicazione. Inoltre, saranno in grado di accedere ai livelli di studio universitario successivi al primo in area informatica. La preparazione culturale di base permetterà ai laureati in Informatica di avere:
- familiarità col metodo scientifico di indagine;
- capacità di comprendere ed utilizzare strumenti matematici di supporto;
- conoscenze metodologiche e competenze di base in un ampio spettro di settori delle scienze e delle tecnologie dell'informazione e della comunicazione, incluse le più moderne tecniche di intelligenza artificiale;
- conoscenza della materia direttamente in lingua inglese, in modo da essere pronti all’inserimento nel mondo produttivo in ambito internazionale.
A questo scopo, i primi due anni del Corso, uguali per tutti gli studenti, forniscono insegnamenti di base che sono ritenuti indispensabili alla formazione culturale e tecnica del laureato, come gli insegnamenti di area matematica, fisica e statistica, e gli insegnamenti nell’informatica di base e nell’intelligenza artificiale. Durante il terzo anno, oltre a completare tale formazione, lo studente potrà scegliere corsi che ne caratterizzeranno il profilo nelle più importanti aree dell’informatica applicata e integrare la formazione con insegnamenti in ambito economico e/o giuridico.
La formazione si completa con un tirocinio, da svolgere o esternamente presso aziende del settore informatico, tipicamente seguendo attività di analisi, progettazione e sviluppo software, analisi di dati, intelligenza artificiale, sistemi e reti, o internamente, approfondendo tematiche avanzate.
Lo studente espliciterà le proprie scelte al momento della presentazione,
tramite INFOSTUD, del piano di completamento o del piano di studio individuale,
secondo quanto stabilito dal regolamento didattico del corso di studio.
Primo anno
Primo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
10595099 -
CALCULUS
(obiettivi)
Obiettivi generali:
Acquisire una conoscenza delle tecniche elementari del Calcolo Differenziale e delle principali applicazioni a problemi di massimo-minimo e allo studio del grafico di funzioni; fornire strumenti di analisi matematica di base come integrali, serie numeriche e di potenze ed equazioni differenziali.
Il corso e' organizzato in due unita': Calculus Unit 1 e Calculus Unit 2. Si rimanda a queste unita' per gli Obiettivi Specifici.
|
|
-
UNIT 2
|
Erogato in altro semestre o anno
|
-
UNIT 1
(obiettivi)
Obiettivi generali:
acquisire una conoscenza delle tecniche elementari del Calcolo Differenziale e delle principali applicazioni a problemi di massimo-minimo e allo studio del grafico di funzioni.
Obiettivi specifici:
Conoscenza e comprensione: al termine del corso lo studente avrà' acquisito le nozioni e i risultati di base del Calcolo Differenziale con particolare attenzione ai concetti di funzione, limite di funzione e derivata.
Applicare conoscenza e comprensione: al termine del corso lo studente sarà in grado di risolvere semplici problemi del Calcolo Differenziale, quali il calcolo esplicito di derivate, il calcolo del massimo e minimo locale e globale di funzioni di una variabile, e il disegno approssimativo del grafico di funzioni.
Autonomia di giudizio: lo studente avra' le basi per utilizzare un grafico come strumento di analisi di una situazione concreta descrivibile matematicamente.
Abilità comunicative: lo studente sarà in grado di comprendere un testo scientifico di complessità' non elevata e di riassumerne i concetti principali.
Capacita' di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o impartito in un corso, relativo ad aspetti piu' avanzati del Calcolo Differenziale.
|
6
|
MAT/05
|
24
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595546 -
COMPUTER ARCHITECTURE
(obiettivi)
Obiettivi generali: Metodologie di progettazione di circuiti combinatori e sequenziali e far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing. Obiettivi specifici: codifica binaria di vari tipi di dato, algebra booleana, analisi e sintesi di circuiti combinatori, flip-flop, analisi e sintesi di circuiti sequenziali, registri, interconnesione tra registri e altri moduli. Inoltre, il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly. Conoscenza e comprensione: Conoscere e capire come l'elaboratore gestisce ed elabora l'informazione. Inoltre, lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.
Applicare conoscenza e comprensione: Dimostrare di saper progettare semplici circuiti combinatori e sequenziali in grado di svolgere determinati compiti. Inoltre, le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.
Capacità critiche e di giudizio: saper scegliere il miglior approccio, tra i vari studiati, per risolvere un determinato compito. Inoltre, lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.
Capacità comunicative: essere in grado di valutare e motivare le proprie scelte nella progettazione di un circuito. Formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento: Capire le differenze e i vantaggi delle varie tecniche di progettazione. Inoltre, il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.
|
|
-
UNIT 2
|
Erogato in altro semestre o anno
|
-
UNIT 1
(obiettivi)
Obiettivi generali: Metodologie di progettazione di circuiti combinatori e sequenziali. Obiettivi specifici: codifica binaria di vari tipi di dato, algebra booleana, analisi e sintesi di circuiti combinatori, flip-flop, analisi e sintesi di circuiti sequenziali, registri, interconnesione tra registri e altri moduli Conoscenza e comprensione: Conoscere e capire come l'elaboratore gestisce ed elabora l'informazione Applicare conoscenza e comprensione: Dimostrare di saper progettare semplici circuiti combinatori e sequenziali in grado di svolgere determinati compiti. Capacità critiche e di giudizio: saper scegliere il miglior approccio, tra i vari studiati, per risolvere un determinato compito Capacità comunicative: essere in grado di valutare e motivare le proprie scelte nella progettazione di un circuito Capacità di apprendimento: Capire le differenze e i vantaggi delle varie tecniche di progettazione.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595524 -
LINEAR ALGEBRA
(obiettivi)
Obiettivi generali: Fornire conoscenze di base di teoria dei gruppi e di algebra lineare che sono comunemente utilizzati in informatica."
Obiettivi specifici: Concetti di Algebra elementari Introduzione alle strutture algebriche Sviluppo del linguaggio dell'algebra lineare: spazi vettoriali e loro omomorfismi; spazi vettoriali, numeri e algebra delle matrici; endomorfismi, determinanti e diagonalizzazione; applicazioni.
Conoscenze e comprensione: Alla fine del corso lo studente sarà in grado di fare conti in gruppi piccoli di facile struttura e di comprendere il significato e l'utilizzo di matrici nello studio di fenomeni lineari.
Applicare conoscenza e comprensione: Utilizzo della diagonalizzazione di operatori per fornire un'interpretazione geometrica ad un fenomeno lineare e ricavarne informazioni rilevanti. Utilizzo del concetto di gruppo nello studio di problemi combinatori finiti.
Capacità di giudizio: Gli studenti saranno in grado di scegliere lo strumento algebrico più appropriato allo studio di un problema.
Capacità di comunicazione: Gli studenti impareranno il linguaggio dell'algebra lineare e dei gruppi e rudimenti di complessità.
Capacità di apprendimento: L'apprendimento del linguaggio lineare e gruppale fornirà agli studenti la capacità di apprendere argomenti che ne fanno uso.
|
6
|
MAT/02
|
36
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595102 -
PROGRAMMING
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
|
-
UNIT 2
|
Erogato in altro semestre o anno
|
-
UNIT 1
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595103 -
PROGRAMMING LAB
|
6
|
INF/01
|
-
|
-
|
40
|
-
|
Attività formative caratterizzanti
|
ENG |
Secondo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
1049269 -
ALGORITHMS
(obiettivi)
Obiettivi generali Introduzione ai metodi di base per la progettazione e l'analisi degli algoritmi, iterativi e ricorsivi, ed alla valutazione della loro efficienza computazionale.
Obiettivi specifici Conoscenza e comprensione: Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, alcuni modi per scandire tali strutture, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio: Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative: Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un'idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento successivo: Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell'ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati di base.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595099 -
CALCULUS
(obiettivi)
Obiettivi generali:
Acquisire una conoscenza delle tecniche elementari del Calcolo Differenziale e delle principali applicazioni a problemi di massimo-minimo e allo studio del grafico di funzioni; fornire strumenti di analisi matematica di base come integrali, serie numeriche e di potenze ed equazioni differenziali.
Il corso e' organizzato in due unita': Calculus Unit 1 e Calculus Unit 2. Si rimanda a queste unita' per gli Obiettivi Specifici.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali: Lo scopo del corso è fornire strumenti di analisi matematica di base come integrali, serie numeriche e di potenze ed equazioni differenziali.
Obiettivi specifici:
Conoscenza e comprensione: L'obiettivo è che lo studente apprenda alcune tecniche di integrazione per calcolare integrali definiti ed indefiniti usando la formula di integrazione per parti e l'integrazione per sostituzione. Lo studente sara’ in grado di studiare la convergenza delle serie numeriche e approssimare, in alcuni casi, la loro somma e studierà le serie di potenze e gli sviluppi in serie di Taylor delle funzioni elementari. Infine imparerà a risolvere alcune equazioni differenziali ordinarie del primo ordine a variabili separabili e lineari del primo ordine ed equazioni differenziali del secondo ordine lineari con coefficienti costanti omogenee e non.
Applicazione di conoscenza e comprensione: al termine del corso lo studente sarà in grado di risolvere semplici integrali di funzioni di una variabile, convergenza di successioni e serie, calcolo esplicito delle soluzioni equazioni differenziali del secondo ordine lineari con coefficienti costanti omogenee e non.
Autonomia di giudizio: lo studente avra' le basi per utilizzare il calcolo integrale e differenziale come strumento di analisi di una situazione concreta descrivibile matematicamente.
Abilità comunicative: lo studente sara' in grado di comprendere un testo scientifico di complessita' non elevata e di riassumerne i concetti principali.
Capacita' di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o impartito in un corso, relativo ad aspetti piu' avanzati del Calcolo Differenziale e Integrale.
|
6
|
MAT/05
|
24
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
-
UNIT 1
|
Erogato in altro semestre o anno
|
10595546 -
COMPUTER ARCHITECTURE
(obiettivi)
Obiettivi generali: Metodologie di progettazione di circuiti combinatori e sequenziali e far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing. Obiettivi specifici: codifica binaria di vari tipi di dato, algebra booleana, analisi e sintesi di circuiti combinatori, flip-flop, analisi e sintesi di circuiti sequenziali, registri, interconnesione tra registri e altri moduli. Inoltre, il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly. Conoscenza e comprensione: Conoscere e capire come l'elaboratore gestisce ed elabora l'informazione. Inoltre, lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.
Applicare conoscenza e comprensione: Dimostrare di saper progettare semplici circuiti combinatori e sequenziali in grado di svolgere determinati compiti. Inoltre, le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.
Capacità critiche e di giudizio: saper scegliere il miglior approccio, tra i vari studiati, per risolvere un determinato compito. Inoltre, lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.
Capacità comunicative: essere in grado di valutare e motivare le proprie scelte nella progettazione di un circuito. Formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento: Capire le differenze e i vantaggi delle varie tecniche di progettazione. Inoltre, il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali: L’obiettivo dell'insegnamento di Architettura degli elaboratori è di far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing.
Obiettivi specifici: Il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly.
Conoscenza e comprensione: Lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.
Applicazione di conoscenza e comprensione: Le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.
Autonomia di giudizio: Lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.
Abilità comunicative: Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento successivo: Il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
-
UNIT 1
|
Erogato in altro semestre o anno
|
10595523 -
PHYSICS
(obiettivi)
OBIETTIVI GENERALI: 1) Insegnare agli studenti le leggi fondamentali della fisica e la loro applicazione a situazioni del mondo reale.
2) Sviluppare le abilità di problem-solving descrivendo i fenomeni fisici con formule matematiche da un lato, ed intuizione fisica dall’altro.
OBIETTIVI SPECIFICI: Conoscenza e comprensione 3) Conoscere le nozioni di base della Meccanica Newtoniana, fisica dei fluidi, termodinamica, elettricita’ e magnetismo. 4) Conoscere I concetti fondamentali di forza, momento della forza, lavoro, energia potenziale, energia cinetica, energia meccanica, potenza, impulso, quantita’ di moto e momento angolare. 5) Conoscere alcune leggi di conservazione della fisica e la loro importanza. 6) Conoscere I concetti di temperatura, calore ed entropia applicati a semplici sistemi termodinamici. 7) Conoscere i concetti di campo elettrico e potenziale, campo magnetico e correnti elettriche. 8) Comprendere il testo di un esercizio di fisica.
Capacità applicative Lo studente sara’ in grado di: 9) Risolvere una grande varieta’ di problemi di fisica formalizzando la loro soluzione dal punto di vista matematico. 10) Risolvere un problema di fisica in modo coerente, sia dal punto di vista formale che quantitativo. 11) Valutare gli effetti dominanti in un problema fisico. 12) Applicare le leggi di Newton per descrivere il moto di un punto materiale, di sistemi di punti e la rotazione di corpi rigidi. 13) Risolvere problemi di dinamica utilizzando i concetti di lavoro, energia cinetica, energia potenziale ed energia meccanica. 14) Utilizzare la conservazione dell’energia, della quantità di moto e del momento angolare in un'ampia gamma di situazioni. 15) Risolvere semplici problemi riguardanti la statica e la dinamica dei fluidi. 16) Risolvere semplici problemi riguardanti l'energia termica utilizzando il primo principio della termodinamica. 17) Descrivere il significato del concetto di entropia e della seconda legge della termodinamica. 18) Descrivere i campi elettrici e il loro potenziale nel caso di cariche stazionarie. 19) Descrivere i campi magnetici generati da correnti stazionarie e I fenomeni legati all’induzione elettromagnetica.
Capacita’ critiche e di giudizio
20) Essere in grado di stabilire se una relazione tra grandezze fisiche o una legge sono corrette, anche da un punto di vista dimensionale.
21) Sviluppo di doti di ragionamento quantitativo e analitico utili per studiare, modellizzare e comprendere problemi di fisica.
Capacita’ comunicative 22) Saper parlare di fisica usando una terminologia appropriata. 23) Saper descrivere un problema complesso, isolandone i contributi più rilevanti.
Capacità di apprendimento 24) Avere la capacità di consultare un testo che parla di fisica.
|
6
|
FIS/01
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10595102 -
PROGRAMMING
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
-
UNIT 1
|
Erogato in altro semestre o anno
|
Secondo anno
Primo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
10595529 -
CALCULUS 2
(obiettivi)
Obiettivi generali: Il corso intende fornire gli elementi fondamentali del calcolo differenziale ed integrale per funzioni di piu' variabili necessari per la comprensione delle principali discipline scientifiche, con particolare attenzione alle scienze informatiche.
Conoscenza e comprensione: Al termine del corso gli studenti saranno in grado e dovranno dimostrare di padroneggiare gli elementi fondamentali del calcolo differenziale ed integrale per funzioni di piu' variabili e di saper risolvere esercizi e problemi correlati. Dovranno inoltre saper dimostrare alcuni teoremi significativi.
|
6
|
MAT/05
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10595617 -
DATA MANAGEMENT AND ANALYSIS
(obiettivi)
Obiettivi generali: Lo scopo del corso di Data Management and Analysis - Unit 1 è quello di fornire una conoscenza dettagliata delle tecnologie necessarie ad immagazzinare, gestire e condividere piccole e grandi quantità di dati. A tal fine, il corso offrirà una panoramica dei concetti alla base del design, modellazione e storage di un Sistema di Gestione di Basi di Dati (DBMS).
La Unit 2 del corso ha lo scopo di esporre gli studenti a solide metodologie di progettazione e realizzazione di applicazioni per la gestione di dati con particolare enfasi sulle basi di dati sia relazionali che NoSQL.
Per gli obiettivi specifici si invita a consultare gli obiettivi formativi delle Unit 1 e Unit 2 del corso.
|
|
-
UNIT II
|
Erogato in altro semestre o anno
|
-
UNIT I
(obiettivi)
Obiettivi generali: Lo scopo del corso di Data Management and Analysis - Unit 1 è quello di fornire una conoscenza dettagliata delle tecnologie necessarie ad immagazzinare, gestire e condividere piccole e grandi quantità di dati. A tal fine, il corso offrirà una panoramica dei concetti alla base del design, modellazione e storage di un Sistema di Gestione di Basi di Dati (DBMS).
Obiettivi specifici: Principali proprietà di uno schema relazionale e di una decomposizione. Nozioni di base sulle interrogazioni delle basi di dati. Valutazione dei costi delle operazioni di accesso ai dati in base alle diverse soluzioni implementative disponibili. Implementazione fisica di una query. Principali protocolli per la gestione della concorrenza.
Conoscenza e comprensione: Fondamenti teorici della progettazione e della interrogazione di una base di dati relazionale. Principali strutture di organizzazione dei dati su memoria secondaria. Principali tecniche per l'ottimizzazione dell'esecuzione di query e per il controllo dell’esecuzione concorrente delle transazioni.
Applicare conoscenza e comprensione: Progettare schemi relazionali con “buone proprietà”. Interrogare una base di dati mediante algebra relazionale. Valutare i costi di esecuzione di una query e delle operazioni fondamentali su file con diversi tipi di organizzazione fisica.
Capacità critiche e di giudizio: Essere in grado di valutare le proprietà di uno schema relazionale e di una sua decomposizione. Essere in grado di scegliere la struttura dati più appropriata per memorizzare le informazioni di uno schema. Essere in grado di scrivere query in modo da ottimizzare le risorse le richieste per la loro esecuzione.
Capacità comunicative: Essere in grado di descrivere le caratteristiche qualitative e quantitative della struttura e dell'implementazione di una base di dati relazionale.
Capacità di apprendimento: Essere in grado di utilizzare i concetti acquisiti nell'unità 2 e in un eventuale corso avanzato di Sistemi di Basi di Dati.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595525 -
PROBABILITY
(obiettivi)
Obiettivi generali: Acquisire conoscenza e capacità di applicazione di argomenti di base di probabilità e statistica.
Obiettivi specifici: Assiomi e proprietà elementari delle probabilità. Variabili Aleatorie. Distribuzioni continue e discrete. Valori attesi. Introduzione all'inferenza statistica.
Conoscenza e comprensione: Al termine del corso lo studente avrà acquisito le nozioni e i risultati di base relativi alla teoria della probabilità su spazi finiti e numerabili, al concetto di vettore aleatorio discreto e al concetto di variabile aleatoria continua.
Applicare conoscenza e comprensione: Gli studenti che abbiano superato l’esame saranno in grado di applicare le nozioni di calcolo combinatorio per risolvere semplici problemi di probabilità discreta, problemi inerenti vettori casuali discreti e numeri casuali rappresentati da variabili aleatorie continue. Lo studente sarà anche in grado di apprezzare il significato e le implicazioni dell’indipendenza e del condizionamento (nell’ambito di modelli discreti), comprendere il significato di alcuni teoremi limite fondamentali, quali la legge dei grandi numeri.
Capacità critiche e di giudizio: Lo studente avrà le basi per analizzare e costruire modelli probabilistici in semplici situazioni di interesse fisico, biologico e tecnologico, utilizzare tavole e software di simulazione delle leggi discrete di più comune applicazione, nonché della legge gaussiana, e di comprendere l’utilizzazione di strumenti statistici elementari nell’inferenza, nel campionamento statistico e nella simulazione.
Capacità comunicative: Capacità di esporre i contenuti nella parte orale della verifica e negli eventuali quesiti teorici presenti nella prova scritta.
Capacità di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o impartito in un corso relativo ad aspetti più specialistici di teoria della probabilità.
|
6
|
MAT/06
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10595616 -
SYSTEMS AND NETWORKING
(obiettivi)
Obiettivi generali: Il corso mira a fornire una preparazione completa sui concetti, la struttura, e i meccanismi di funzionamento alla base dei sistemi operativi. Verranno trattate caratteristiche fondamentali, presenti fin dai sistemi più tradizionali, ma anche peculiarità dei sistemi moderni che nascono come conseguenza dell’evoluzione ricorrente della tecnologia. Lo studente, inoltre, imparerà a usare in modo produttivo l'interfaccia di programmazione fra utente/sviluppatore software e kernel relativamente ai servizi base di accesso alle risorse del sistema operativo (in particolare, dei sistemi UNIX/Linux).
Obiettivi specifici: Caratteristiche e concetti dei sistemi operativi moderni, con particolare riferimento ai sistemi UNIX/Linux. Si inizierà con una descrizione dell’evoluzione dei sistemi operativi nel tempo, per continuare con un richiamo all'architettura degli elaboratori e, in particolare ai componenti fondamentali della macchina fisica (CPU, memoria principale, I/O). Dopodiché, si affronteranno i temi strettamente legati alle funzionalità di un sistema operativo: i processi/thread e il loro scheduling sulla CPU, lo stallo (e i relativi meccanismi di prevenzione), la concorrenza, la gestione della memoria, il file system e la sicurezza.
Conoscenza e comprensione: Capire in modo profondo come i sistemi operativi danno supporto all’esecuzione dei programmi degli utenti e gestiscono le periferiche hardware di un computer. Metodi e tecniche fondamentali per la rappresentazione dei processi in memoria e la gestione efficiente di multiprogrammazione—molteplici processi eseguiti contemporaneamente in un sistema con risorse limitate. Conoscenza del funzionamento interno del sistema operativo Linux. Conoscenza del funzionamento della shell BASH. Conoscenza delle principali system call di Linux.
Inoltre al termine del corso gli studenti posseggono le conoscenze di base relative: - ai concetti fondamentali relativi alle reti di elaboratori: livelli protocollari, servizi; - alle problematiche fondamentali, e relative soluzioni, incontrate nella definizione dei livelli fisico, data-link (incluso sottolivello MAC), rete, trasporto ed applicazione di una moderna architettura di rete; - alle caratteristiche e funzionamento dei vari livelli e protocolli dell’architettura di rete Tcp/Ip; - alla simulazione di rete.
Applicare conoscenza e comprensione: Progettare programmi a livello utente e di sistema in modo efficiente e sicuro. Saper creare script in BASH in grado di risolvere problemi pratici. Saper scrivere programmi in C che sfruttino le system call di Linux per ottimizzare l'uso delle risorse. Inoltre sl termine del corso gli studenti sono in grado di: - comprendere in profondità autonomamente le finalità, le caratteristiche ed il funzionamento di nuovi protocolli e sistemi di telecomunicazione; - comprendere i perchè delle diverse scelte protocollari dello stack TPC/IP e quindi essere in grado di selezionare le configurazioni ed i protocolli più appropriate da usare in un contesto applicativo.
Capacità critiche e di giudizio: Essere in grado di predire l’uso delle risorse richieste da un programma, di scoprire una possibile situazione di stallo in un sistema multiprogrammato, garantire la mutua esclusione tra processi e l’accesso protetto a zone di memoria o risorse sensibili. Saper valutare la soluzione più appropriata per ottenere un determinato risultato, usando o singoli comandi shell, o uno script BASH, o un programma C/Java basato su system call di Linux.
Capacità comunicative: Saper comunicare in modo chiaro e preciso le caratteristiche dei sistemi operativi e i loro meccanismi di supporto software/hardware. Essere in grado di comunicare e documentare script BASH e programmi C basati su system call di Linux.
Capacità di apprendimento: I sistemi operativi rappresentano uno dei principali esempi di sistemi software complessi. Pertanto, l'insieme delle conoscenze acquisite in questo corso si renderanno estremamente utili in tutti quei domini in cui la complessità dei sistemi diventa perfino superiore: ad esempio, nei sistemi distribuiti, o nei sistemi "cloud" e di processamento/analisi di "big data".
|
|
-
UNIT II
(obiettivi)
Italiano Conoscenze acquisite Al termine del corso gli studenti posseggono le conoscenze di base relative: - ai concetti fondamentali relativi alle reti di elaboratori: livelli protocollari, servizi; - alle problematiche fondamentali, e relative soluzioni, incontrate nella definizione dei livelli fisico, data-link (incluso sottolivello MAC), rete, trasporto ed applicazione di una moderna architettura di rete; - alle caratteristiche e funzionamento dei vari livelli e protocolli dell’architettura di rete Tcp/Ip; - alla simulazione di rete.
Competenze acquisite Al termine del corso gli studenti sono in grado di: - comprendere in profondità autonomamente le finalità, le caratteristiche ed il funzionamento di nuovi protocolli e sistemi di telecomunicazione; - comprendere i perchè delle diverse scelte protocollari dello stack TPC/IP e quindi essere in grado di selezionare le configurazioni ed i protocolli più appropriate da usare in un contesto applicativo.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
-
UNIT I
(obiettivi)
Obiettivi generali: Il corso mira a fornire una preparazione completa sui concetti, la struttura, e i meccanismi di funzionamento alla base dei sistemi operativi. Verranno trattate caratteristiche fondamentali, presenti fin dai sistemi più tradizionali, ma anche peculiarità dei sistemi moderni che nascono come conseguenza dell’evoluzione ricorrente della tecnologia. Lo studente, inoltre, imparerà a usare in modo produttivo l'interfaccia di programmazione fra utente/sviluppatore software e kernel relativamente ai servizi base di accesso alle risorse del sistema operativo (in particolare, dei sistemi UNIX/Linux).
Obiettivi specifici: Caratteristiche e concetti dei sistemi operativi moderni, con particolare riferimento ai sistemi UNIX/Linux. Si inizierà con una descrizione dell’evoluzione dei sistemi operativi nel tempo, per continuare con un richiamo all'architettura degli elaboratori e, in particolare ai componenti fondamentali della macchina fisica (CPU, memoria principale, I/O). Dopodiché, si affronteranno i temi strettamente legati alle funzionalità di un sistema operativo: i processi/thread e il loro scheduling sulla CPU, lo stallo (e i relativi meccanismi di prevenzione), la concorrenza, la gestione della memoria, il file system e la sicurezza.
Conoscenza e comprensione: Capire in modo profondo come i sistemi operativi danno supporto all’esecuzione dei programmi degli utenti e gestiscono le periferiche hardware di un computer. Metodi e tecniche fondamentali per la rappresentazione dei processi in memoria e la gestione efficiente di multiprogrammazione—molteplici processi eseguiti contemporaneamente in un sistema con risorse limitate. Conoscenza del funzionamento interno del sistema operativo Linux. Conoscenza del funzionamento della shell BASH. Conoscenza delle principali system call di Linux.
Applicare conoscenza e comprensione: Progettare programmi a livello utente e di sistema in modo efficiente e sicuro. Saper creare script in BASH in grado di risolvere problemi pratici. Saper scrivere programmi in C che sfruttino le system call di Linux per ottimizzare l'uso delle risorse.
Capacità critiche e di giudizio: Essere in grado di predire l’uso delle risorse richieste da un programma, di scoprire una possibile situazione di stallo in un sistema multiprogrammato, garantire la mutua esclusione tra processi e l’accesso protetto a zone di memoria o risorse sensibili. Saper valutare la soluzione più appropriata per ottenere un determinato risultato, usando o singoli comandi shell, o uno script BASH, o un programma C/Java basato su system call di Linux.
Capacità comunicative: Saper comunicare in modo chiaro e preciso le caratteristiche dei sistemi operativi e i loro meccanismi di supporto software/hardware. Essere in grado di comunicare e documentare script BASH e programmi C basati su system call di Linux.
Capacità di apprendimento: I sistemi operativi rappresentano uno dei principali esempi di sistemi software complessi. Pertanto, l'insieme delle conoscenze acquisite in questo corso si renderanno estremamente utili in tutti quei domini in cui la complessità dei sistemi diventa perfino superiore: ad esempio, nei sistemi distribuiti, o nei sistemi "cloud" e di processamento/analisi di "big data".
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
Secondo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
10595610 -
AI LAB: COMPUTER VISION AND NLP
(obiettivi)
Obiettivi generali: L'obiettivo del corso è quello di fornire agli studenti gli strumenti pratici necessari per poter usufruire delle moderne applicazioni di Machine e Deep Learning. In particolare, il corso sarà focalizzato sullo studio e l'implementazione di algoritmi di Computer Vision e Natural Language Processing. Obiettivi specifici: Il corso tratta l'elaborazione di immagini, partendo dai metodi classici e arrivando alle moderne tecniche che sfruttano il Machine/Deep Learning, nonchè l'utilizzo del Natural Language Processing congiuntamente alla Computer Vision per effettuare specifici tasks. Conoscenza e comprensione: Lo studente acquisirà conoscenza riguardo i moderni strumenti per analizzare immagini e testo in modo del tutto automatico sfruttando il Machine e il Deep Learning. Inoltre, lo studente acquisirà conoscenza sui moderni framework utilizzati per adempiere a tali tasks. Applicazione di conoscenza e comprensione: Lo studente sarà in grado di sfruttare le conoscenze acquisite durante il corso, nonchè i framework utilizzati, per definire i propri modelli di Machine e Deep Learning per la risoluzione di diversi tasks riguardanti l'analisi di immagini e testo. Autonomia di giudizio: Lo studente sarà in grado di comprendere le operazioni necessarie per adempiere a un task inerente la Computer Vision o il Natural Language Processing e, conseguentemente, sarà in grado di utilizzare o definire un modello per la risoluzione dello stesso. Abilità comunicative: Lo studente sarà in grado di descrivere in maniera dettagliata i modelli di Machine/Deep Learning utilizzati o definiti. Capacità di apprendimento: Il corso pone le basi pratiche per l'utilizzo e la definizione di modelli di Machine e Deep Learning utilizzabili in qualsiasi corso inerente a questi ultimi.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595618 -
ARTIFICIAL INTELLIGENCE AND MACHINE LEARNING
(obiettivi)
Obiettivi Generali: Nella Unit 1 Il corso si propone di esporre gli studenti ad un'ampia panoramica dell'Intelligenza Artificiale (IA). Nella Unit 2 il corso introduce lo studente alla disciplina dell’apprendimento automatico e alla progettazione e implementazione di sistemi di predizione con apprendimento supervisionato e senza supervisione.
Obiettivi Specifici: per gli obiettivi specifici si invita a consultare gli Obiettivi Formativi delle Unit 1 e Unit 2 del corso.
|
|
-
UNIT II
(obiettivi)
Obiettivi generali: Introdurre lo studente alla disciplina dell’apprendimento automatico e alla progettazione e implementazione di sistemi di predizione con apprendimento supervisionato e senza supervisione. Obiettivi specifici: Il corso è concepito per introdurre alla disciplina dell’apprendimento automatico (machine learning, ML), una classe di metodi che apprendono pattern dai dati ed effettuano delle predizioni su nuovi dati. Solitamente è utile usare questo tipo di approccio quando non si riesce a programmare il calcolatore con un insieme di regole o un algoritmo ben definito. Questo unità è complementare alla Unit I del medesimo corso. Il corso è introduttivo e generale sull’apprendimento automatico e non è un corso interamente su Deep Learning, anche se verranno impartite alcune nozioni fondamentali (sia teoriche che computazionali) che stanno alla base del Deep Learning. Il corso è propedeutico per corsi avanzati su Deep Learning. Gli obiettivi specifici sono: 1) Introduzione all’apprendimento automatico, quando è necessario usarlo, paradigmi e applicazioni. 2) Apprendimento con supervisione. Modelli parametrici: linear regression, logistic regression, regularization; multilayer perceptron, overparameterized models; the backpropagation algorithm; gradient descent; computational graph for automatic differentiation; loss function for classification. Support Vector Machines: Optimal hyperplane, margin, kernels. Modelli non parametrici: the nearest neighbour (NN) Classifier, Decision Trees/Random Forest. 3) Apprendimento senza supervisione. Dimensionality Reduction: Principal Components Analysis (PCA), t-SNE; Clustering, Kmeans, Expectation-Maximization (EM); Gaussian Mixture Model (GMM) 4) Progettare ed implementare sistemi di apprendimento automatico: Visualizzazione dei dati e analisi, cross-validation, impostare iper-parametri. Conoscenza e comprensione: Le conoscenze e competenze apprese sono divise su due assi: fornire principi teorici riguardo ai metodi di base per apprendimento con e senza supervisione. Saper applicare tali concetti nella pratica a dati sintetici o dataset reali ma di piccola scala al fine di applicare nella pratica tali nozioni. Applicazione di conoscenza e comprensione: Verranno usati strumenti come NumPy (con un enfasi a scrivere codice vettorizzato), scikit learn, PyTorch (automatic differentiation e piccole reti neurali) per implementare sistemi di base. Le applicazioni e i domini applicativi possono essere diversi, principalmente su dati sintetici o immagini. Autonomia di giudizio: Sviluppare spirito critico sull’applicazione e l’uso di un sistema di ML e saper valutare e misurare le prestazioni di una algoritmo su dei dati. Saper distinguere i vantaggi e gli svantaggi di diversi algoritmi e determinare il più idoneo in base al problema. Abilità comunicative: Mostrare padronanza degli argomenti, comunicando in maniera chiara e con rigore logico, e con la giusta terminologia i concetti appresi al corso sia per quanto riguarda la parte teorica che pratica. La comunicazione può avvenire anche con un report su attività di laboratorio svolta, motivando propriamente le decisioni prese. Capacità di apprendimento: Il corso pone le basi per comprendere articoli scientifici avanzati su apprendimento automatico in diversi ambiti applicativi (computer vision, NLP) e fornisce una buona base di concetti fondamentali per corsi avanzati su Deep Learning.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
-
UNIT I
(obiettivi)
Obiettivi generali: Il corso si propone di esporre gli studenti ad un'ampia panoramica dell'Intelligenza Artificiale (IA).
Obiettivi specifici: Il corso si propone di mettere gli studenti in grado di comprendere la teoria di un'ampia gamma di tecniche di IA, e di padroneggiarle nella pratica della progettazione di sistemi software intelligenti.
Conoscenza e comprensione: Introduzione ad ampio spettro dei principi fondamentali e delle diverse branche dell'Intelligenza Artificiale (IA) e conoscenze su risoluzione di problemi mediante ricerca, inferenza logica, pianificazione, ragionamento, apprendimento.
Applicare conoscenza e comprensione: Saper applicare il portafoglio di tecniche e gli approcci illustrati per la progettazione e realizzazione di sistemi software intelligenti.
Capacità critiche e di giudizio: Gli studenti saranno in grado di prendere autonomamente decisioni razionali sulle tecniche di IA migliori da impiegare nella progettazione di sistemi software intelligenti.
Capacità comunicative: Gli studenti saranno in grado di interagire in modo proficuo con altri ricercatori in IA su un'ampia gamma di argomenti.
Capacità di apprendimento: Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, la letteratura scientifica sull'IA.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595617 -
DATA MANAGEMENT AND ANALYSIS
(obiettivi)
Obiettivi generali: Lo scopo del corso di Data Management and Analysis - Unit 1 è quello di fornire una conoscenza dettagliata delle tecnologie necessarie ad immagazzinare, gestire e condividere piccole e grandi quantità di dati. A tal fine, il corso offrirà una panoramica dei concetti alla base del design, modellazione e storage di un Sistema di Gestione di Basi di Dati (DBMS).
La Unit 2 del corso ha lo scopo di esporre gli studenti a solide metodologie di progettazione e realizzazione di applicazioni per la gestione di dati con particolare enfasi sulle basi di dati sia relazionali che NoSQL.
Per gli obiettivi specifici si invita a consultare gli obiettivi formativi delle Unit 1 e Unit 2 del corso.
|
|
-
UNIT II
(obiettivi)
Obiettivi generali:
Esporre gli studenti a solide metodologie di progettazione e realizzazione di applicazioni per la gestione di dati con particolare enfasi sulle basi di dati sia relazionali che NoSQL.
Obiettivi specifici:
Esporre gli studenti a metodologie formali e scalabili per l'analisi concettuale e la progettazione di applicazioni per la gestione di dati e tecnologie standard per la realizzazione di basi di dati relazionali e NoSQL.
Conoscenza e comprensione:
Gli studenti acquisiranno conoscenze metodologiche fondamentali per la progettazione di applicazioni per la gestione di dati. In particolare verranno esposte le fasi di: a) raccolta dei requisiti; b) analisi concettuale dei dati e delle funzionalità; c) progettazione di applicazioni per la gestione dei dati e delle funzionalità) e per la loro realizzazione sia in termini di utilizzo di DBMS relazionali e del linguaggio SQL che di database NoSQL (key-value stores, graph databases, document stores) e relativi linguaggi di definizione e manipolazione dei dati.
Applicare conoscenza e comprensione:
Gli studenti saranno in grado di applicare in modo efficace le conoscenze indicate al punto precedente in progetti reali di applicazioni per la gestione di dati non banali.
Capacità critiche e di giudizio:
Gli studenti saranno in grado di prendere autonomamente decisioni razionali in tutte le fasi del processo di progettazione di applicazioni per la gestione dei dati con enfasi sugli approcci basati sul modello relazionale o su approcci NoSQL.
Capacità comunicative:
Gli studenti saranno in grado di interagire in modo proficuo con i committenti (per quanto concerne la raccolta dei requisiti) e con altri analisi e progettisti (per quanto concerne le attività di analisi e progettazione di sistemi software per la gestione di dati non banali).
Capacità di apprendimento:
Gli studenti saranno in grado di ampliare le loro conoscenze in modo autonomo consultando, secondo necessità, manualistica tecnica nell'ambito della progettazione di applicazioni per la gestione di dati.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
-
UNIT I
|
Erogato in altro semestre o anno
|
1055043 -
STATISTICS
(obiettivi)
Lo scopo principale del corso è quello di insegnare le più popolari metodologie di inferenza non parametrica, soprattutto da un punto di vista bayesiano. Lo studente, alla fine del corso, sarà in grado di utilizzare processi di Dirichlet e loro ramificazioni nei più consueti contesti inferenziali di data science
Obiettivi generali:
Il corso si propone di fornire le basi della teoria delle successioni e serie di funzioni e della teoria delle funzioni di variabile complessa, con applicazioni alla trasformata di Laplace e cenni di applicazione alla trasformata di Fourier.
Obiettivi specifici:
Conoscenza e comprensione: Conoscere i rudimenti della teoria dell’approssimazione, con particolare riguardo alle nozioni di convergenza puntuale e uniforme per successioni di funzioni di una o più variabili reali e di convergenza puntuale, assoluta, uniforme e totale per serie di funzioni, in particolare per serie di potenze e serie trigonometriche, scarto quadratico medio e convergenza in media quadratica, eguaglianza di Parseval per serie trigonometriche. Conoscere le basi della teoria delle funzioni di variabile complessa, con particolare riguardo alle nozioni di olomorfia, di punto singolare, di residuo, di trasformata di Laplace e formula di inversione.
Applicare conoscenza e comprensione: Essere in grado di analizzare il comportamento di successioni di funzioni di una o più variabili reali (o di una variabile complessa) e di serie di funzioni di variabile reale o complessa dal punto di vista delle varie nozioni di convergenza. Saper ricostruire un segnale a partire dalla sua trasformata di Laplace. Essere in grado di risolvere problemi di Cauchy per equazioni differenziali lineari a coefficienti costanti mediante trasformata di Laplace e calcolare trasformate di Fourier di opportune classi di funzioni.
|
6
|
SECS-S/01
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
Terzo anno
Primo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
10595530 -
FOUNDATIONS OF COMPUTER SCIENCE
(obiettivi)
Obiettivi generali: Acquisire i fondamenti della scienza dai dati e dell'apprendimento automatico.
Obiettivi specifici: Rendere gli studenti consapevoli degli strumenti teorici e pratici della scienza dei dati e dell'apprendimento automatico, nonché dei loro limiti intrinseci; rendere gli studenti in grado di affrontare problemi reali attraverso gli strumenti più appropriati.
Conoscenza e comprensione: Il corso fornisce le nozioni, tecniche e metodologie di base utilizzate nell'ambito della scienza dei dati e dell'apprendimento automatico. Fornisce inoltre i rudimenti di programmazione necessari ad applicare la teoria a casi reali
Applicare conoscenza e comprensione: Alla fine del corso, gli studenti sapranno affrontare problemi concreti di scienza dei dati, dalla loro formalizzazione sino alla manipolazione dei dati attraverso appropriati strumenti software.
Capacità critiche e di giudizio: Gli studenti saranno in grado di scegliere le tecniche da applicare al caso specifico e di valutarne le prestazioni.
Capacità comunicative: Gli studenti saranno in grado di rappresentare e comunicare l'informazione estratta dai dati, attraverso l'uso razionale di grafici e indicatori.
Capacità di apprendimento: Gli studenti saranno messi in grado di apprendere autonomamente nozioni sia teoriche che pratiche del campo.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
Gruppo opzionale:
Applied Computer Science - (visualizza)
|
18
|
|
|
|
|
|
|
|
10595532 -
CYBERSECURITY
(obiettivi)
Obiettivi generali: Il corso di Sicurezza ha l’obiettivo di formare figure professionali capaci di affrontare con successo le sfide costituite dai problemi di sicurezza della società dell’informazione.
Obiettivi specifici: Il corso prevede lo studio di vari modelli di controllo degli accessi, dell’analisi delle principali difficoltà e risoluzioni di problemi di crittografia e dei principali protocolli di sicurezza utilizzati in rete
Conoscenza e comprensione: Al superamento dell’esame, lo studente avrà conoscenza e capacità di comprensione delle basi della sicurezza informatica e delle principali tecnologie per l'analisi e la soluzione di problemi di sicurezza.
Applicare conoscenza e comprensione: Il corso mette in grado lo studente di applicare la propria conoscenza e capacità di comprensione per risolvere problemi di sicurezza informatica, con sufficiente autonomia per affrontare problemi complessi; e per la consultazione efficace di documentazione avanzata di tipo scientifico e tecnologico.
Autonomia di giudizio: Il corso mira ad acquisire capacità d’interpretazione autonoma per proporre soluzioni a problemi di sicurezza congruenti con le tecnologie disponibili, e di aggiornamento continuo dell'evoluzione tecnologica, per formulare giudizi critici autonomi contribuendo all'avanzamento della sicurezza del sistema.
Abilità comunicative: Lo studente acquisisce la capacità di presentare e di argomentare le proprie idee in merito ai problemi di sicurezza affrontati ed alle soluzioni proposte, sia con colleghi che con utenti
Capacità di apprendimento successivo: Il corso prevede lo sviluppo di capacità di approfondimento nell’ambito della sicurezza informatica sia degli aspetti metodologici sia di quelli tecnologici, per adeguarsi al progredire delle tecniche e delle soluzioni ai problemi di sicurezza più comuni, e per proseguire anche in autonomia alla soluzione di nuovi problemi di sicurezza.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595531 -
DEEP LEARNING
(obiettivi)
Obiettivi generali Acquisire familiarità con tecniche avanzate di machine learning supervisionato e non supervisionato; acquisire competenze di modellazione di problemi complessi attraverso tecniche di deep learning, e saperle applicare a contesti applicativi diversi.
Obiettivi specifici Gli argomenti includono: reti neurali profonde, il loro addestramento e l'interpretazione dei risultati; reti convoluzionali e architetture prominenti; teoria del deep learning con particolare riferimento a questioni di convergenza; utilizzo di framework esistenti per l'implementazione di tecniche avanzate di machine learning; autoencoders; attacchi avversari.
Conoscenza e comprensione: Conoscenza sul funzionamento delle reti neurali e loro interpretazione matematica come approssimatori universali. Comprensione dei limiti e delle potenzialità di modelli avanzati di machine learning.
Applicazione di conoscenza e comprensione Progettazione, implementazione, messa in esercizio e analisi di architetture di deep learning per risolvere problemi complessi in disparati ambiti applicativi.
Autonomia di giudizio Essere in grado di valutare le prestazioni di diverse architetture, e di valutare la capacità di generalizzazione delle stesse.
Abilità comunicative Essere in grado di comunicare con chiarezza la formulazione di un problema di apprendimento avanzato e la sua implementazione, la sua applicabilità in contesti realistici, nonchè di motivare le scelte architetturali e di regolarizzazione.
Capacità di apprendimento successivo: Essere in grado di apprendere tecniche alternative e più complesse quali i modelli generativi basati su traporto ottimo, le trasformate di scattering e lo studio del probilo energetico delle reti neurali. Essere in grado di implementare tecniche esistenti in maniera efficiente, robusta e affidabile.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595535 -
HUMAN COMPUTER INTERACTION
|
Erogato in altro semestre o anno
|
10595533 -
OPTIMIZATION
|
Erogato in altro semestre o anno
|
10595534 -
WEB AND SOFTWARE ARCHITECTURE
(obiettivi)
Obiettivi generali: Lo scopo del corso è lo studio del linguaggio java lato server, per la realizzazione di applicazioni web. Il corso fornisce inoltre un’analisi critica di diverse soluzioni implementative di molte funzionalità applicative comuni nello sviluppo di applicazioni web.
Obiettivi specifici: Programmazione lato server mediante Java Servlet e pagine JSP.
Conoscenza e comprensione: Il corso permetterà la comprensione del supporto fornito dal linguaggio Java alla realizzazione di applicazioni web. In particolare lo studente studierà le motivazioni alla base di tutte le scelte implementative, in particolare facendo riferimento alle architetture client-server e ai protocolli di rete in uso.
Applicare conoscenza e comprensione: Attraverso il corso lo studente imparerà a riconoscere tra le possibili soluzioni applicative ad un problema, quale offra i maggiori vantaggi in termini di prestazioni, sicurezza, portabilità e efficienza. Capacità critiche e di giudizio: Il corso metterà lo studente in condizione di saper scegliere, dato un problema, la migliore metodologia risolutiva, attraverso la profonda comprensione dei requisiti e dei vincoli imposti dall'architettura.
Capacità comunicative: Lo studente sarà in grado di motivare le proprie scelte nella proposta di uno specifico approccio realizzativo di un’applicazione Web, e fornire una analisi comparativa dell’approccio scelto con altri approcci possibili.
Capacità di apprendimento: Lo studente svilupperà capacità di studio autonome e di comprensione e valutazione critica di nuove metodologie, tecnologie e modelli di sviluppo di applicazioni Web.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
|
Secondo semestre
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
Gruppo opzionale:
Applied Computer Science - (visualizza)
|
18
|
|
|
|
|
|
|
|
10595532 -
CYBERSECURITY
|
Erogato in altro semestre o anno
|
10595531 -
DEEP LEARNING
|
Erogato in altro semestre o anno
|
10595535 -
HUMAN COMPUTER INTERACTION
(obiettivi)
Obiettivi generali:
Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto e lo sviluppo e la validazione di interfacce e sistemi interattivi usabili. Gli studenti che superano l’esame sono in grado di progettare sistemi interattivi seguendo i criteri dell’interazione uomo-computer, analizzando il ruolo dell’utente, gli scenari e i compiti principali, e tenendo in considerazione i vincoli implementativi mediante cicli di progetto e sviluppo molto brevi. Obiettivi specifici:
Conoscenza e comprensione: Al termine del corso gli studenti conoscono le teorie, i modelli e le regole che guidano il progetto di interfacce e sistemi interattivi usabili. Conoscono inoltre i principi di progettazione agile centrata sull'utente. Applicare conoscenza e comprensione: Gli studenti applicano le conoscenze acquisite nella progettazione di un'interfaccia come lavoro di gruppo per l'esame.
Capacità critiche e di giudizio: Gli studenti, anche attraverso esercitazioni pratiche, acquisiscono competenze nella valutazione e validazione di interfacce uomo computer e sviluppano capacità di giudizio sull'usabilità di un'interfaccia e quindi sulle ricadute dell'uso dell'interfaccia in termini di efficacia, efficienza e soddisfazione.
Capacità comunicative: Gli studenti sostengono due presentazioni del loro lavoro di gruppo in occasione delle due revisioni previste con il docente. La prima revisione è svolta in aula e la presentazione è pertanto rivolta a tutti i colleghi al fine di esercitare le capacità comunicative. Capacità di apprendimento: La capacità di apprendimento è stimolata attraverso 1) attività di progettazione guidata e autonoma con supervisione; 2) l'esposizione a problemi realistici di progettazione stimolando la ricerca autonoma di soluzioni non standard; 3) la presentazione di casi reali e stimolandone la discussione critica.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595533 -
OPTIMIZATION
(obiettivi)
Obiettivi generali: Il corso introduce lo studente alla modellazione matematica di problemi di ottimizzazione, allo studio della programmazione lineare e intera e alle loro applicazioni in contesti reali.
Obiettivi specifici: Apprendere: 1. Le principali tecniche di modellazione di problemi usando strumenti logico/matematici; 2. Le proprietà teoriche e sulle applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti); 3. sulla programmazione lineare e sue applicazioni; 4. sull’uso di software di modellazione ed ottimizzazione.
Conoscenza e comprensione: Sviluppare 1. Capacità di sintesi, di ragionamento logico e di problem solving, mediante tecniche quantitative; 2. capacità di formulare e risolvere (anche in maniera approssimata) problemi computazionalmente difficili; 3. capacità di usare bibliografia e software in inglese; 4. capacità di identificare problemi di programmazione matematica e ottimizzazione; 5. capacità di realizzare un modello di un problema matematico, determinando se è lineare, intero, non lineare, di trovare soluzioni per il modello usando gli algoritmi appropriati, di interpretare la soluzione;
Applicazione di conoscenza e comprensione: 1. Applicazioni pratiche dei principali problemi di ottimizzazione (in particolare su reti); 2. uso di software di modellazione ed ottimizzazione.
Autonomia di giudizio: Viene rafforzata la autonomia di giudizio dello studente attraverso l'approfondimento della capacità di sintesi, di ragionamento logico-matematico e di problem solving, mediante tecniche quantitative;
Abilità comunicative: Il corso sviluppa le abilità comunicative degli studenti attraverso lavoro in equipe degli studenti finalizzato a simulare la risoluzione di problemi di ottimizzazione che si possono presentare nel contesto reale di un azienda di logistica.
Capacità di apprendimento Le capacità acquisite nel corso sono di utilità in insegnamenti di livello superiore su temi avanzati nella teoria della complessita, di algoritmi di rete e di teoria dei grafi.
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595534 -
WEB AND SOFTWARE ARCHITECTURE
|
Erogato in altro semestre o anno
|
|
Gruppo opzionale:
Law and Economics - (visualizza)
|
6
|
|
|
|
|
|
|
|
10595536 -
BUSINESS AND COMPUTER SCIENCE
|
6
|
SECS-P/07
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10595537 -
LAW AND COMPUTER SCIENCE
(obiettivi)
Obiettivi L’obiettivo del corso è quello di approfondire i principali temi di regolazione giuridica delle attività informatiche, nelle imprese e nella pubblica amministrazione, con riferimento ai temi della intelligenza artificiale, della regolamentazione europea sulla elaborazione e del trattamento dei dati personali e sul commercio elettronico e proprietà intellettuale in materia informatica. Si presenteranno anche gli strumenti giuridici, protocolli e standard della cooperazione europea nell'uso dell'intelligenza artificiale. Il corso è strutturato in moduli di approfondimento anche con esame di casi pratici.
Conoscenza e comprensione Al termine del corso lo studente è in grado di identificare e di sviluppare le principali conoscenze giuridiche in materia di elaborazione dati e intelligenza artificiale e quindi di operare efficacemente nell'ambito di amministrazioni pubbliche. Inoltre è in grado di partecipare efficacemente a gruppi di lavoro sull'uso dell'intelligenza artificiale avendo chiare le indispensabili nozioni e responsabilità giuridiche. Il corso consente di raccordare competenze tecnologiche informatiche e competenze organizzative economiche e giuridiche riguardanti l’uso dell’informatica e AI o di strumenti informatici e AI in ambito aziendale e pubblico.
Capacità di applicare conoscenza e comprensione Per la realizzazione degli obiettivi formativi le attività didattiche si articolano in moduli di approfondimento tematico, per la definizione e l’intervento in specifici contesti e per comprendere le esigenze degli operatori.
|
6
|
IUS/20
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
|
- -
Elective course
|
12
|
|
48
|
-
|
-
|
-
|
Attività formative a scelta dello studente (art.10, comma 5, lettera a)
|
ENG |
AAF1466 -
Internship
(obiettivi)
La formazione si completa con un tirocinio, da svolgere o esternamente presso aziende del settore informatico, tipicamente seguendo attività di analisi, progettazione e sviluppo software, analisi di dati, intelligenza artificiale, sistemi e reti, o internamente, approfondendo tematiche avanzate. In entrambi i casi il tirocinio ha una durata di circa tre mesi e prevede che allo studente sia proposto un problema del mondo reale, da risolvere attraverso l'elaborazione di un progetto sviluppato con un approccio professionale.
|
12
|
|
-
|
-
|
-
|
-
|
Ulteriori attività formative (art.10, comma 5, lettera d)
|
ENG |
AAF2011 -
Final exam
(obiettivi)
La formazione si completa con un tirocinio, da svolgere o esternamente presso aziende del settore informatico, tipicamente seguendo attività di analisi, progettazione e sviluppo software, analisi di dati, intelligenza artificiale, sistemi e reti, o internamente, approfondendo tematiche avanzate. In entrambi i casi il tirocinio ha una durata di circa tre mesi e prevede che allo studente sia proposto un problema del mondo reale, da risolvere attraverso l'elaborazione di un progetto sviluppato con un approccio professionale.
|
6
|
|
-
|
-
|
-
|
-
|
Per la prova finale e la lingua straniera (art.10, comma 5, lettera c)
|
ENG |