Corso di Laurea Triennale in INFORMATICA

annuncio pubblicitario
Corso di Laurea Triennale in INFORMATICA
Presidente: Elena Barcucci
Dipartimento di Sistemi e Informatica
Viale Morgagni 65
50134 – Firenze
Segreteria: 055 4237437
Fax: 055 4237436
E-mail: [email protected]
Portale informativo: http://if.dsi.unifi.it
Finalità del Corso di Laurea
L’obiettivo del corso di laurea è di creare specialisti in possesso innanzi tutto di una buona
conoscenza di base degli strumenti, delle metodologie e dei fondamenti dell’Informatica; a questi
si aggiunge, a seconda della scelta degli orientamenti e degli esami facoltativi, una maggiore
competenza su alcune tematiche più specifiche, sia di carattere fondamentale sia applicativo.
I laureati in Informatica dovranno avere una buona preparazione tecnica che consenta un rapido
inserimento nel mondo del lavoro nel settore delle tecnologie dell’informazione e, nello stesso
tempo, una preparazione culturale di base che permetta di affrontare con successo il progredire
delle tecnologie, l’avanzamento della carriera verso ruoli di responsabilità e l’accesso ai livelli di
studio universitari successivi.
I laureati in Informatica devono pertanto:
• possedere una buona base ed un ampio spettro di conoscenze e di competenze nei vari settori
delle scienze dell'informazione;
• avere capacità di affrontare e analizzare problemi e di sviluppare sistemi informatici per la loro
soluzione;
• avere familiarità con il metodo scientifico di indagine e saper comprendere e utilizzare gli
strumenti matematici di supporto alle competenze informatiche;
• essere in grado di utilizzare la lingua inglese, nell'ambito specifico di competenza e per lo
scambio di informazioni generali;
• essere capaci di lavorare in gruppo, di operare con definiti gradi di autonomia e di inserirsi
prontamente negli ambienti di lavoro.
Sbocchi Professionali
I laureati in Informatica opereranno nell’ambito della progettazione, sviluppo e gestione di sistemi
informatici, con riguardo ad una vasta gamma di domini di applicazione. Tali attività si
svolgeranno in imprese produttrici nelle aree dei sistemi informatici e delle reti di calcolatori,
nonché nelle imprese, nelle amministrazioni e nei laboratori che utilizzano sistemi informatici
complessi. La formazione del laureato in Informatica è altresì mirata al suo inserimento, dopo
ulteriori periodi di istruzione e di addestramento, in attività di ricerca scientifica e tecnologica a
livello avanzato, ed in attività di insegnamento.
Iscrizione al Corso e Prerequisiti
Le conoscenze di base necessarie per un agevole accesso al corso sono di norma acquisite con un
Diploma di Scuola Media Superiore. I corsi della classe richiedono attitudine agli studi di carattere
scientifico; lo studente dovrebbe possedere una buona preparazione di base e soprattutto gradire lo
studio delle materie di tipo logico-matematico. Lo studente deve essere in grado di comunicare
correttamente in italiano scritto e parlato.
A partire dal sito web del corso di laurea, sono reperibili un programma dettagliato ed un test di
autovalutazione che consente agli studenti di determinare il livello della propria preparazione. È
previsto un precorso (facoltativo) nel periodo dal 5 al 16 settembre 2005; il 20 settembre 2005 si
terrà un test a risposta multipla (obbligatorio per tutti), per stabilire eventuali debiti formativi. Gli
studenti con debiti formativi verranno affidati a tutor, compatibilmente con le risorse messe a
disposizione dall'Ateneo. L'estinzione dei debiti formativi avverrà contestualmente all'esame di
Analisi Matematica: Calcolo Differenziale.
Organizzazione della Didattica
La durata normale per il conseguimento della laurea è di tre anni. La didattica è organizzata in
moduli ai quali sono associati Crediti Formativi Universitari (CFU) che gli studenti acquisiscono
in funzione del lavoro svolto. La formazione dello studente prevede il conseguimento di 60
CFU/anno corrispondenti a 1440 ore di lavoro complessivo. Ad ogni unità didattica sono di norma
assegnati 6 CFU e sono previste 48 ore di lezione (di cui 16 di esercitazione); per i corsi di
laboratorio il rapporto tra le ore di lezione e le ore di esercitazione è invertito.
Calendario Didattico
L’anno accademico è suddiviso in due periodi didattici (semestri) di 12 settimane ciascuno; al
termine del primo periodo è prevista un’interruzione di 8 settimane per permettere agli studenti di
sostenere gli esami.
I periodi didattici sono distribuiti nel corso dell’anno nel modo seguente:
•
•
I semestre: dal 26 settembre 2005 al 23 dicembre 2005
II semestre: dal 13 febbraio 2006 al 19 maggio 2006 (vacanze Pasquali dal 13 aprile al 18
marzo compresi)
Sono previsti i seguenti appelli di esame:
I sessione (per i corsi tenuti nel primo semestre):
I appello dal 9 al 20 gennaio 2006
II appello dal 23 gennaio 2006 al 9 febbraio 2006
II sessione:
I appello dal 29 maggio 2006 al 17 giugno 2006
II appello dal 19 giugno 2006 al 7 luglio 2006
III sessione:
I appello dal 10 al 21 luglio 2006
II appello dal 12 al 23 settembre 2006
IV sessione:
I appello dall’8 al 19 gennaio 2007
II appello dal 22 gennaio 2007 al 9 febbraio 2007
Piani di Studio per gli immatricolati negli anni accademici 2004-2005 e
2005-2006
Il Corso di Laurea in Informatica fino all’anno accademico 2003-2004 era articolato in 5
orientamenti. A partire dall’anno accademico 2004-2005 tali orientamenti sono stati accorpati e il
Corso di Laurea in Informatica è attualmente articolato in 2 orientamenti:
1. Informatica Generale
2. Applicazioni Scientifiche ed Economiche dell’Informatica
In questa nuova organizzazione, gli insegnamenti dei primi due anni del corso di studio sono
comuni a tutti gli orientamenti. Il terzo anno invece prevede insegnamenti comuni per 18 crediti,
18 crediti specifici per ciascun orientamento, 12 crediti a scelta libera dello studente e 12 crediti
per la prova finale.
La scelta dell’ orientamento avverrà al momento dell’iscrizione al terzo anno di corso. Per i due
orientamenti sono previsti rispettivamente un minimo di 99 e 81 CFU nelle discipline del settore
informatico, 33 CFU nelle discipline dei settori matematici e 6 CFU nelle discipline del settore
fisico. Fra le attività formative nei diversi settori disciplinari saranno previste lezioni ed
esercitazioni di laboratorio, attività progettuali autonome e attività individuali in laboratorio, per
21 CFU.
Nel seguito sono riportati gli insegnamenti del I, II e del III anno comuni a tutti gli orientamenti
(con indicazione dei CFU associati).
I anno
Algebra Lineare e Applicazioni
Analisi Matematica: Calcolo Differenziale
Analisi Matematica: Calcolo Integrale
Architetture degli Elaboratori
Laboratorio di Informatica: Architetture
Laboratorio di Programmazione
Matematica Discreta
Matematica Discreta e Logica
Programmazione
CFU
6
6
6
6
3
6
6
3
6
Durante il primo anno di corso, sarà inoltre previsto l’accertamento della conoscenza della lingua
inglese (fondamenti della lingua e inglese tecnico), per la quale vengono riconosciuti 6 CFU.
II anno
Algoritmi e Strutture Dati
Basi di Dati e Sistemi Informativi
Calcolo delle Probabilità e Statistica
Calcolo Numerico
Fisica Generale
Laboratorio di Informatica: Algoritmi e Strutture Dati
Laboratorio di Sistemi Informativi
Linguaggi di Programmazione e Compilazione
Metodologie di Programmazione
Programmazione Concorrente
Reti di Calcolatori
Sistemi Operativi
CFU
6
6
6
6
6
3
3
6
6
6
6
6
III anno
Informatica e Gestione Aziendale
Informatica Teorica: Linguaggi, Computabilità,
Complessità
Laboratorio di Informatica: Sistemi Operativi
Laboratorio di Reti
Tecniche di Comunicazione
CFU
3
6
3
3
3
Di seguito sono infine riportati gli obiettivi formativi specifici e gli insegnamenti di ciascun
orientamento.
ORIENTAMENTO “INFORMATICA GENERALE”
Obiettivo principale dell'orientamento è quello di creare specialisti in possesso di una buona
conoscenza di base degli strumenti, delle metodologie e dei fondamenti dell’Informatica e che
abbiano anche competenze su alcune tematiche più specifiche, sia di carattere fondamentale sia
applicativo. In particolare si vuole dare una buona preparazione tecnica che consenta un rapido
inserimento nel mondo del lavoro ed una preparazione culturale di base che permetta di affrontare il
progredire delle tecnologie, l’avanzamento della carriera verso ruoli di responsabilità e l’accesso ai
livelli di studio universitari successivi, in particolare alla laurea specialistica in Scienze e
Tecnologie dell'Informazione che ne costituisce la naturale prosecuzione. L’orientamento mira a
sviluppare la capacità di progettazione, sviluppo e gestione sia dei sistemi informatici sia delle reti
di calcolatori.
III anno, 3 esami a scelta tra
Basi di Dati Distribuite
Ingegneria del Software+Laboratorio
Modellistica e Simulazione
Organizzazione Informatica del Lavoro
Paradigmi di Programmazione
Programmazione di Reti
Sicurezza delle Reti
Sistemi concorrenti e distribuiti
Strutture per basi di dati
CFU
6
6
6
6
6
6
6
6
6
ORIENTAMENTO “APPLICAZIONI SCIENTIFICHE ED ECONOMICHE
DELL’INFORMATICA”
Obiettivo principale dell'orientamento è quello di formare degli esperti informatici con specifiche
competenze nell'ambito del Calcolo Scientifico. I corsi che lo caratterizzano pertanto intendono
fornire gli approfondimenti matematici e fisici e gli strumenti numerici necessari per la
comprensione, la modellizzazione e la simulazione al calcolatore di importanti problemi teorici e
applicativi comuni a svariati settori scientifici e tecnologici. L'orientamento intende impartire una
preparazione tale da favorire l'inserimento di informatici in ambiti lavorativi che necessitano
competenze scientifiche multidisciplinari, oltre che permettere l'accesso a livelli di studio
universitari successivi e in particolare alla laurea specialistica in Scienze e Tecnologie
dell'Informazione che ne costituisce la naturale prosecuzione.
III anno, 3 esami a scelta tra
Analisi Matematica II
Elettronica I
Elettronica II
Fisica Generale II
Geometria Computazionale
Metodi di Approssimazione
Metodi Matematici per la Finanza
Metodi Numerici per l’Ottimizzazione
Modelli e Calcoli per la Fisica
CFU
6
6
6
6
6
6
6
6
6
Piani di Studio per gli immatricolati entro l’anno accademico 2003-2004
I 5 orientamenti previsti dal Corso di Laurea in Informatica fino all’anno accademico 2003-2004
erano i seguenti:
1.
2.
3.
4.
5.
Sistemi Informativi e Trattamento delle Informazioni
Linguaggi, Sistemi Distribuiti e Reti di Calcolatori
Applicazioni Numeriche dell'Informatica
Applicazioni dell'Informatica alla Fisica
Scienze dell’Informazione
Gli insegnamenti dei primi due anni del corso di studio erano comuni a tutti gli orientamenti, a
meno di tre CFU di un laboratorio che serviva da presentazione per i differenti orientamenti. Il terzo
anno invece prevedeva insegnamenti comuni per 18 CFU, 24 CFU specifici per ciascun
orientamento, 9 CFU a scelta dello studente e 9 per la prova finale.
Per gli studenti immatricolati entro il 2003-2004, nel seguito sono riportati gli insegnamenti del III
anno comuni a tutti gli orientamenti (con indicazione dei CFU associati).
III anno
CFU
Informatica e Gestione Aziendale
Informatica Teorica
Ingegneria del Software
Laboratorio di Informatica: Ingegneria del Software
Tecniche di Comunicazione
3
6
4
2
3
Di seguito sono infine riportati gli obiettivi formativi specifici e gli insegnamenti di ciascun
orientamento.
ORIENTAMENTO “SISTEMI INFORMATIVI E TRATTAMENTO DELLE
INFORMAZIONI”
Obiettivo principale dell'orientamento è quello di fornire le competenze e gli strumenti per lo
sviluppo di applicazioni informatiche nelle aziende, curando sia gli aspetti algoritmici della
risoluzione dei problemi, sia l'interazione dell'utente finale con i programmi applicativi. In
particolare, si vuole arrivare ad impartire una solida conoscenza delle metodologie e delle tecniche
per la realizzazione dei sistemi informativi aziendali e per l'interazione di questi con la rete
(internet e intranet).
III anno
Basi di Dati Distribuite
Interazione Uomo Macchina
Organizzazione Informatica del Lavoro
Strutture per Basi di Dati
CFU
6
6
6
6
ORIENTAMENTO “LINGUAGGI, SISTEMI DISTRIBUITI E RETI DI
CALCOLATORI”
Obiettivo principale dell'orientamento è quello di formare una figura professionale che abbia le
competenze necessarie per la progettazione e lo sviluppo di applicazioni e sistemi software
distribuiti su reti di calcolatori e che fornisca il supporto per l'utilizzo, in diverse aree applicative, di
tecnologie evolute basate su questi sistemi. Da un punto di vista metodologico, l'orientamento mira
a sviluppare la capacità di progettare, realizzare ed utilizzare sistemi complessi distribuiti attraverso
un processo di modellizzazione, di sviluppo e di verifica sperimentale. In particolare, si vuole
arrivare ad impartire una solida conoscenza dei concetti di base sulle reti di calcolatori e sulle
tecniche di programmazione in rete, delle tecniche di specifica, implementazione e verifica di
sistemi distribuiti e concorrenti, e delle teorie, dei metodi e degli strumenti che rendano sicuro un
sistema informatico distribuito.
III anno
Modellistica e Simulazione
Programmazione di Reti
Sicurezza delle Reti
Sistemi Concorrenti e Distribuiti
CFU
6
6
6
6
ORIENTAMENTO “APPLICAZIONI NUMERICHE DELL’INFORMATICA”
Uno dei motivi più rilevanti che portarono, negli anni quaranta, alla costruzione del primo
calcolatore elettronico e, quindi, alla nascita dell'Informatica, fu quello di soddisfare le esigenze
del Calcolo Scientifico. Questa disciplina, di per sé molto vasta, oggi comprende lo studio,
sviluppo ed utilizzo delle metodologie per varie applicazioni, tra cui si citano, ad esempio, la
simulazione di sistemi complessi, sia per fini di indagine che di previsione, l'utilizzo ottimale delle
risorse, la grafica su calcolatore ed il trattamento numerico dei segnali. L’orientamento ha
l'obiettivo di fornire gli strumenti metodologici di base per le applicazioni su menzionate.
III anno
Analisi Matematica II
Metodi di Approssimazione
Metodi Matematici per la Finanza
Metodi Numerici per l’Ottimizzazione
CFU
6
6
6
6
ORIENTAMENTO “APPLICAZIONI DELL’INFORMATICA ALLA FISICA”
L'uso del calcolatore ha profondamente cambiato l'approccio al mondo reale nei suoi diversi aspetti
(misura, analisi, modellazione, simulazione e controllo) ed ha portato a nuovi approcci e
metodologie per la soluzione di problemi reali. Questo orientamento si propone di fornire la base di
queste metodologie aggiungendo alla conoscenza degli strumenti informatici alcuni elementi
tradizionali di formazione del fisico. L’orientamento garantisce l'acquisizione di conoscenze che
permettono di utilizzare il calcolatore sia come interfaccia con la strumentazione sia come
strumento di simulazione e controllo. Particolare attenzione sarà data alle metodologie numeriche di
sviluppo più recenti quali le tecniche statistiche, gli approcci non-deterministici e la trattazione della
complessità. Verrà anche affrontato l'aspetto più tradizionale dell'analisi matematica e
dell’equazioni differenziali che rimangono l'elemento fondante della cultura scientifica ed
ingegneristica e dell’impostazione quantitativa dell'analisi dei problemi.
III anno
CFU
Elettronica
Elettronica II oppure Analisi Matematica II
Fisica Generale II
Modelli e Calcoli per la Fisica
6
6
6
6
ORIENTAMENTO “SCIENZE DELL’INFORMAZIONE”
Questo orientamento è particolarmente rivolto a coloro che intendono continuare il loro corso di
studi con la laurea specialistica. Pertanto l’obiettivo specifico è quello di fornire una visione per
quanto possibile ampia delle problematiche delle scienze dell’informazione e le basi teoriche e
metodologiche per affrontare gli insegnamenti dei successivi due anni di specializzazione.
III anno
CFU
Algoritmi e Strutture Dati II
Analisi Matematica II oppure Geometria
Computazionale
Fisica Generale II
Modellistica e Simulazione
6
6
6
6
ATTIVITÀ COMPLEMENTARI
Per quanto riguarda le attività autonomamente scelte, lo studente può inserire nel proprio piano di
studi attività di norma corrispondenti a corsi universitari previsti nell'Università di Firenze.
Eventuali CFU acquisiti presso altre istituzioni universitarie italiane, dell'Unione Europea o di altri
paesi potranno essere riconosciuti in base alla documentazione prodotta dallo studente ovvero in
base ad accordi bilaterali preventivamente stipulati. Potranno essere riconosciuti anche CFU
acquisiti in istituzioni non universitarie utilizzando sistemi di trasferimento di CFU riconosciuti
dall'Università di Firenze.
Il Corso di Laurea in Informatica metterà a disposizione degli studenti i seguenti corsi
complementari:
Corsi complementari
CFU
Metodi Formali per l'Analisi degli Algoritmi
Ricerca Operativa
Semantica della Concorrenza
Semantica dei Linguaggi di Programmazione
Tecniche di Programmazione
6
6
6
6
6
Alla prova finale ed al possibile stage esterno sono riservati complessivamente 9 CFU.
Entro il mese di dicembre lo studente può presentare la richiesta di accreditamento di altre attività
non previste dal presente regolamento e opportunamente certificate, che rispecchino il
raggiungimento degli stessi obiettivi formativi del corso di studi. La conformità viene riconosciuta
dal competente Consiglio del Corso di Laurea e trasmessa alla segreteria studenti. Il giudizio di
non conformità è emesso negli stessi termini.
Propedeuticità
È fortemente consigliato sostenere gli esami nello stesso ordine in cui sono tenuti i corsi
corrispondenti, in particolar modo per i corsi dei primi due anni.
Frequenza
Per poter trarre pieno vantaggio dall’organizzazione didattica in semestri è importante che lo
studente affronti i corsi con assiduità e impegno: dunque, la frequenza ai corsi è fortemente
consigliata. La frequenza ai corsi di laboratorio, per la loro natura pratica e applicativa, è
obbligatoria e sarà certificata solo a seguito della presenza ad almeno il 75% delle attività
didattiche. Sono previste agevolazioni per gli studenti lavoratori.
Verifiche di Profitto
La verifica del profitto individuale raggiunto dallo studente e il conseguente riconoscimento dei
CFU maturati nelle varie attività formative sono effettuati tramite esami scritti e/o orali e/o
progetti da eseguire in laboratorio. Per i corsi di laboratorio sono previste valutazioni in itinere che
contribuiranno alla formazione del voto dell’insegnamento con essi correlato. La prova di
conoscenza della lingua inglese è effettuata tramite due test di valutazione da effettuarsi presso il
Centro Linguistico d’Ateneo.
La votazione è espressa in trentesimi per gli esami e in centodecimi per la prova finale, con
eventuale lode.
L’esito della valutazione si considera positivo, ai fini dell’attribuzione dei CFU, se si ottiene il
punteggio di almeno 18/30.
Il punteggio minimo per il superamento della prova finale è 66/110.
Trasferimenti
Nei trasferimenti fra corsi di studio dell’Università di Firenze appartenenti alla stessa classe, i
CFU conseguiti nella formazione di base sono riconosciuti integralmente, mentre i CFU conseguiti
nella formazione caratterizzante sono riconosciuti dopo approvazione del Consiglio del Corso di
Laurea.
Prova Finale
Per essere ammessi alla prova finale occorre avere conseguito tutti i CFU nelle attività formative
previste dal piano di studi.
Le attività formative relative alla preparazione della prova finale per il conseguimento del titolo
consistono nello svolgimento di un progetto documentato con un elaborato scritto sotto la
supervisione di un membro del Consiglio del Corso di Laurea. È prevista una discussione pubblica
sull’elaborato risultato del progetto finale e, durante tale discussione, saranno fatte anche domande
di carattere generale. Un apposito regolamento, definito dal Consiglio del Corso di Laurea,
specifica il ruolo del supervisore e le modalità di valutazione della tesi e del curriculum.
Potrà essere svolto uno stage presso un'azienda o un ente esterno secondo modalità stabilite
annualmente dalle strutture didattiche. Tale attività dovrà essere seguita da un membro del
Consiglio del Corso di Laurea, in qualità di responsabile scientifico, e da un tutore interno
all'azienda o all'ente esterno che sia responsabile della parte esecutiva.
Norme Transitorie
Gli studenti iscritti presso l’Università di Firenze a corsi di laurea o diplomi universitari, del
previgente ordinamento didattico, che intendono iscriversi al presente corso di studi potranno
ottenere le convalide degli esami sostenuti dopo approvazione del Consiglio del Corso di Laurea.
Per gli studenti provenienti dai previgenti corsi di laurea e diploma universitario in Informatica
dell’Università di Firenze è stata predisposta una tabella di corrispondenze che, sostanzialmente,
consente di riconoscere come CFU per la nuova laurea in Informatica tutti gli esami superati. Altri
casi diversi da quelli previsti dovranno essere valutati individualmente dal competente Consiglio
del Corso di Laurea.
Per gli studenti provenienti da altre università sono consentite abbreviazioni di corso previa
valutazione del curriculum individuale da parte del Consiglio del Corso di Laurea.
Programmi dei Corsi
Algebra Lineare e Applicazioni (E. Rubei)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le conoscenze dei concetti
fondamentali dell'algebra lineare, cominciando dal linguaggio delle matrici, importante per tutto il
percorso successivo di studi.
PROGRAMMA. Vettori, matrici e operazioni su essi. Matrici invertibili. Cenni sugli spazi
vettoriali. Dimensione. Funzioni lineari. Rango di una matrice. Sistemi lineari e algoritmo di
Gauss. Basi ortonormali e algoritmo di Gram-Schmidt. Determinante: aspetti ricorsivi e proprietà
principali. Autovalori e autovettori, teorema spettrale. Forme quadratiche. Cenni sulla geometria del
piano e dello spazio.
Algoritmi e Strutture Dati (M. C. Verri)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie a
comprendere le diverse problematiche di progettazione e valutazione degli algoritmi, con
particolare riferimento agli algoritmi non numerici che operano su memoria centrale.
PROGRAMMA. Strutture dati astratte (lista, pila, coda, albero). Strutture dati interne: elementari,
sequenziali, concatenate. Algoritmi di ricerca: sequenziale, binaria, alberi binari di ricerca, alberi 23. Ricerca digitale, ricerca casuale (hashing). Algoritmi di ordinamento: per selezione, per
inserzione, bubble sort, counting sort. Quicksort, Heapsort, Mergesort. Per tutti gli algoritmi
presentati viene data una valutazione della complessità e dei criteri generali sulla loro applicazione.
Algoritmi e Strutture Dati II (M. C. Verri)
OBIETTIVI FORMATIVI. Il corso fornisce una panoramica dei più importanti algoritmi di livello
avanzato e delle principali tecniche algoritmiche. Più precisamente vengono esaminate le tecniche
di programmazione dinamica, le tecniche greedy e gli algoritmi union-find relativamente a problemi
concernenti la ricerca nelle sue forme più evolute, la compressione dei dati ed i grafi.
PROGRAMMA. Algoritmi di ricerca su stringhe. Algoritmi di compressione dati. Algoritmi unionfind. Programmazione dinamica. Algoritmi greedy. Grafi. Visita di grafi. Connettività. Grafi pesati.
Minimum spanning tree. Flusso massimo. Matrimoni stabili.
Analisi Matematica II (V. Vespri)
OBIETTIVI FORMATIVI. Dare la conoscenza di strumenti matematici avanzati. Risolvere
equazioni differenziali ordinarie e alle derivate parziali.
PROGRAMMA. Equazioni differenziali lineari. Curve e superfici. Serie di Fourier. Risoluzioni di
PDE a coefficienti costanti. Integrali multipli. Teorema del Dini
Analisi Matematica: Calcolo Differenziale (G. Paoli)
OBIETTIVI FORMATIVI. Il corso si propone di fornire agli studenti le nozioni di base del calcolo
differenziale (limiti, derivate, formula di Taylor) e delle loro applicazioni (principalmente allo
studio di funzioni di una variabile reale). Obiettivo minimo del corso è quello di permettere allo
studente di completare correttamente lo studio di una funzione di una variabile reale.
PROGRAMMA. Limiti di funzioni e di successioni. Derivate e regole di derivazione. Formula di
Taylor. Applicazioni.
Analisi Matematica: Calcolo Integrale (R. Magnanini)
OBIETTIVI FORMATIVI. Il corso si propone di fornire allo studente le nozioni di base
sull’integrale di Riemann e le sue applicazioni al calcolo di aree e volumi ed alle equazioni
differenziali ordinarie. Una parte del corso sarà dedicata alle serie numeriche. Obiettivo minimo del
corso sarà quello di far sì che lo studente comprenda correttamente l’importanza del teorema
fondamentale del calcolo.
PROGRAMMA. Integrale di Riemann. Primitive. Calcolo di primitive. Calcolo di aree e di volumi.
Serie numeriche. Equazioni differenziali di facile risoluzione.
Architettura degli Elaboratori (A. Bondavalli)
OBIETTIVI FORMATIVI. Il corso intende fornire gli elementi di base per comprendere
l'architettura dei calcolatori e l'interfaccia tra quest'ultima ed i livelli di astrazione superiori di un
sistema di calcolo. Come risultato, gli studenti impareranno il perchè della progettazione degli
elaboratori, in particolare i principi su cui si basa la progettazione dei moderni processori.
PROGRAMMA. I moderni elaboratori e l'evoluzione tecnologica. Il ruolo delle prestazioni.
Introduzione ai linguaggi assembler. Reti logiche combinatorie e sequenziali. Concetti fondamentali
di rappresentazione dei numeri e aritmetica binaria. Il progetto di una ALU. Moltiplicazione e
divisione. Numeri in virgola mobile. Progetto della CPU a ciclo singolo: il cammino dei dati ed il
controllo. Progetto della CPU a cicli multipli: il cammino dei dati ed il controllo. Eccezioni. Cenni
sul pipelining.
Basi di Dati e Sistemi Informativi (F. Cesarini)
OBIETTIVI FORMATIVI. Il corso è focalizzato sulle basi di dati di tipo relazionale; esse oltre ad
essere le più utilizzate, sono anche di primaria importanza per la definizione di concetti e
metodologie ulteriormente sviluppate in successive proposte. In particolare il corso si propone di
fornire allo studente le nozioni fondamentali per la progettazione e analisi di una base di dati
relazionale e per l’utilizzo della stessa con metodologie standard.
PROGRAMMA. Architettura dei sistemi per la gestione di basi di dati. Modelli dei dati. Il modello
Entity Relationship. Il modello relazionale. Algebra relazionale: operatori e query. Analisi e
trasformazione di uno schema ER in uno schema relazionale. Dipendenze funzionali, forme
normali, decomposizione di schemi. Introduzione al linguaggio SQL.
Basi di Dati Distribuite (F. Cesarini)
OBIETTIVI FORMATIVI. In questo corso saranno trattati argomenti relativi alle principali
tendenze di sviluppo della tecnologia delle basi di dati.
PROGRAMMA. Saranno illustrate le tecniche di interazione tra i sistemi per la gestione di basi di
dati e le reti di calcolatori e le problematiche concernenti lo sviluppo di nuovi modelli e di nuove
funzionalità relative all’integrazione in Internet. Saranno anche trattate tecniche per la gestione
integrata di informazioni solo parzialmente strutturate.
Calcolo delle Probabilità e Statistica (L. Vannucci)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti i concetti, i metodi e i modelli
necessari per misurare l'incertezza con riferimento a eventi e a numeri. Particolare attenzione sarà
riservata alle esemplificazioni e alle applicazioni, con particolare riguardo a quelle statistiche.
PROGRAMMA. Rappresentazione dell'incertezza su eventi. Calcolo combinatorio. Classi di eventi
probabilizzabili nelle varie concezioni. Alcuni risultati per la valutazione delle probabilità di eventi.
Alcuni schemi di valutazione per le probabilità di eventi. Eventi limite e probabilità 0-1.
Determinazioni possibili e distribuzioni di probabilità di una variabile aleatoria. Indicatori sintetici
associati a distribuzioni. Funzioni trasformate. Alcune distribuzioni notevoli. Disuguaglianze
stocastiche. Distribuzioni a più dimensioni e loro indicatori di sintesi. Il problema della regressione
lineare e non lineare. Variabili funzioni di variabili aleatorie. Successioni di variabili aleatorie e vari
tipi di convergenza stocastica: leggi dei grandi numeri, teorema centrale del limite. Statistica
descrittiva. Statistica inferenziale: stimatori puntuali e intervallari, test di ipotesi, approccio
decisionale.
Calcolo Numerico (L. Brugnano)
OBIETTIVI FORMATIVI. Molte problematiche applicative sono formalizzate mediante un
modello matematico del problema. Al fine di rendere fruibile il contenuto informativo del modello
stesso, è spesso necessario risolvere le equazioni coinvolte. Le metodologie intese ad ottenere
questo scopo sono denominate metodi numerici ed il corso tratta quelli di utilizzo più comune. Il
corso di Calcolo Numerico si prefigura, pertanto, come un corso di base di calcolo scientifico.
PROGRAMMA. Errori ed aritmetica finita. Condizionamento di un problema. Zeri di funzioni di
una variabile. Sistemi lineari: fattorizzazione LU, pivoting, fattorizzazione QR e sistemi
sovradeterminati. Approssimazione di funzioni: interpolazione polinomiale; funzioni spline.
Approssimazione di integrali definiti: formule di quadratura di Newton-Cotes e formule adattative.
Elettronica (M. Bini)
OBIETTIVI FORMATIVI. Il corso intende dare una conoscenza di base dei componenti utilizzati
nella microelettronica, mettendo in rilievo i fenomeni fisici che ne determinano il funzionamento,
nonché le applicazioni sopratutto ai circuiti digitali. Lo studente sarà guidato a comprendere e
quindi valutare le specifiche tecniche dei circuiti impiegati nell'hardware dei calcolatori.
PROGRAMMA. Fisica dei semiconduttori. Giunzione "pn" e diodo. Transistori ad effetto di campo
(JFET). Capacità Metallo Ossido Semiconduttore (MOS). Transistori MOSFET: caratteristiche di
ingresso e di uscita, MOSFET di tipo N (NMOS) e di tipo P (PMOS), MOSFET complementari
(CMOS). Famiglie logiche a NMOS e CMOS: invertitore, circuiti NOR, NAND e per funzioni
logiche più complesse. Tecniche di progettazione. Circuiti combinatori: memorie ROM e Array
logici programmabili (PLA). Circuiti sequenziali: Latch, flip-flop, shift register, contatori. Memorie
ad accesso diretto (RAM) a 6 e 4 transistori. Memoria RAM ad un transistore.
Elettronica II (G. Pasquali)
OBIETTIVI FORMATIVI. Il corso, facendo conto su quanto appreso dallo studente nel corso di
Elettronica, presenta lo sviluppo della microelettronica nel campo dei microprocessori. Alcune
applicazioni aiutano lo studente a capire le problematiche connesse alla realizzazione di
microcomputer, compreso il funzionamento e l'impiego dei bus più utilizzati.
PROGRAMMA. Microprocessori: organizzazione interna (registri, unità di calcolo e di controllo),
segnali essenziali per il funzionamento, circuiti di ingresso/uscita per i segnali. Circuito "threestate" e circuito "totem pole". Impiego del microprocessore nei controlli di processo: modello di
programmazione, gestione dell'"interrupt". Microprocessori Intel, Motorola: set di istruzioni,
gestione dell'"input/output". Utilizzo del Programmable Interrupt Controller. Architettura di un PC.
Alcuni bus (XT, ISA. PCI, VME). Cenni sui DSP (Digital Signal Processors).
Fisica Generale (M. Rosa Clot)
OBIETTIVI FORMATIVI. Il corso di Fisica Generale si propone di dare una formazione di base di
fisica limitatamente alla meccanica e alla termodinamica. Il corso non richiede particolari strumenti
matematici ma pone l'accento sugli aspetti quantitativi e osservativi: ordini di grandezza,
fenomenologia.
PROGRAMMA. Unità di misura e ordini di grandezza. Dinamica del punto: problemi uni- e bidimensionali. Gravitazione universale e leggi di Keplero. Lavoro ed Energia. Impulso e quantità di
moto. Termometria e calorimetria. I modelli: gas perfetti e gas reali. Primo principio della
termodinamica. Secondo principio. Ciclo di Carnot. Entropia. Relazione tra entropia e probabilità.
Fisica Generale II (M. Rosa Clot)
OBIETTIVI FORMATIVI. Il corso di Fisica II riprende il programma di fisica Generale ampliando
alcune parti teoriche ma sopratutto approfondendo gli aspetti quantitativi mediante le tecniche di
simulazione numerica.
PROGRAMMA. Modelli, simulazione ed esperimenti in meccanica e termodinamica. 1) Modelli
unidimensionali di meccanica del punto in una dimensione. 2) Modelli di Meccanica del punto in
due dimensioni. 3) Elementi di statistica: Metodo di MonteCarlo, Teoria cinetica dei gas,
Distribuzione di Boltzmann. 4) Analisi di un segnale: analisi di fourier, acquisizione di segnali,
rumore, entropia.
Geometria Computazionale (V. Ancona)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le conoscenze e le competenze per
trattare problemi di calcolo simbolico polinomiale e le loro applicazioni geometriche.
PROGRAMMA. I polinomi in più variabili. Ideali. L'algoritmo di divisione in una e più variabili.
Ordini monomiali. Le basi di Grobner. L'algoritmo di Buchberger. Algoritmo di appartenenza ad un
ideale. Il teorema di eliminazione e le sue applicazioni. Il risultante. Parametrizzazioni e equazioni
implicite. Esempi di curve e superfici nello spazio. Cenni sulla teoria della dimensione.
Informatica e Gestione Aziendale (D. De Luca Cardillo)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti strumenti teorici(modelli
matematici) e pratici (applicazioni a particolari situazioni) di gestione d’azienda con particolare
focalizzazione sull’uso di modelli di ordinamento e tempificazione e sui loro possibili usi.
PROGRAMMA. Management d’azienda e possibili strutture organizzative. Teoria dello scheduling.
Collegamenti a classici problemi(Commesso Viaggiatore, Zaino),Tecnica Branch and Bound
applicata al problema di n lavori su 1 macchina. Seminari su: Public Speaking, Come si costruisce
un curriculum(seminari). Il programma potrà essere modificato in base a particolari esigenze
didattiche riscontrate.
Informatica Teorica: Linguaggi, Computabilità, Complessità (P. Crescenzi)
OBIETTIVI FORMATIVI. Scopo del corso è fornire gli elementi di base delle teorie che sono di
fondamento teorico all'informatica. In particolare, i concetti di linguaggio e di automa, di
decidibilità e di complessità.
PROGRAMMA. I linguaggi e la classificazione di Chomski. Macchine di Turing. Teoria della
computabilità e tesi di Church. Funzioni ricorsive e parzialmente ricorsive. Decidibilità e
indecidibilità. Teoria della complessità: problemi trattabili e intrattabili. Le classi P ed NP. La NPcompletezza. Algoritmi di approssimazione.
Ingegneria del Software
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie a
comprendere le diverse problematiche nella progettazione, realizzazione e manutenzione di sistemi
software.
PROGRAMMA. Definizione dell'Ingegneria del Software. Il software: da arte ad attività
industriale. Il processo di sviluppo software. I fattori di qualità e i principi dell'Ingegneria del
Software. Modelli di ciclo di vita a cascata, modelli evolutivi del ciclo di vita. Ingegneria dei
requisiti. Analisi e specifica dei requisiti: specifiche operazionali e descrittive; linguaggi e modelli
di specifica semiformale; linguaggi e modelli di specifica formale, verifica formale. La
progettazione: modularizzazione, information hiding, tecniche top-down, tecniche bottom-up,
tecniche orientate ad oggetti. Architetture software, UML. Convalida e verifica: analisi statica,
analisi dinamica. Pianificazione, controllo e gestione del processo di sviluppo. Metriche del
software. Stima dei costi. Gestione delle configurazioni.
Interazione Uomo Macchina (M.C. Verri)
OBIETTIVI FORMATIVI. Il corso intende far riflettere sulle problematiche che si presentano nella
costruzione e nell’uso di interfacce e fornire gli strumenti per una loro valutazione. Il corso si
avvarrà di seminari di approfondimento.
PROGRAMMA. Principi: definizione di HCI e del suo dominio disciplinare; evoluzione, stato
dell’arte e prospettive future; cenni di psicologia cognitiva; il Model Human Processor (canali di
I/O, memoria, ragionamento). Modelli dell’utente: modelli di interazione (GOMS, il modello
Esecuzione-Valutazione di Norman, il modello di Abowd e Beale). Interazione: stili di interazione,
strumenti di interazione, evoluzione dei paradigmi di interazione, usabilità, sviluppo di interfacce
(processo di sviluppo, User Centred Design). Tecniche di valutazione: stili di valutazione
(valutazione senza l’utente, valutazione con l’utente), valutazione del progetto, valutazione della
realizzazione. Sviluppo e valutazione sul Web.
Laboratorio di Informatica: Algoritmi e Strutture Dati (P. Crescenzi)
OBIETTIVI FORMATIVI. Il corso intende preparare gli studenti alla corretta implementazione ed
al corretto uso delle strutture dati. Allo scopo saranno studiate le principali strutture dati e gli
algoritmi più diffusi.
PROGRAMMA. Interpretazione delle principali strutture dati tramite il linguaggio Java.
Implementazione delle principali strutture dati e dei più comuni algoritmi che di esse fanno uso.
Laboratorio di Informatica: Architettura degli Elaboratori (M. Boreale)
OBIETTIVI FORMATIVI. Attraverso l'insegnamento di un linguaggio assembler (MIPS) il
laboratorio intende fornire gli elementi per comprendere i linguaggi assembler e l'interfaccia che
essi costituiscono fra l'architettura hardware ed i livelli di astrazione superiori di un sistema di
calcolo. Come risultato, gli studenti impareranno a programmare in un linguaggio assembler con i
vincoli che esso pone relativamente alla conoscenza del processore.
PROGRAMMA. Introduzione ai linguaggi assembler. Il linguaggio MIPS. Il simulatore Spim.
Esercitazioni in laboratorio.
Laboratorio di Informatica: Ingegneria del Software
PROGRAMMA. Strumenti ed ambienti per l’ingegneria del software. Strumenti tradizionali per la
programmazione "in piccolo". Strumenti "CASE". Strumenti per il testing e la verifica. Ambienti di
sviluppo integrati.
Laboratorio di Programmazione (G. Aguzzi , Prof. E. Barcucci)
OBIETTIVI FORMATIVI. Il corso intende insegnare agli studenti il linguaggio di programmazione
Java e, in generale, i concetti fondamentali della programmazione.
PROGRAMMA. Introduzione alla programmazione. Tipi primitivi. Controllo del flusso. Metodi,
programmazione procedurale e ricorsione. Programmazione orientata agli oggetti. Informazioni
strutturate.
Laboratorio di Sistemi Informativi (D. Merlini)
OBIETTIVI FORMATIVI. Il corso intende far sperimentare agli studenti le varie fasi di sviluppo di
una base di dati utilizzando MySQL come sistema per la gestione di basi di dati.
PROGRAMMA. Creazione di basi di dati e tabelle in MySQL. Vincoli intrarelazionali e
interrelazionali. Integrità referenziale. Modifica degli schemi. Inserimento, cancellazione e modifica
dei dati. Importazione ed esportazione di dati. Query su una sola tabella: il comando SELECT e le
clausole WHERE, GROUP BY, HAVING, ORDERD BY, LIMIT. Query su più tabelle: join
implicito ed esplicito, operazioni insiemistiche e query annidate. Funzioni built in. Tipi di indici e
tabelle. Aspetti avanzati di MySQL. Esercitazioni in laboratorio.
Linguaggi di Programmazione e Compilazione (E. Barcucci)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie per
comprendere ed affrontare le diverse problematiche relative ai linguaggi formali ed alle diverse fasi
della compilazione con particolare attenzione all’analisi lessicale, sintattica e semantica
PROGRAMMA DEL CORSO: Struttura del compilatore. Grammatiche; proprietà; gerarchia di
Chomsky. Espressioni regolari; automi a stati finiti deterministici e non; eliminazione del non
determinismo; minimizzazione di automi; relazioni fra automi, espressioni e grammatiche. Analisi
lessicale e schema di un analizzatore. Analisi sintattica; grammatiche context free; trasformazione di
grammatiche. Analisi top down; tabelle per l'analisi top down; grammatiche LL(1); analisi in discesa
ricorsiva. Analisi bottom up; costruzione delle tabelle SLR(1), LR(1) e LALR(1); trattamento degli
errori nell'analisi sintattica. Grammatiche ad attributi; analisi top down con attributi di tipo S o L;
analisi LR con attributi di tipo S o L. Tabella dei simboli. Analisi semantica; obiettivi e strutture
dati; analisi semantica delle dichiarazioni.
Lingua Inglese
OBIETTIVI FORMATIVI. Verifica delle capacità di comprensione dell'inglese scritto e parlato
equivalenti a quelle acquisite con una buona preparazione di inglese nella scuola secondaria.
Ulteriore verifica delle capacità di comprensione dell'inglese scritto nell'area scientificotecnologica.
Matematica Discreta (A. Marcja)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti alcune basi matematiche
necessarie alle nuove tecnologie.
PROGRAMMA. Insiemi e loro operazioni: insiemi, corrispondenze e applicazioni. Cardinalità.
Operazioni su un insieme. Il numero di sottoinsiemi di un insieme finito. Stringhe. Permutazioni di
un insieme. Induzione su N.Il numero dei sottoinsiemi ordinati. Il teorema binomiale. Distribuzioni.
Interi, divisori e primi. Massimo Comun Divisore. Relazioni su un insieme: proprietà. Chiusure di
relazioni. Relazioni di equivalenza. Classi di resto: congruenze. Criteri di divisibilità. Elementi
invertibili. Relazioni di ordine: ordine parziale. Sottoinsiemi ordinati. Reticoli. Grafi. Isomorfismo
di grafi. Grafi semplici. Sottografi e grafi ridotti. Grado di un vertice. Cammini. Grafi connessi. Un
esempio storico: il problema dei sette ponti. Alberi: alberi liberi e alberi. Alberi di decisione: codici
di Huffman.
Matematica Discreta e Logica (F. Lacava)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie per
comprendere i linguaggi formali e i metodi di ragionamento.
PROGRAMMA. Logica proposizionale: alfabeto, parole e formule.Valutazioni e formule
soddisfacibili. Tavole di verità. Metodo di risoluzione. Logica dei predicati del primo ordine: tipo,
alfabeto, termini e formule. Interpretazione, valutazione e modelli. Modelli di Herbrand. Algoritmo
di unificazione.
Metodi di Approssimazione (D. Trigiante)
OBIETTIVI FORMATIVI. Fornire le conoscenze essenziali di sistemi dinamici lineari continui e
discreti necessarie per lo studio e la simulazione numerica di modelli matematici descriventi
problematiche tratte da varie applicazioni; studio di algoritmi e di metodi adeguati per la
discretizzazione di problemi continui; simulazione sul calcolatore di modelli lineari.
PROGRAMMA. Preliminari sulle equazioni alle differenze. Equazioni alle differenze e
differenziali lineari a coefficienti constanti. Stabilità delle soluzioni. Alcuni modelli discreti di
economia. Metodi multistep per equazioni differenziali. Problemi stiff e regioni di assoluta stabilità
dei metodi. Analisi di stabilità lineare per sistemi continui e discreti mediante studio di funzioni di
matrici. Alcuni modelli di dinamica delle popolazioni. Matrici positive, teorema di PerronFrobenius e sue applicazioni ad alcuni modelli.
Metodi Formali per l'Analisi degli Algoritmi (D. Merlini)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti una descrizione completa delle
principali tecniche matematiche utilizzate nell’analisi degli algoritmi. Vengono trattati argomenti
matematici classici, come la matematica discreta e l’analisi combinatoria, così come argomenti di
informatica che includono gli algoritmi e le strutture dati. Il corso è integrato con la presentazione
di un sistema di manipolazione simbolica che viene utilizzato come strumento per
l’approfondimento e la verifica degli argomenti trattati.
PROGRAMMA. Analisi degli algoritmi e complessità computazionale. Caso medio e caso pessimo.
Relazioni di ricorrenza: metodi di risoluzione. Divide et impera. Funzioni generatrici ed estrazione
dei loro coefficienti. Il metodo simbolico. Epressioni regolari e grammatiche context-free: la
metodologia di Chomsky-Schutzenberger. L'inversione di Lagrange. Metodi esatti e metodi
approssimati. Esempi di analisi di algoritmi classici, sugli alberi, sulle permutazioni e sulle parole
Metodi Matematici per la Finanza (V. Vespri)
OBIETTIVI FORMATIVI. Dare le conoscenze di base della finanza matematica e le nozioni e la
nomenclatura fondamentale.
PROGRAMMA. Le opzioni e i titoli derivati. Il problema del prezzo giusto. Ottimizzazione lineare.
Prime nozioni di calcolo stocastico.
Metodi Numerici per l’Ottimizzazione (L. Brugnano)
OBIETTIVI FORMATIVI. Le strategie ottimali per la risoluzione di molti problemi applicativi
sono ottenibili come soluzione ottima di un corrispondente problema matematico (problema di
ottimo). Il corso è inteso a fornire conoscenze specifiche riguardo ai metodi numerici per la
risoluzione di problemi di ottimo.
PROGRAMMA. Problemi di ottimizzazione non vincolata: generalità, metodi iterativi di discesa,
metodi quasi-Newtoniani, metodi “trust region”. Problemi di ottimizzazione vincolata: condizioni di
Kuhn-Tucker, metodi a punti interni in Programmazione Lineare, programmazione quadratica;
metodi primali: generalità, metodo del gradiente proiettato; metodi di penalità.
Metodologie di Programmazione (B. Venneri)
OBIETTIVI FORMATIVI. Presentare i principi, le tecniche e le metodologie per lo sviluppo e la
realizzazione di sistemi software, basati sulla tecnologia “orientata agli oggetti”. Come risultato,
gli studenti dovranno acquisire la padronanza della metodologia orientata agli oggetti sia come
strumento di disegno e progettazione che come paradigma di programmazione realizzato nei
linguaggi C++ e Java.
PROGRAMMA. Modularizzazione per riusabilità e estendibilità; l’astrazione sui dati. La nozione
di classe, l’astrazione per interfacce, le relazione fra classi: ereditarietà e clientela, aggregazione e
composizione, ereditarietà multipla. Il modello degli oggetti e il binding dinamico dei metodi. Il
formalismo U.M.L. Patterns design e Framework. Linguaggio utilizzato: JAVA.
Modelli e Calcoli per la Fisica (G. Landi)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti una conoscenza sufficientemente
approfondita di tecniche di calcolo avanzate, in uso in moltissime analisi di dati di esperimenti di
fisica. Tali metodi sono modellati sul paradigma delle "reti neurali", e tentano di riprodurre alcuni
aspetti delle capacità del cervello animale e della sua grande potenza di riconoscimento di aggregati
di segnali ("pattern recognition"). Il corso affronterà anche i modelli più avanzati che sono stati
proposti per interpetrare la complessità del problema.
PROGRAMMA. Cenni alla dinamica dei neuroni del cervello animale. Perceptron. Classificatore
ottimale di Bayes. Multilayer Perceptron.Vari metodi di apprendimento del M. P., Backpropagation
e metodi del secondo ordine. Radial Basis Functions. Funzioni di Green. Clustering e funzioni
radiali a scale multiple. Analisi di "Pattern" Temporali. Filtri di Widrow-Hoff e loro apprendimento.
Esempi di applicazioni classiche: ARMA. DARMA. Problemi di controllo nonlineare. NETtalk.
Modello di Kohonen. Principal Component Analysis. Metodi di Meccanica Statistica: modello di
Hopfield e reti neurali ricorsive. Elementi di Meccanica Statistica. Vetri di Spin: isomorfismo con il
Modello di Hopfield. Modello di Sherrington-Kirkpatrick. Simmetria di Replica. Soluzione di Parisi
(Replica Symmetry Breaking). Ultrametricità e reti neurali; organizzazione gerarchica in un sistema
disordinato. Ottimizzazione: Simulated Annealing e metodi Monte Carlo. Condizioni di ergodicità.
Toolbox di MATLAB neural-networks.
Modellistica e Simulazione (A. Bondavalli)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie a
comprendere gli aspetti di analisi quantitativa e di qualità del servizio offerto da sistemi di
elaborazione, con particolare enfasi sull'analisi delle prestazioni ed affidabilità. Come risultato, gli
studenti impareranno il significato della analisi quantitativa di sistemi di elaborazione ed i principi e
alcune tecniche di modellizzazione e valutazione.
PROGRAMMA. Concetti di prestazioni ed affidabilità dei sistemi e validazione. Definizione di
indici di prestazione ed affidabilità. Regole di costruzione e validazione dei modelli. Richiami di
probabilità. Metodi combinatorii. I processi di Markov a tempo discreto. I processi di Markov a
tempo continuo. Teoria delle code: la coda MM1 e sue varianti. Reti di Petri stocastiche.
Formalismi di modellizzazione e strumenti automatici di supporto: SAN e UltraSan, DSPN e
DEEM.
Organizzazione Informatica del Lavoro
OBIETTIVI FORMATIVI. Nel corso vengono presentati i concetti e i più importanti sistemi per
l'organizzazione del lavoro con strumenti informatici, soprattutto per ciò che riguarda la
progettazione, il flusso delle informazioni e il lavoro di gruppo.
PROGRAMMA. I sistemi informativi e le loro limitazioni. I formalismi per la progettazione del
lavoro e il loro uso. Il flusso delle informazioni nel lavoro d'ufficio. Controllo del flusso e degli
accessi. Autorizzazioni. Sistemi di Workflow. Organizzazione del lavoro di gruppo. Sistemi di
Workgroup. Responsabilità personali. Sistemi informatici integrati per l'organizzazione del lavoro.
Saranno presentate testimonianze dirette di imprenditori, manager, funzionari e sindacalisti di
aziende del settore informatico e telecomunicazioni.
Programmazione (G. Aguzzi)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le basi metodologiche e le relative
conoscenze del paradigma di programmazione imperativo (linguaggio alla Von Neumann con
comandi di assegnazione, controllo, iterazione e definizione/uso di sottoprogrammi) ed introdurre
quello dichiarativo (equazioni ricorsive). Ulteriore obiettivo del corso è quello di fornire gli
strumenti minimali per poter provare la correttezza di programmi tramite l’uso dei concetti di
proprietà invarianti di cicli e prove induttive.
PROGRAMMA. Linguaggi formali, grammatiche context-free, loro correttezza e completezza,
rappresentazione dell’informazione. Il paradigma della programmazione imperativa: il linguaggio
alla Von Neumann VN: assegnazione, I/O, controlli, iterazione, variabili semplici e matriciali,
sottoprogrammi funzione e procedura. Principali algoritmi di sorting di vettori. Proprietà invarianti
di cicli e prove induttive. Il paradigma della programmazione dichiarativa: i termini e i sistemi di
riscrittura ed uso della ricorsione. Il concetto di lista e sua manipolazione. La semantica
operazionale dei linguaggi di programmazione: definizione della semantica operazionale del
linguaggio VN.
Programmazione Concorrente (R. De Nicola)
OBIETTIVI FORMATIVI. Insegnare le nozioni di base della programmazione concorrente
attraverso un’illustrazione dei problemi, dei concetti e delle tecniche connesse alla modellizzazione
di sistemi in cui ci sono più componenti attive contemporaneamente che si coordinano e competono
per l’uso di risorse condivise. Mostrare come queste tecniche possono essere utilizzate per scrivere
semplici programmi in Java Concorrente.
PROGRAMMA. Introduzione alla concorrenza, il problema della mutua esclusione e della
sincronizzazione condizionale. Meccanismi per scambio di messaggi: memoria condivisa e
comunicazione esplicita, sincronia ed asincronia. Strumenti per il controllo della concorrenza e le
loro proprietà: semafori, monitors a Remote Procedure Calls. Risoluzione di problemi attraverso
primitive linguistiche per la concorrenza: produttore-consumatore, lettori-scrittori, filosofi a cena.
Progetto di semplici algoritmi concorrenti in Java: l'uso dei threasds, dei metodi sincronizzati e dei
monitors.
Programmazione di Reti (M. Loreti)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie a sviluppare
applicazioni di rete utilizzando diversi paradigmi: Client-Server, RPC, Code on-demand e Agenti
Mobili. Nella prima parte del corso verrà utilizzato il linguaggio Java quale strumento per la
programmazione di applicazioni Client-Server. Successivamente si analizzeranno le tecnologie
attualmente disponibili, sia dal lato Client che dal lato Server, per lo sviluppo di applicazioni
orientate al Web. Infine, verranno prese in considerazione le tecnologie, basate sul linguaggio
XML, per l'implementazione di Servizi Web. Come risultato, gli studenti impareranno a sviluppare
un'applicazione di complessità media che soddisfi requisiti di prestazioni e di sicurezza.
PROGRAMMA. Il linguaggio Java: le eccezioni, il pacchetto java.io, i Thread. Programmazione
Client-Server in Java: i socket, broadcast, multicast. Documenti Web: il linguaggio HTML, i fogli
di Stile. Programmazione Web lato Client: le applet, Javascript. Programmazione Web lato Server:
PHP, Servlet, JSP. Il linguaggio XML. I Web service: XML-RPC, SOAP e WSDL. Agenti Mobili.
Reti di Calcolatori (R. Sprugnoli)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti le nozioni necessarie a
comprendere le diverse problematiche di progettazione soggiacenti le moderne reti di calcolatori.
Focalizzandosi su Internet, il corso intende promuovere una comprensione pratica delle reti e dei
loro blocchi costituenti. Come risultato, gli studenti impareranno il perchè della progettazione delle
reti: non semplicemente i fatti che circondano i sistemi attuali ma i principi su cui si basa la
progettazione delle moderne reti di calcolatori.
PROGRAMMA. Requisiti ed architettura delle reti di calcolatori. Nodi e collegamenti. Codifica dei
dati. Framing dei dati. Rilevamento degli errori. Trasmissione affidabile. Ethernet. Token ring. Reti
a commutazione di pacchetto. Circuiti virtuali. Reti LAN estese. Inter-reti ed il protocollo IP.
Metodo costo-direzione e metodo dello stato dei collegamenti. Inter-reti globali. Il DNS. Il
protocollo TCP: apertura e chiusura della connessione, finestra scorrevole rivista, ritrasmissione
adattiva. Controllo della congestione in TCP.
Ricerca Operativa (D. De Luca Cardillo)
OBIETTIVI FORMATIVI. Il corso intende fornire le conoscenze di base e i modelli più usati della
ricerca operativa, disciplina che fornisce strumenti utili in molti ambiti lavorativi, per la gestione e
per l’organizzazione, per ottimizzare costi e risorse in funzione di determinati obiettivi e vincoli. Lo
studente dovrà acquisire capacità a modellare situazioni reali e a individuare per alcuni tipi di
problemi che gli vengono prospettati le modalità risolutive esistenti in letteratura.
PROGRAMMA. Programmazione lineare e sue applicazioni. Cenni alla Programmazione Intera.
Programmazione dinamica e sue applicazioni. Saranno trattate in particolare applicazioni ai
problemi di traffico urbano e alla gestione efficiente di servizi pubblici. Il programma potrà essere
modificato in base a particolari esigenze didattiche riscontrate
Semantica della Concorrenza (R. Pugliese)
OBIETTIVI FORMATIVI. Studiare i fenomeni che si manifestano nei sistemi concorrenti,
distribuiti e con mobilità, sia software che hardware, ed inquadrarli in un ambiente formale che
permetta di progettare, specificare, realizzare ed analizzare applicazioni.
PROGRAMMA. CCS: un calcolo di base per la concorrenza, semantiche operazionali ed
osservazionali, assiomatizzazioni. Pi-calcolo: un calcolo con mobilità di interconnessioni,
semantiche operazionali ed osservazionali, sistemi di tipo. Pi-calcolo Distribuito, Klaim ed
Ambient: calcoli con mobilità di codice e di agenti, semantiche operazionali, sistemi di tipo per la
sicurezza, esempi di applicazioni. Confronti con altri calcoli fondazionali e linguaggi derivati.
Semantica dei Linguaggi di Programmazione (B. Venneri)
OBIETTIVI FORMATIVI. Obiettivo del corso è quello di presentare alcuni concetti fondazionali
dei linguaggi di programmazione, imperativi e orientati agli oggetti. L’approccio è sia teorico
(discussione del polimorfismo e tecniche di prova basate sulla semantica operazionale) che
pragmatico (es. algoritmi di typechecker e implementazione di interpreti).
PROGRAMMA. Sistemi di tipi come strumento sintattico per modellare aspetti di astrazione e di
sicurezza nella programmazione. Algoritmi di typechecker e implementazione. Polimorfismo.
Semantica operazionale strutturata e relative tecniche di prova di proprietà di programmi. Un
linguaggio Java semplificato: analisi del sistema di tipi e semantica di computazione.
.
Sicurezza delle Reti (M. Boreale)
OBIETTIVI FORMATIVI. Il corso mira a fornire una comprensione approfondita degli aspetti
scientifici e tecnologici della crittografia e della sicurezza in rete (network security).
PROGRAMMA. Un modello per la network security. Crittografia a chiave condivisa. Cifrari
storici. Il cifrario di Vigenere, e la sua criptanalisi. Cifrari perfetti secondo Shannon, One-Time-
PAd. Cifrari di Feistel. Il Data Encryption Standard (DES). L'Advanced Encryption Standard
(AES). Gestione della chiave segreta e relativi problemi. Crittografia a chiave pubblica. Elementi
di teoria dei numeri. Il cifrario RSA. Gestione della chiave con la crittografia a chiave pubblica. Il
protocollo di Diffie-Hellman. Funzioni hash one-way e MAC. Firma digitale. Il sistema Pretty
Good Privacy (PGP). La sicurezza nell'architettura IP. Il protocollo Secure Socket Layer (SSL).
Sistemi Concorrenti e Distribuiti (R. De Nicola)
OBIETTIVI FORMATIVI. Questo modulo introduce dei formalismi per specificare, progettare,
implementare, analizzare e dimostrare proprietà di sistemi concorrenti e distribuiti. Inoltre fornisce i
presupposti per l'ulteriore studio e la ricerca su teoria dei sistemi distribuiti, dei sistemi real-time e
dei sistemi fault-tolerant. Il modulo insegnerà come specificare, progettare e realizzare semplici
sistemi concorrenti. Gli allievi inoltre impareranno come verificare la correttezza di tali sistemi
anche attraverso strumenti software di supporto.
PROGRAMMA. Introduzione ai sistemi concorrenti e distribuiti, alle nozioni di concorrenza e di
comunicazione. Strumenti per la specifica di sistemi concorrenti: sistemi di transizione etichettati ed
algebre di processo, semantiche operazionali. Strumenti per la verifica di proprietà: equivalenze
comportamentali, logiche temporali e modali. Equivalenze basate sulla bisimulazione ed
equivalenze basate sul testing. Sintassi e semantica di CCS (Calculus of Communicating Systems).
Equivalenze osservazionali, congruenze, caratterizzazioni equazionali e ragionamento algebrico.
Specifiche ed esecuzioni dei sistemi concorrenti in CCS. Presentazione di strumenti software per la
verifica: CWB (Edinburgh Concurrency Workbench), Jack (Just Another Concurrency Kit), MC
(Model Checkers).
Sistemi Operativi (R. Pugliese)
OBIETTIVI FORMATIVI. Il corso si propone di portare a conoscenza dello studente le
problematiche inerenti la progettazione e realizzazione delle varie parti che costituiscono un sistema
operativo, evidenziando i legami hardware/software e le interazioni con i programmi utente. Dalla
conoscenza della struttura interna del sistema operativo, e non solo della sua interfaccia, può
derivare un utilizzo più consapevole e mirato dello stesso e un uso efficace dei suoi strumenti
PROGRAMMA. Principi e funzioni principali di un sistema operativo. I processi. Scheduling della
CPU. Comunicazione e sincronizzazione tra processi. Lo stallo. Gestione della memoria. Memoria
virtuale. Gestione delle periferiche. Il file system: directory, metodi di accesso, allocazione dei file.
Strutture per Basi di Dati (R. Sprugnoli)
OBIETTIVI FORMATIVI. Il corso fornisce le nozioni di base per la comprensione della struttura
interna dei sistemi per la gestione delle basi di dati e di sistemi analoghi. Gli argomenti vanno dalla
struttura interna degli archivi e degli indici ai corrispondenti metodi di ricerca; dalla
implementazione degli archivi e delle associazioni alla loro gestione fisica; dalle realizzazioni degli
operatori dell’algebra relazionale all’ottimizzazione delle interrogazioni.
PROGRAMMA. Struttura fisica degli archivi e metodi di accesso. Bufferizzazione e ottimizzazione
dell’I/O. Metodi di accesso procedurali (Hashing). Hashing dinamico. Metodi di accesso ad albero
(B-alberi). Gestione delle informazioni a lunghezza variabile. Liste multiple e liste invertite. Gli
operatori dell’algebra relazionale. Piani d’accesso e ottimizzazione delle query. La concorrenza sui
B-alberi.
Tecniche di Comunicazione (D. De Luca Cardillo)
OBIETTIVI FORMATIVI. Il corso intende fornire agli studenti strumenti per comprendere le
diverse modalità d’approccio alla vita aziendale, ai rapporti interpersonali, alla tempificazione e
gestione di attività per avviare dinamiche sia interpersonali che lavorative produttive e volte
all’efficacia degli interventi.
PROGRAMMA. Sistema decisionale. Programmazione reticolare: CPM PERT e Metodo
Antecedenti. Project management e uso di programmi per la trattazione automatica di progetti (MS
Project e prodotti free–ware). Seminari su: Internet e comunicazione, Rapporti con la clientela e
relazioni interpersonali. Il programma potrà essere modificato in base a particolari esigenze
didattiche riscontrate
Tecniche di Programmazione
OBIETTIVI FORMATIVI. Il corso presenta gli strumenti concettuali e metodologici necessari per
la produzione di software rispondente ai requisiti e consegnato nel rispetto di tempi e costi
prestabiliti. È prevista la realizzazione di un progetto didattico, da svolgere e completare in parallelo
alle lezioni, in cui saranno sperimentati i diversi aspetti della conduzione di un progetto software.
PROGRAMMA. Richiami e approfondimenti di ingegneria del software: il processo di sviluppo
software, la gestione dei progetti software, la stima e il controllo dell’impegno, il controllo della
qualità del software e del processo software. Documentazione e gestione di progetto:
documentazione e controllo di analisi, progettazione, verifica; pianificazione e consuntivazione
delle attività; controllo della documentazione, regolamentazione delle attività. Attività di progetto:
incontri con il committente, verifiche ispettive, revisioni congiunte, consegna e collaudo.
Indirizzi utili
Per informazioni rivolgersi a:
• Segreteria Studenti, Viale Morgagni 48, Tel. 055 4598428; [email protected]
(modulistica, bollettini e aspetti burocratico-formali).
• Presidenza Corso di Laurea, Dipartimento di Sistemi e Informatica,Viale Morgagni 65,
50134 – Firenze; [email protected]
• Rappresentanti degli studenti:
Stefano Belli: [email protected]
Andrea Marino: [email protected]
Vincenzo Milone: [email protected]
Massimiliano Olivieri: [email protected]
Michela Piccinotti: [email protected]
Laurea Specialistica in Scienze e Tecnologie dell’Informazione
A partire dall’anno accademico 2004-2005 presso l’Università degli Studi di Firenze, Facoltà di
Scienze Matematiche, Fisiche e Naturali, è stato attivato il Corso di Laurea Specialistica in Scienze e
Tecnologie dell’Informazione.
Il Corso prevede un solo curriculum ed ha come obiettivo la formazione di specialisti in possesso di
un'adeguata conoscenza degli strumenti, delle metodologie e dei fondamenti dell'Informatica, sia negli
aspetti tecnologici ed applicativi, sia negli aspetti scientifici. I laureati dovranno avere un'ottima
preparazione tecnica che ne consenta l'inserimento nel mondo del lavoro nel settore delle tecnologie
dell'informazione e della progettazione di sistemi informatici, con particolare riguardo ai sistemi
informativi e ai sistemi distribuiti. La preparazione culturale dovrà permettere loro di adeguarsi
facilmente all'evolversi della tecnologia, di assumere ruoli di responsabilità nell'ambito aziendale e di
poter proseguire gli studi ai livelli successivi.
Il Corso ha la durata di 2 anni. L’attività normale dello studente corrisponde a quella necessaria per il
conseguimento di 60 crediti all’anno. Lo studente che abbia comunque ottenuto 120 crediti (oltre ai
180 acquisiti nel corso di laurea triennale di primo livello), adempiendo a tutto quanto previsto dalla
struttura didattica, può conseguire il titolo anche prima della scadenza biennale.
Per l’accesso al Corso di Laurea è richiesto il possesso della laurea triennale di primo livello in
Informatica (classe 26) o di altro titolo riconosciuto idoneo. In particolare, i crediti acquisiti nel
triennio della Laurea in Informatica presso l’Università di Firenze saranno integralmente riconosciuti
e sufficienti per l’iscrizione al corso di Laurea Specialistica in Scienze e Tecnologie
dell’Informazione. Il riconoscimento dei CFU per il passaggio a corsi di laurea specialistica spetta
comunque alla struttura didattica competente.
Scarica