Informatica
-
Prendete un paio di giorni per organizzare e riempire tutto!
← | →
-
Professori competenti, materie interessanti
← | →
Laurea Triennale
A Pisa
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Descrizione
-
Tipologia
Laurea Triennale
-
Luogo
Pisa
-
Inizio
Scegli data
Il Corso di Laurea è progettato con l’obiettivo di rispondere alla crescente domanda di figure aventi elevate competenze scientifiche e tecnologiche per la società dell’informazione; ci si propone di formare specialisti dotati di una profonda cultura nei fondamenti scientifici dell’informatica e di elevate competenze nelle relative tecnologie, con l’obiettivo di contribuire al progresso dell’informatica sia per quanto riguarda gli aspetti di base che per il loro utilizzo nei differenti ambiti applicativi. Il percorso formativo copre tutti gli argomenti fondamentali indispensabili nel bagaglio culturale di un laureato magistrale del settore; è prevista, inoltre, l’acquisizione di conoscenze avanzate su alcuni argomenti specialistici di notevole impatto innovativo, che lo studente sceglie in base alle proprie attitudini e ai propri interessi, all’interno di una offerta che valorizza le aree di competenza specifiche dei docenti. Le basi scientifiche forniscono gli strumenti concettuali che permettono di identificare e definire compiutamente gli indicatori di qualità delle soluzioni computazionali proposte in termini di efficienza algoritmica, correttezza e prestazioni. Allo stesso tempo il laureato magistrale in informatica sarà in grado di valutare e padroneggiare le tecnologie informatiche. Il percorso formativo della laurea magistrale in informatica è strutturato in due fasi. La prima parte del percorso formativa della laurea magistrale si pone come obiettivo quello fare crescere la capacità di astrazione degli studenti. La capacità di vedere un sistema informatico a diversi livelli di astrazione usando tecniche e linguaggi differenti è l’aspetto che meglio caratterizza il laureato magistrale e che permette loro di comprendere e dominare l’innovazione. La seconda parte del percorso formativo prevede...
Sedi e date
Luogo
Inizio del corso
Inizio del corso
Opinioni
-
Prendete un paio di giorni per organizzare e riempire tutto!
← | →
-
Professori competenti, materie interessanti
← | →
Valutazione del corso
Lo consiglia
Valutazione del Centro
ANDRÉS
Marco Alfieri
Programma
Principi dei linguaggi di Programmazione (9 cfu)
- Il corso si propone l'obiettivo di presentare i prinicipi e le tecniche per la realizzazione di linguaggi di programmazione. Il corso consiste di due moduli.
Il primo modulo si propone di Introdurre la teoria, i principi e le tecniche per la generazione di efficienti strumenti che mappano programmi in codici eseguibili sulle machine correnti. limitandoci agli aspetti di più diffusa applicazione e fornendo puntatori ad approfondimenti.
Il secondo modulo ha l'obiettivo stendere ed approfondire la conoscenza dei diversi paradigmi linguistici. Mostrare alcuni esempi di tecniche basate sulla semantica utilizzabili nella implementazione di linguaggi.
- Il corso si propone l'obiettivo di presentare i prinicipi e le tecniche per la realizzazione di linguaggi di programmazione. Il corso consiste di due moduli.
Basi di dati II (9 cfu)
- Gli obiettivi del corso sono:
Fornire informazioni sulle tecniche per la realizzazione di sistemi per basi di dati, per permettere un uso più consapevole di tali strumenti, per fornire gli strumenti di base per l’amministrazione di sistemi per la gestione di basi di dati, e per fornire conoscenze relative ad algoritmi, strutture dati, ed alla costruzione di sistemi complessi
Fornire informazioni relative a modelli avanzati per la gestione di dati semistrutturati e di conoscenza in uso nel semantic web
Syllabus
Architettura dei DBMS (sistemi per la gestione di basi di dati)
Il gestore della memoria permanente e il gestore del buffer
Il gestore delle strutture di memorizzazione
Il gestore dei metodi di accesso
Il gestore del catalogo e il gestore delle autorizzazioni.
Il gestore delle interrogazioni: ottimizzazione ed esecuzione.
Gestione delle transazioni e della concorrenza.
Progettazione fisica e messa a punto di basi di dati
Introduzione a XML e alla interrogazione di database semistrutturati.
Ontologie formali e elementi di description logic
Introduzione ai linguaggi formali per il web semantico: Resource Description Framework (RDF), Web Ontology Language (OWL)
- Gli obiettivi del corso sono:
Programmazione Avanzata (9 cfu)
- Gli obiettivi del corso sono:
di fornire agli studenti una conoscenza approfondita di come come concetti e metafore ad alto livello dei linguaggi di programmazione si traducono in sistemi eseguibili e quali siano i loro costi e limiti
di familiarizzare gli studenti con i moderni principi, tecniche e migliori pratiche per la costruzione di software sofisticato
di introdurre tecniche di programmazione a livelli di astrazione più elevata, in particolare generative programming, component programming e web computing
di presentare frameworks allo stato dell’arte che incorporano queste tecniche.
Il corso in particolare si focalizza su questioni di qualità relative al progetto dettagliato ed alla codifica, quali l’affidabilità, le prestazioni, l’adattabilità e l’integrabilità in sistemi più ampi.
Syllabus
Pragmatica dei Linguaggi di Programmazione
Supporto Run Time e Ambienti di Esecuzione
Programmazione Generica
Librerie di Classi e Framework
Programmazione Generativa
Interoperabilità tra Linguaggi
Programmazione Basata su Componenti
Web Services
Web e Application Frameworks
Linguaggi di Scripting
- Gli obiettivi del corso sono:
Algoritmica II (9 cfu)
- In questo corso studieremo, progetteremo e analizzeremo soluzioni algoritmiche e strutture dati avanzate per la risoluzione efficiente di problemi combinatori che coinvolgono vari tipi di dato— quali interi, stringhe, punti (geometrici), alberi, grafi. Questo corso costituisce un naturale approfondimento e ampliamento delle conoscenze di base apprese nel percorso della laurea triennale. Il suo syllabus è organizzato per ambiti applicativi, al fine di contestualizzare le tecniche studiate nella realizzazione di software efficiente per essi, e così da consentire adattamenti e specializzazioni di anno in anno che si renderanno necessari e/o opportuni.
Data Storage
Data compression e data synchronization
Data Streaming
Bloom Filter: standard, spectral, compressed, con applicazioni
Count Min Sketch, con applicazioni
Memorie Gerarchiche
Permuting e Sorting, limiti inferiori
Multi-way mergesort su 1 disco, disk striping, e sorting multi-disco
String B-tree
BioInformatica
Suffix Array: definizione, ricerca e costruzione
Suffix Tree: definizione, ricerca, e costruzione da LCP e SA
Lowest Common Ancestor
Pattern matching: KMP, Aho-Corasick, Agrep
Motori di Ricerca
Hashing: universale, cuckoo, perfect, minimal ordered perfect
Codifiche di interi a lunghezza variabile
Liste invertite: memorizzazione e query
Reti
Distributed set operations e hash table
Skip graphs: P2P routing via skip lists
Caching: competitive analysis e on-line algorithms
GIS e DataBase
Closest Pair, Interval tree, Range tree, Priority search tree, K-d tree
Algoritmi di approssimazione, e strutture dati avanzate
Soluzioni approssimate a problemi NPC
Strutture dati randomizzate e auto-aggiustanti
- In questo corso studieremo, progetteremo e analizzeremo soluzioni algoritmiche e strutture dati avanzate per la risoluzione efficiente di problemi combinatori che coinvolgono vari tipi di dato— quali interi, stringhe, punti (geometrici), alberi, grafi. Questo corso costituisce un naturale approfondimento e ampliamento delle conoscenze di base apprese nel percorso della laurea triennale. Il suo syllabus è organizzato per ambiti applicativi, al fine di contestualizzare le tecniche studiate nella realizzazione di software efficiente per essi, e così da consentire adattamenti e specializzazioni di anno in anno che si renderanno necessari e/o opportuni.
Metodi numerici e ottimizzazione (12 cfu)
- Il corso si propone di presentare alcune delle principali metodologie e tecniche relative alla soluzione di problemi numerici. Tali metodologie richiedono l'utilizzo, spesso in combinazione tra loro, di tecniche dell'analisi numerica e di algoritmi di ottimizzazione. Verranno illustrati alcuni dei principali casi in cui i metodi di ottimizzazione trovano applicazione nella risoluzione di problemi di analisi numerica e, viceversa, le tecniche di analisi numerica risultano fondamentali per la soluzione di problemi di ottimizzazione. Le metodologie introdotte saranno illustrate mediante l'applicazione ad alcuni specifici problemi selezionati, ad esempio, nei seguenti ambiti: regressione e stima di parametri in statistica, approssimazione e data fitting, machine learning, data mining, ricostruzioni di immagini e segnali, equilibri economici e problemi finanziari.
Syllabus
Richiami di algebra lineare e calcolo differenziale
Ottimizzazione non vincolata e sistemi di equazioni
Metodi diretti ed iterativi per sistemi lineari
Metodi iterativi per sistemi non lineari
Metodi per l'ottimizzazione non vincolata
Problema dei minimi quadrati
Metodi iterativi per il calcolo di autovalori
Ottimizzazione vincolata e sistemi di equazioni
Algoritmi per l'ottimizzazione vincolata
Applicazioni: regressione, stima di parametri, approssimazione e data fitting
Applicazioni: machine learning, data mining, ricostruzioni di immagini e segnali
Applicazioni: equilibri economici e problemi finanziari
Strumenti software per problemi numerici
- Il corso si propone di presentare alcune delle principali metodologie e tecniche relative alla soluzione di problemi numerici. Tali metodologie richiedono l'utilizzo, spesso in combinazione tra loro, di tecniche dell'analisi numerica e di algoritmi di ottimizzazione. Verranno illustrati alcuni dei principali casi in cui i metodi di ottimizzazione trovano applicazione nella risoluzione di problemi di analisi numerica e, viceversa, le tecniche di analisi numerica risultano fondamentali per la soluzione di problemi di ottimizzazione. Le metodologie introdotte saranno illustrate mediante l'applicazione ad alcuni specifici problemi selezionati, ad esempio, nei seguenti ambiti: regressione e stima di parametri in statistica, approssimazione e data fitting, machine learning, data mining, ricostruzioni di immagini e segnali, equilibri economici e problemi finanziari.
Modelli di Calcolo (9 cfu)
- Vengono introdotti i principi della semantica operazionale, della semantica denotazionale e delle tecniche per metterle in relazione per un linguaggio imperativo e per un linguaggio funzionale di ordine superiore. Viene anche presentata la semantica operazionale e osservazionale di due calcoli per la descrizione di processi (CCS e pi-calcolo). Infine si esaminano i modelli operazionali con probabilità discrete e li si presentano dal punto di vista degli automi probabilistici.
Syllabus
Semantica operazionale e denotazionale di un semplice linguaggio imperativo (IMP)
Introduzione e sistemi di prova con regole di inferenza
Sintassi e semantica operazionale di IMP
Tecniche di prova per induzione.
Ordinamenti parziali completi
Teorema del minimo punto fisso
Segnature e algebre dei termini
Semantica denotazionale di IMP
Equivalenza tra semantica operazionale e denotazionale di IMP
Semantica operazionale e denotazionale di un linguaggio funzionale higher order (HOL)
Sintassi e semantica operazionale lazy di HOL
Domini e costruzioni di domini
Semantica denotazionale lazy di HOL
Relazione tra semantica operazionale e denotazionale di HOL
Sistemi di transizione e calcoli di processo per sistemi comunicanti mobili e probabilistici
Sintassi e semantica operazionale di un calcolo di processi (CCS)
Semantica osservazionale del CCS
Logica di Hennessy-Milner
Sintassi e semantica di un calcolo per processi mobili (pi-calculus)
Modelli operazionali con probabilità discrete, processi di Markov
Automi probabilistici (PA)
Simulazione e bisimulazione di PA
- Vengono introdotti i principi della semantica operazionale, della semantica denotazionale e delle tecniche per metterle in relazione per un linguaggio imperativo e per un linguaggio funzionale di ordine superiore. Viene anche presentata la semantica operazionale e osservazionale di due calcoli per la descrizione di processi (CCS e pi-calcolo). Infine si esaminano i modelli operazionali con probabilità discrete e li si presentano dal punto di vista degli automi probabilistici.
Sistemi distribuiti: paradigmi e modelli (9 cfu)
- Il corso tratta dei paradigmi e dei modelli di programmazione utilizzati per sistemi distribuiti e paralleli sia a livello delle applicazioni che degli strumenti di supporto. Partendo da modelli di programmazione strutturata (algorithmical skeleton, parallel design pattern) o basati sul concetto di componente o di servizio, verranno presi in considerazione sia i problemi relativi agli aspetti funzionali (potere espressivo, modularità, riuso) che quelli relativi agli aspetti non funzionali (performance, fault tolerance, adattività). Nell’ultima parte del corso si presenteranno i protocolli e le problematiche relative alle reti wireless e multimedia nonché alle architetture peer2peer, e si vedranno le implicazioni derivanti dal loro uso per la realizzazione di applicazioni parallele e distribuite.
Syllabus
Paradigmi per la programmazione parallela e distribuita
Programmazione strutturata
Componenti
Workflow
Modelli implementativi'
Posix-TCP/IP-SSH/SCP
RPC/RMI
Distributed Virtual Shared Memory
Distributed Virtual File Systems
Sistemi “Middleware” (Globus, gLite, ...)
Architetture per sistemi distribuit
Reti wireless
Reti per multimedia
Architetture Peer-to-peer
- Il corso tratta dei paradigmi e dei modelli di programmazione utilizzati per sistemi distribuiti e paralleli sia a livello delle applicazioni che degli strumenti di supporto. Partendo da modelli di programmazione strutturata (algorithmical skeleton, parallel design pattern) o basati sul concetto di componente o di servizio, verranno presi in considerazione sia i problemi relativi agli aspetti funzionali (potere espressivo, modularità, riuso) che quelli relativi agli aspetti non funzionali (performance, fault tolerance, adattività). Nell’ultima parte del corso si presenteranno i protocolli e le problematiche relative alle reti wireless e multimedia nonché alle architetture peer2peer, e si vedranno le implicazioni derivanti dal loro uso per la realizzazione di applicazioni parallele e distribuite.
Prova Finale (24 cfu)
12 cfu a scelta nel gruppo Libera scelta
- Insegnamenti a libera scelta dello studente
Servizi software (6 cfu)
- • Obiettivi formativi: L’obiettivo del corso è introdurre gli aspetti principali della progettazione, analisi e realizzazione di servizi software. Syllabus • Standard di base dei servizi Web • Progettazione, analisi e realizzazione di servizi software o Individuazione, composizione e adattamento di servizi esistenti o Utilizzo di linguaggi workflow per la definizione di processi aziendali (“business processes”) o Analisi di processi aziendali • Descrizioni estese di servizi o Informazioni sulla qualità dei servizi o Informazioni sul comportamento dei servizi • Introduzione ai servizi cloud
Piattaforme abilitanti distribuite (6 cfu)
- Il corso approfondisce e sviluppa, rispetto ai corsi fondamentali, lo studio delle problematiche legate alle piattaforme abilitanti distribuite, quali Grid e Cloud. Ciò avviene anche attraverso l'esame delle soluzioni allo stato dell'arte, l'analisi nel dettaglio della loro tecnologia e l'utilizzo pratico di alcune piattaforme abilitanti distribuite di ultima generazione. Syllabus Introduzione al middleware distribuito Approfondimento dei concetti e tecniche di grid computing Componenti e soluzioni per il grid computing Virtualizzazione delle risorse Tecnologie di virtualizzazione Approfondimento dei concetti e tecniche di cloud computing Esempi pratici di cloud computing Strumenti di sviluppo applicazioni per grid e cloud Struttura del corso 9 CFU distribuiti in due moduli.
Apprendimento automatico: fondamenti (6 cfu)
- Obiettivi Gli obiettivi del corso sono di introdurre i principi e l'analisi critica dei principali paradigmi per l'apprendimento da insiemi di dati e sue applicazioni. I concetti sono introdotti progressivamente dagli approcci più semplici fino ai modelli allo stato dell'arte nell'ambito dell’inquadramento concettuale generale e moderno del machine learning. Il corso si focalizza in particolare sull'analisi critica delle caratteristiche per la realizzazione e l'uso appropriato di algoritmi di apprendimento di funzioni da esempi e per la modellazione e valutazione sperimentale. Syllabus - Introduzione: Compiti computazionali nell'apprendimento predittivo e concetto di generalizzazione. - Modelli e concetti di base: struttura dello spazio delle ipotesi, spazi discreti e continui, modelli lineari, nearest neighbor, modelli proposizionali, bias induttivo. - Modelli Neurali: Perceptron e proprietà computazionali. Introduzione alle Reti Neurali multistrato feedforward: architetture e algoritmi di apprendimento. - Modelli basati su regole. - Principi dell'apprendimento ed aspetti pratici generali: Validazione, Analisi Bias-Variance. Elementi di Statistical Learning Theory, VC-dimension. Comitati di modelli. - Support Vector Machines: caso lineare, margine, caso non-lineare, modelli a Kernel. - Modelli Bayesiani e Grafici. - Unsupervised learning. - Introduzione alle Applicazioni e modelli avanzati.
Basi di dati di supporto alle decisioni (6 cfu)
- Ogni organizzazione utilizza i dati storici accumulati con il sistema informatico operazionale per produrre informazioni sintetiche adatte a facilitare i processi decisionali e renderli più veloci ed obiettivi. Il corso presenta i principali approcci al problema e le caratteristiche degli strumenti matematici e informatici utilizzati. Il corso presenta l’approccio che prevede l'utilizzo di particolari basi di dati, dette Data Warehouse, a partire dalle quali si procede con opportune interrogazioni per produrre interattivamente dati di sintesi. Si presentano anche i nuovi requisiti che questi problemi pongono alla tecnologia dei sistemi per basi di dati per rendere possibili analisi interattive rapide di grandi quantità di dati. - Sistemi informativi e informatici nelle organizzazioni. - I sistemi informatici direzionali basati su data warehouse. - Modelli dei dati per data warehouse e metodi di analisi multidimensionale. - Progettazione concettuale e logica di data warehouse. - Algoritmi per la scelta delle viste da materializzare. - La tecnologia dei sistemi per data warehouse: tipi di indici, ottimizzazione delle interrogazioni, progettazione fisica, riscrittura delle interrogazioni per l'uso di viste materializzate. - Studio di casi.
Progettazione di interfacce e valutazione dell’usabilità (6 cfu)
- Lo scopo del corso è di apprendere i concetti di base ed i metodi principali per progettare e valutare interfacce utenti, più in generale, applicazioni interattive, caratterizzate da usabilità ed accessibilità. Verranno considerati anche vari strumenti automatici in grado di supportare i metodi considerati. Alla fine del corso lo studente dovrebbe essere in grado di progettare e valutare autonomamente sistemi interattivi caratterizzati da buona usabilità. Contenuti Nella prima parte del corso si inizierà con esempi di interfacce difficili da usare, per introdurre i concetti e gli aspetti che si devono tenere presenti quando si progettano interfacce utenti. Poi, si passerà a vedere come usare questi concetti in concreto nella progettazione ed implementazione dei dialoghi e delle presentazioni forniti da applicazioni interattive, con esempi ed esercizi. Si fornirà particolare attenzione alla progettazione di ipermedia adattabili ed adattivi, siti web, interfacce per dispositivi mobili e telefoni cellulari. La seconda parte del corso verrà dedicata a come valutare l’usabilità di applicazioni interattive considerando vari metodi, da quelli basati su ispezione dell’interfaccia seguendo criteri predefiniti a quelli che si basano su informazioni empiriche, includendo tecniche remote, dove utenti e valutatori lavorano in siti e/o tempi differenti. Si finirà il corso considerando ambienti di interazione innovativi rispetto agli ambienti comuni basati su sistemi desktop.
Data Mining: aspetti avanzati e casi di studio (6 cfu)
- I formidabili progressi della potenza di calcolo, della capacità di acquisizione e memorizzazione dei dati e di connettività hanno creato quantità di dati senza precedenti. Il data mining, ovvero la scienza dell’estrazione di conoscenza da tali masse di dati, si è quindi affermato come ramo interdisciplinare dell’informatica. Le tecniche di data mining sono state applicate a molti problemi in ambito industriale, scientifico e sociale, e si ritiene che avranno un impatto sempre più profondo sulla società. L’obiettivo del corso è quello di fornire: - una rassegna delle tecniche avanzate per il mining delle nuove forme di dati; - una rassegna delle principali aree applicative e di casi di studio paradigmatici Mining di serie temporali e dati spazio-temporali Mining di dati sequenziali, mining di grandi grafi e reti Tecniche avanzate di associazione, correlazione and pattern frequenti Tecniche avanzate di classificazione, clustering e outlier detection Analitica visuale Linguaggi, standard e architetture dei sistemi di data mining Impatto sociale del data mining Data mining e protezione della privacy Applicazioni: Grande distribuzione, Marketing, CRM Industria delle telecomunicazioni, Analisi finanziaria, analisi di rischio Rilevamento di frodi Pubblica amministrazione e sanità Mobilità e trasporti
Metodi per la specifica e verifica di processi di business (6 cfu)
- Il corso si pone l'obiettivo di illustrare i concetti principali e le problematiche inerenti la gestione di processi, intesi come flussi di lavoro (workflow) costruiti componendo certe attivita' atomiche, e di fornire una panoramica dei linguaggi, dei modelli concettuali e degli strumenti automatici basati su essi, che possono essere usati per affrontare le problematiche in maniera adeguata. Per realizzare tale obiettivo, il corso si propone di conciliare le tecniche di astrazione, con l'approccio strutturato e modulare e coi modelli operazionali propri della ricerca scientifica in ambito informatico, mostrando l'influenza esercitata dalle proprieta' di interesse ai fini della analisi e della verifica automatica sulla scelta dei linguaggi e modelli usati per la specifica e la progettazione di processi. Il percorso di apprendimento portera' gli studenti ad acquisire dimestichezza con i termini tecnici dell'area, con i diversi modelli per strutturare e comporre i processi in modo rigoroso, con le proprieta' logiche che questi modelli possono essere richiesti soddisfare e con le tecniche di analisi e verifica dei processi. Inoltre potranno sperimentare i concetti visti con strumenti automatici per progettare e analizzare processi.
Elaborazione di Segnali e Immagini (6 cfu)
- L’obiettivo del corso è fornire allo studente la conoscenza dei metodi fondamentali di analisi di segnali, sia...
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Informatica