Ferrari Beniamino

English  Español
LAUREA TRIENNALE IN INFORMATICA

Descrizione

Il corso di laurea in Informatica fornisce le conoscenze informatiche, economiche e imprenditoriali necessarie per formare una nuova figura di tecnologo dell'informazione e della comunicazione. Il corso di laurea si propone di fornire al futuro laureato in Informatica una preparazione che tenga conto delle recenti evoluzioni del settore, sia per quanto riguarda gli aspetti più prettamente tecnologici, sia per ciò che concerne l'impatto dell'informatica e delle comunicazioni sui processi economici, sociali ed individuali. Da un punto di vista tecnologico, il corso di laurea in Informatica si prefigge di fornire al laureato le competenze operative e progettuali relative alle moderne tecnologie dell'informazione e della comunicazione, per consentire un suo rapido e proficuo inserimento in contesti professionali che richiedano capacità di progettazione, sviluppo e gestione di sistemi informatici anche complessi.


Corsi

Fondamenti matematica del continuo

1. Cenni di teoria degli insiemi: appartenenza, unione e intersezione, insieme totale, sottoinsiemi, insieme complementare, leggi di De Morgan. Massimo e minimo di un insieme numerico.
2. Definizione assiomatica di funzione: funzioni injettive, surjettive, funzioni composte, definizione di grafico di una funzione, grafici di funzioni elementari.
3. Successioni: definizione, nozione di limite per le successioni convergenti.
4. Serie numeriche: serie convergenti e divergenti, alcune serie notevoli.
5. Numeri complessi: definizione, forma algebrica e trigonometrica. Prime proprietà. Operazioni
sui numeri complessi. Il piano di Argand-Gauss. Radici n-esime dell'unità. Forma esponenziale di un numero complesso.
6. Vettori: cenno ai vettori geometrici in due dimensioni: somma di vettori, componenti, prodotto scalare.
7. Funzioni: Limiti di funzioni: definizioni e prime proprietà. Continuità delle funzioni: definizioni e proprietà. Teorema di Weierstrass. Infiniti, infinitesimi, il simbolo " o piccolo", "O grande" e "~" (asintotico).
8. Calcolo differenziale nel campo reale. Derivata: definizione, derivate di funzioni elementari, regole di derivazione. Derivata delle funzioni composte. Differenziale primo. Derivate di ordine superiore al primo. Punti stazionari, massimi e minimi assoluti e relativi. Legami tra derivabilità e continuità. Teoremi di Rolle, Lagrange, Cauchy. I due teoremi di De l'Hopital. 9. Asintoti: orizzontali, verticali e obliqui. Studio del grafico di una funzione. 10. Approssimazione di funzioni tramite polinomi. Formula di Taylor e di McLaurin. Valutazione dell'errore.
11. Integrali indefiniti. Definizione e proprietà dell'integrale indefinito. Integrale indefinito e metodi d'integrazione (per parti e per sostituazione). Funzione integrale e teorema fondamentale del calcolo integrale. 12. Integrale definito secondo Riemann: significato geometrico. Teorema di Riemann. Teorema della media integrale.
13. Equazioni differenziali: Problema di Cauchy. Equazioni a variabili separabili (integrali singolari), equazioni differenziali non lineari del primo ordine: metodo risolutivo di Lagrange. Equazioni differenziali lineari e omogenee del secondo ordine.


Fisica

1. Introduzione. Generalità sul metodo scientifico. Misura di grandezze fisiche: media, scarto quadratico medio in misure ripetute, precisione, cifre significative. Sistema Internazionale di unità. Equazioni dimensionali.
2. Cinematica. Velocità e accelerazione: valori medio e istantaneo. Moti: uniforme, uniformemente accelerato, vario. Uso di grafici e vettori: componenti, versori. Composizione vettoriale di moti unidimensionali: moto del proiettile. Moto circolare uniforme: relazione tra grandezze lineari e angolari. Moti relativi.
3. Dinamica. Le tre leggi del moto di Newton. Forze: di gravità, vincolare normale, di attrito statico e dinamico, elastica: legge di Hooke. Legge di gravitazione universale di Newton. Uso del diagramma di corpo libero per la formulazione dell'equazione del moto. Sistemi di riferimento non inerziali: forze apparenti. Lavoro. Potenza. Energia cinetica: teorema dell'energia cinetica. Forze conservative: energia potenziale. Energia totale meccanica. Conservazione dell'energia. Centro di massa. Quantità di moto. Conservazione della quantità di moto: urto elastico e urto anelastico in una dimensione. Impulso. Momento torcente di una forza. Momento angolare. Momento di inerzia. Energia cinetica rotazionale. Conservazione del momento angolare. Moto rototraslatorio.
Condizioni di equilibrio stabile e instabile. Moto armonico semplice: frequenza propria. Cenni su moto armonico smorzato e su moto armonico forzato: risonanza. Cenni sul moto ondoso: onda trasversale, onda longitudinale, fase, lunghezza d'onda e periodo, onda piana e onda sferica. 4. Introduzione alla fisica dei fluidi. Densità e peso specifico. Pressione. Relazione tra pressione e profondità. Principio di Archimede. Principio di Pascal. Cenni di dinamica dei fluidi: portata, legge di continuità, equazione di Bernouilli: giustificazione qualitativa e cenni applicativi.
5. Elettricità. Fenomenologia e legge di Coulomb. Induzione elettrostatica. Campo elettrico: additività, linee di campo, campo di Coulomb, campo uniforme, in conduttori. Potenziale: relazione con il campo elettrico, superfici equipotenziali. Teorema di Gauss: cenni applicativi. Capacità: condensatori, dielettrici, energia immagazzinata, densità di energia. Corrente elettrica. Resistenza elettrica: legge di Ohm. Componenti circuitali ohmici e non-ohmici. Potenza elettrica; legge di Joule. Circuiti in c.c.: componenti circuitali in serie e in parallelo. Regole di Kirchhoff. Circuito RC.
6. Magnetismo. Fenomenologia. Forze tra fili percorsi da corrente. Legge di Lorentz Leggi di Biot- Savart e di Ampère. Solenoide. Proprietà magnetiche della materia: ferromagnetismo, magnetizzazione, isteresi.
7. Induzione elettromagnetica. Fenomenologia. Legge di Faraday-Lenz. Autoinduzione: coefficiente di autoinduzione. Energia accumulata in un induttore percorso da corrente. Dendità di energia. Circuiti RL e CL. Trasformatore. Cenni sulle equazioni di Maxwell.


English

1 .Tenses: present simple and continuous, past simple and continuous, present and past perfect, future forms. Modal verbs: can, could, be able to, may, might, must, have to, need, should. Conditionals: if and wish sentences. Passive. Reported speech. Questions. -ing and the infinitive. Articles: indefinite and definite articles, countable and uncountable nouns, indefinite adjectives and pronouns, some/any/no and compounds, quantifiers. Relative clauses: who, which, that, whom, whose, where, what, defining and nondefining relative clauses. Adjectives, pronouns and adverbs: qualifying, demonstrative, possessive, comparison, superlatives. Word order. Prepositions. Phrasal verbs. 2. Comprehension and report.

Fondamenti dell'informatica

1. Informatica
1.1 Elementi di storia della informatica
1.2 Ontologia della informatica
1.3 I fondamenti matematici
1.4 I fondamenti tecnologici
1.5 Le attivtà della Informatica
1.6 Economia e sociologia della Informatica
2. Informatica pura
2.1 La programmazione
2.2 Evoluzione della programmazione
2.3 I limiti della programmazione
- filosofici
- matematici
- tecnologici
- pratici
3.I linguaggi dell'Informatica
3.1 Dati ed entità rappresentate
- strutture dei dati
- composizione e selezione di dati
3.2 Operazioni sui dati e sulle entità rappresentate
- dalla realtà ai dati
- dai dati alla realtà
3.3 Dati ed operazioni: tassonomia
- tassonomia sui dati e sulle operazioni
3.4 Di descrizione e di trattamento di dati
- morfismi fra linguaggi
3.5 Sistemi e processi
- Sistemi
- Reti di Petri
- Automi
- Elaboratori analogici
4. Elaboratori
4.1 Dagli automi alle macchine di Turing
4.2 Macchine di Turing Universali
4.3 La comparsa della tecnologia
4.4 L'implementazione di dati e procedimenti
5. I Linguaggi di programmazione
5.1 Funzionali
5.2 Procedurali
5.3 Ad oggetti
5.4 Dichiarativi
5.5 Compositivi
6. La programmazione
6.1 Macchine e programmi
6.2 La invenzione di programmi
6.3 La generazione di programmi
6.4 La traduzione
6.5 Programmazione di ordine superiore
6.6 Programmi che operano su programmi
6.7 Programmazione genetica
6.8 La programmazione Fuzzy
6.9 Invenzione e generazione automatica dei programmi
7. Invarianti
7.1 Metodi costruttivi
7.2Problemi e programmi
7.3 I ciclo di vita della progrmmazione
8.Programmazione in ambito produttivo
8.1 Ingegneria del software


Programmazione

L'insegnamento di Programmazione intende avviare gli studenti ad una visione della programmazione aggiornata, che considera la programmazione come l'attività di istruire sistemi, computerizzati e non, a compiere attività finalizzate. L'insegnamento intende altresì fornire una visibilità delle moderne tecniche di programmazione con l'impiego di aggiornati strumenti per la programmazione sia su stazioni di lavoro personale che in ambiti di rete. Lo studente sarà incoraggiato a conoscere INTERNET attraverso un corso che potrà effettuare a distanza da casa. Altresì lo studente dovrà mostrare di avere un minimo di familiarità con l'impiego di supporti multimediali basati su CD ROM. La competenza sull'impiego delle tecnologie informatiche verrà fortemente incoraggiata sia per documentare le attività che per apprendere familiarità con i moderni sistemi di elaborazione e le loro reti. Per questo gli studenti sono invitati ad organizzare loro gruppi di lavoro dotati di identità e ove possibile di sito INTERNET. Il corso prevede attività di laboratorio dedicata allo sviluppo di progetti scelti dai docenti e dagli stessi studenti. Sul piano concettuale gli studenti verranno immersi nell'atteggiamento sistemistico e nella teoria di sistemi formali quali gli automi ed i loro linguaggi nonché Reti di Petri. In ambito sistemistico gli studenti dovranno acquisire la capacità di analizzare sistemi quali piccole imprese, o uffici, o sistemi anche complessi a livelli di astrazione compatibili con le disponibilità. Contatti con enti esterni sono incoraggiati, così come è incoraggiata la produzione di una buona documentazione dei progetti realizzati impiegando sistemi di presentazione. Le attività pratiche saranno svolte in collaborazione all'interno dei gruppi che si autodefiniranno. La valutazione d'esame sarà individuale. Gli studenti dovranno conoscere perfettamente ed individualmente TUTTE le parti di lavori realizzati collettivamente. Verrà incoraggiata la visione di sintesi in cui lo studente impiega tutte le conoscenze degli insegnamenti del primo anno. Lo studente è incoraggiato a scegliere documentazione su cui prepararsi.

Economia e organizzazione

Introduzione all'economia aziendale L'azienda come sistema, il metodo dell'economia aziendale. I processi decisionali. Forme d'impresa. I processi aziendali.
Il modello contabile.
Il modello contabile. Il bilancio di esercizio. Stato Patrimoniale e Conto Economico. L'analisi del bilancio attraverso gli indici e la leva finanziaria. Esercizi.
Analisi dei costi e decisioni aziendali
La classificazione dei costi. Le decisioni di breve: break even, mix e make or buy. La dinamica dei costi nel lungo periodo: economie di scala, apprendimento e scopo. Esercizi.
La valutazione degli investimenti
Il concetto generale di investimento e l'attualizazione. I metodi Discounted Cash Flow. Esercizi.
La strategia aziendale
La definizione di Strategia. Il processo di pianificazione Strategica. La formulazione della strategia a livello business. L'analisi competitiva del settore. L'analisi interna e il sistema del valore. La strategia a livello Corporate: analisi di portafoglio e core competencies.
Il sistema organizzativo
Sostenibilità e prestazioni del sistema organizzativo. Le variabili di contesto. Le variabili organizzative. La progettazione della macrostruttura. La progettazione della mansioni. I nuovi orientamenti organizzativi.
Tecnologie dell'informazione e nuovi modelli d'impresa
B2E: E-commerce e nuovi modelli di business. B2C: l'impatto di internet sulla relazione fra imprese. B2E: l'impatto di internet sull'organizzazione delle imprese.


Architettura degli elaboratori

1. Descrizione e sintesi di reti logiche. Porte logiche, tabelle delle verità, equazioni logiche. Sintesi di reti combinatorie e sequenziali.
2. Il linguaggio VHDL. Presentazione del flusso di progettazione in VHDL di un controllore semaforico. Presentazione dell'ambiente di simulazione, sintesi e testing. Entità di un dispositivo elettronico. Architetture: funzionale e strutturale. Funzionamento e rappresentazione di un processo. Configurazioni, package e librerie. Assegnamento di valori a segnali e variabili. Operatori logici, relazionali ed aritmetici. Assegnamenti sequenziali. Assegnamenti concorrenti. Costrutti: IF-THENELSE, CASE, FOR. Assegnamento di valori ai segnali entro un processo. Descrizione di architettura con molti processi. Scambio d'informazioni tra processi. Rappresentazione del ciclo di clock durante una simulazione digitale. Costrutti: AFTER, WAIT.
3. I principali componenti dell'architettura del microcalcolatore. Componenti logici programmabili (ROM, PROM, EPROM, PLA, PAL, FPGA). Circuiti per la realizzazione delle principali funzioni di memoria. Elementi di memoria.
4. Il linguaggio macchina. Il linguaggio Assembler. Esercizi.
5. Architettura delle periferiche di I/O (Input/Output). Tipi e caratteristiche dei dispositivi di I/O. Il bus: struttura e topologia di connessione. La gestione software dell'I/O.
6. Il processore: progetto del Data Path. Circuiti per le principali operazioni aritmetiche. Progettazione di un modello di ALU.
7. Il processore: progetto del Control Path. Progetto di un'unità di controllo. Unità di controllo cablate e microprogrammate.
8. Principali direttrici di evoluzione architetturale. Memorie cache. Memoria virtuale. Pipelining.


Laboratorio di progremmazione A

C#
L'evoluzione dei linguaggi di programmazione e loro principali caratteristiche. Applicazioni mainframe, applicazioni distribuite, applicazioni intranet/internet, applicazioni multilivello. Introduzione al linguaggio C Sharp. Principali tipi di variabili in C#. Array. Funzione Lenght. Namespace, Classi, Oggetti, Metodi. Variabili statiche, variabili istanza, metodi statici, metodi istanza. Object, Boxing, Unboxing. Utilizzare la libreria system. Accenni alle tecniche di gestione della memoria e Virtual Memory Manager, memoria di processo, Heap, Stack. Chiamate a funzioni e record di attivazione, ricorsione, stack overflow. Parametri in input a funzioni (passati per valore), parametri di output, parametri passati per riferimento. Statement, if statement, while statement, do/while statement, for statement. Istruzioni di salto: break, continue, goto. Istruzione di scelta multipla: switch. Operatori C sharp (unari, binari, ternari). Cast implicito ed esplicito. Regole di casting del compilatore. Design time, compile time, run time, codice rientrante. Opzioni checked e unchecked, eccezioni run time. Operatore sizeof, bitwise, operatori booleani, operatore trialico. Operatori &, |, ^ applicati a tipi non discreti. Operatori usati in notazione postfissa e prefissa. Programmazione ad oggetti. Incapsulamento, ereditarietà, polimorfismo. Risorse prelazionabili. Meccanismi di gestione di programmazione concorrente. Gestione di eventi e interrupts. Processi e Threads. Atomicità delle operazioni e Commit. Introduzione alle basi di dati. Database relazionali: modello Entità-Relazioni e linguaggio SQL. Introduzione a XML. Html e Xml. BusinessToBusiness e BusinessToConsumer. Script e componenti Frontend/Backend. La gestione degli errori. La gestione delle eccezioni in C#. Implementazione dell'ereditarietà. Implementazione del polimorfismo. Curve di rottura di H/W e S/W. Località del software. Programmazione multipiattaforma. Compilazione condizionale. Versioning e gestione release. Trace e debug. Documentazione mediante Xml. Java Script
Il linguaggio html e la sua evoluzione. Il linguaggio JavaScript. Le variabili. Le funzioni. Oggetti. Ereditarietà degli oggetti. Interfaccia fra HTML e JAVASCRIPT. Tag HTML ed Eventi. Tipi di dati: numerici, booleani, Array, stringhe. Le strutture di controllo dei flussi. Il DOM di javascript. Lavorare con i frames. Animazioni con javascript. Oggetti principali del DOM. La struttura di un programma completo.

Fondamenti di matematica del discreto

Numeri: numeri naturali, Numeri primi e fattorizzazione. Basi di numerazione. Il principio di induzione matematica e le definizioni ricorsive.
Congruenze e equazioni diofantee. Criteri di divisibilità. I numeri razionali, gli allineamenti decimali in varie basi. Numeri periodici e non.
Insiemi, gruppi, anelli, campi. I gruppi di sostituzioni su n elementi. I gruppi ciclici. Sottogruppi e loro ordine. Il teorema di Lagrange. Omomorfismi tra gruppi.
L'anello delle matrici.
Determinanti e rango di matrici.
Risoluzione dei sistemi lineari col metodo di Cramer e di Gauss Jordan
Cenni di crittografia.
Spazi vettoriali. Sistemi di generatori e basi. Unione, intersezione e somma di sottospazi vettoriali Omomorfismi di spazi vettoriali. Nucleo, Immagine e loro dimensione. Matrice di un omomorfismo. Autovalori e autovettori.

Sistemi di elaborazione dell'informazione

1. Introduzione. Struttura e tipologie dei sistemi di elaborazione dell'informazione. Infrastrutture di calcolo e di servizi. Standard multilivello: l'esempio di ISO/OSI
2. Introduzione alle reti locali. Motivazioni. Reti private e pubbliche; storia e filosofia di progetto. Tipi e architetture di reti private: LAN, MAN, WAN. Topologie: reti parzialmente o completamente connesse, gerarchiche, ad anello, a stella, a bus. Comunicazione: i concetti di instradamento, connessione, contesa. Il livello 1: cablaggi e proprietà fisiche della comunicazione in guida. Il livello 2: MAC e LLC. Gli standard IEEE.
3. Protocolli. Generalità. Il livello 3: Protocolli e caratteristiche di progetto. Organizzazione interna. Il livello 4: servizi offerti al livello trasporto. Confronto tra reti basate su circuito virtuale e reti basate su datagrammi.
4. Caso di studio: Internet Protocol. Il livello rete di IPv4. Indirizzi IP. Subnetting e Supernetting. Protocolli di controllo. ICMP. ARP, RARP, DHCP. IPv6. Il preambolo IPv6 principale. Preamboli di estensione.
5. Algoritmi di Routing.. Routing lungo il cammino minimo. Flooding. Routing basato sui flussi. Routing basato su vettori di distanza. Routing basato sullo stato dei canali. Broadcast routing. Multicast routing. Routing IP: OSPF. BGP. Internet multicasting.
6. Internetworking IP. Circuiti virtuali concatenati. Internetworking senza connessioni. Tunneling e gestione della frammentazione. Firewall. NAT.
7. Il servizio di trasporto. Elementi del protocollo di trasporto. Trasporto TCP/IP: Il modello di servizio TCP. Il protocollo TCP. Il protocollo UDP. Il preambolo del segmento TCP. Il preambolo UDP. Qualità del servizio. Primitive del servizio di trasporto.
8. Protocolli e sistemi applicativi. Struttura dei servizi applicativi basati su TCP e UDP. . I socket di Berkeley. Interfacce standard a livello socket e stream per Unix e Windows. HTTP, FTP, Telnet: protocolli e servizi. Amministrazione di rete e SMNP. Architetture distribuite. Sistemi client server multi livello.
9. Tecniche di integrazione tramite middleware. Invocazione remota RPC. Invocazione remota di metodi: Java RMI. CORBA: standard e tecniche di integrazione. Application server. File system distribuiti. Connessione ai database remoti via Web/HTTP; ODBC-2.COM+ e l'architettura .NET. Enterprise Java Beans. Tecniche basate su XML: SOAP, XML-RPC. Il Programmable Web.

Basi di dati

1. Introduzione. Sistemi informativi, sistemi organizzativi e sistemi informatici. Concetto di informazione e dato. Introduzione a basi di dati e DBMS, modello dei dati, concetto di schema ed istanza. Indipendenza logica e fisica dei dati, tipologia di linguaggi per basi di dati.
2. Modello relazionale. Modelli logici. Modello relazionale: relazioni vs tabelle; relazioni con attributi; notazioni; informazione incompleta e valori nulli. Vincoli di integrità: vincoli di tupla; chiavi e valori nulli; vincoli di integrità referenziale..
3. Linguaggi di interrogazione. Algebra relazionale: operatori di base ed operatori derivati. Interrogazioni in algebra relazionale ed equivalenza di espressioni algebriche. Idiomi di interrogazione. Calcolo relazionale su tuple. Datalog (cenni)..
4. SQL. Data Definition Language: i domini elementari, definizione di schema, tabelle e di domini. Vincoli intrarelazionali ed interrelazionali. Interrogazioni in SQL: interrogazioni semplici, operatori aggregati, clausola di 'group by', interrogazioni di tipo insiemistico e nidificate. Operazioni di inserimento, modifica e cancellazione. Definizione di vincoli di integrità generici, asserzioni e viste. Controllo dell'accesso..
5. Metodologie e modelli per il progetto. Introduzione alla progettazione. Il modello Entità-Relazione. 6. Progettazione concettuale. Introduzione alla progettazione concettuale e ciclo di vita di un Sistema Informativo. Strategie di progetto: top-down, bottom-up, inside-out e mista. 7. Progettazione logica. Ristrutturazione schemi E-R: eliminazione delle gerarchie; scelta degli identificatori principali; eliminazione degli attributi composti e multivalore. Traduzione verso il modello relazionale. Traduzioni di schemi complessi..
8. Normalizzazione. Ridondanze e anomalie. Dipendenze funzionali. Forma normale di Boyce e Codd. Proprietà delle decomposizioni. Terza forma normale. Progettazione di basi di dati e normalizzazione. 9. Tecnologia di un database server. Definizione di transazione. Proprietà acide delle transazioni. Controllo di concorrenza. Anomalie delle transazioni concorrenti. View-equivalenza e conflict-equivalenza. Lock binario e lock a tre stati. 2PL e timestamp. Organizzazione del file di log, primitiva di undo e redo. Gestione del buffer. Controllo di affidabilità. Strutture fisiche di accesso. Alberi B e B+..
10. Architetture distribuite. Architettura client-server. Basi di dati distribuite. Tecnologia delle basi di dati distribuite. Protocollo di commit a due fasi. Interoperabilità. Cooperazione con sistemi esistenti. Parallelismo..
11. Architetture e paradigmi per l'analisi dei dati. Architettura della data warehouse. Schema della data warehouse. Operazioni per l'analisi dei dati. Realizzazione della data warehouse. 12. Basi di dati ad oggetti. Introduzione ai concetti di base: tipi, classi, oggetti e metodi. Identità vs uguaglianza superficiale e profonda. Gerarchie di generalizzazione: concetto di overriding, overloading e late binding. Persistenza. Conflitti.

Calcolo della probabilità e statistica matematica

Variabilità biologica e caso. Popolazione e campione. Campionamento casuale semplice, campionamento sistematico e randomizzato, per stratificazione. Esperimento casuale. Spazio campionario. Probabilità uniforme o di conteggio. Definizione assiomatica di funzione di probabilità discreta. Spazi di probabilità. Proprietà (probabilità del complemento di un evento, regola della somma e loro conseguenze). Tipi di dati e scale di misura. Distribuzioni di frequenze. Rappresentazione dei dati qualitativi, pie diagrams, istogrammi. Sintesi dei dati quantitativi. Misure di posizione: media, mediana, moda. Misure di dispersione: devianza, varianza, deviazione standard. Probabilità condizionata. Indipendenza fra eventi. Indipendenza condizionata. Regola del prodotto. Teorema delle probabilità totali. Teorema di Bayes. Variabile casuale. Funzione di probabilità indotta sull'asse reale da una variabile casuale. Funzione di densità e di ripartizione. Loro proprietà. Derivazione della funzione di densità dalla funzione di ripartizione e viceversa (caso variabili casuali discrete). Valore atteso di una variabile casuale. Disuguaglianza di Markov. Valore atteso di una funzione di variabile casuale. Disuguaglianza di Chebicheff. Varianza e deviazione standard di una variabile casuale. Proprietà di linearità del valore atteso. Definizione equivalente di varianza. Variabili casuali Bernoulliane. Prove Bernoulliane indipendenti. Indipendenza fra variabili casuali. Derivazione della densità binomiale. Valore atteso. Distribuzione normale. Definizione di covarianza e sue proprietà. Varianza di una somma di variabili casuali. Covarianza di variabili casuali indipendenti. Calcolo della varianza della binomiale. Definizione di campione casuale e sua realizzazione. Definizione di statistica. Media campionaria. Legge dei grandi numeri. Derivazione della densità Geometrica. Valore atteso e varianza. Proprietà 'senza memoria'. Definizione di variabile casuale continua. Densità uniforme continua. Funzione di densità per variabili casuali continue. Relazione fra funzione di densità e ripartizione per v.c. continue. Teorema delle probabilità totali per v.c. continue. Variabile casuale standardizzata. Teorema del limite centrale (solo enunciato). La statistica inferenziale. Test di significatività. Test a una coda e a due code. Test del chi-quadrato. Uso delle tavole per distribuzione normale e chi-quadrato. Parametro t di Student. t di Student per dati indipendenti. t di Student per dati appaiati. F di Fisher per il confronto fra varianze. Uso delle tavole per la distribuzione t di Student. Densità congiunta e marginale. Derivazione della marginale dalla congiunta. Valore atteso del prodotto di variabili casuali indipendenti. Densità condizionata. Valore atteso condizionato e curva di regressione. Teorema del valore atteso condizionato. Minimi quadrati, regressione lineare, diagrammi di dispersione, coefficiente di correlazione. Calcolo della miglior retta interpolante. Derivazione della densità Poissoniana come limite della densità Binomiale. Condizioni di applicabilità del modello Poissoniano. Derivazione della densità esponenziale dalla Poissoniana. Valore atteso e varianza. Proprietà 'senza memoria'. Definizione generale di stimatore. Correttezza e consistenza della media campionaria come stimatore della media. Intervallo di confidenza per uno stimatore. Varianza campionaria. Distribuzione del minimo e del massimo di v.c. indipendenti. Simulazione di una funzione di densità data tramite trasformazione della densità uniforme (trasformazione integrale di probabilità).

Sistemi operativi

Il corso analizza comparativamente architetture, funzionalita', meccanismi, politiche e gestione dei sistemi operativi per le varie architetture dei sistemi di elaborazione (monoprocessore, multiprocessore, cluster, distribuiti, embedded) orientati alle principali aree applicative (sistemi transazionali, interattivi, gestionali, multimediali, d'automazione d'ufficio, per telecomunicazioni, di controllo industriale, robotici, embedded). Il corso approfondisce poi gli aspetti progettuali e di gestione dei sistemi operativi, con riferimento a tecniche di progettazione, configurazione, ottimizzazione, e manutenzione. 1. Architetture dei sistemi operativi: tipi e struttura, funzioni caratteristiche, meccanismi e politiche di gestione.
2. Virtualizzazione del processore: schedulazione di processi, allocazione, riallocazione statica e dinamica, pipelining, deadlock, starvation; meccanismi e politiche per la gestione concorrente, per la sincronizzazione e per la comunicazione tra processi; thread; aspetti di tempo reale; tolleranza ai guasti; progettazione di algoritmi e strutture dati per la virtualizzazione del processore; valutazione delle alternative progettuali.
3. Virtualizzazione della memoria centrale: politiche e meccanismi di gestione della memoria centrale; supporti architetturali; consistenza; tolleranza ai guasti e agli errori software; sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione della memoria centrale; valutazione progettuale.
4. Virtualizzazione dei dispositivi di ingresso/uscita: meccanismi e politiche di gestione delle tipologie dispositivi e interfacciamento; orologio, ordinamento temporale degli eventi in sistemi distribuiti, coordinamento; dischi; terminali; stampanti; periferiche speciali, supporto di sistema operativo per reti informatiche; aspetti di tempo reale, tolleranza ai guasti e agli errori software, sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione del dei dispositivi di ingresso/uscita; valutazione delle alternative progettuali.
5. Astrazione della rappresentazione delle risorse informative e fisiche: file, file system, file system di rete e distribuito, politiche di identificazione delle risorse; consistenza, caching, backup; tolleranza ai guasti e agli errori software; protezione e sicurezza degli accessi; progettazione di algoritmi e strutture dati per l'astrazione delle risorse; valutazione delle alternative progettuali.
6. Interfaccia utente: tipi di interpreti e interfacce utente (programmativo, testuale, grafico, multimediale, distribuito, agenti mobili); meccanismi e politiche di gestione dell' interfaccia utente; gestione e sicure zza degli accessi; tolleranza ai guasti e agli errori software; progettazione di algoritmi e strutture dati per l'interfaccia utente; valutazione delle alternative progettuali.
7. Metodologie di progettazione di sistemi operativi: programmazione di sistemi in tempo reale; programmazione di sistemi distribuiti; programmazione di sistemi reattivi; programmazione di sistemi embedded; progettazione di sistemi tolleranti ai guasti.
8. Unix: struttura, funzioni, interfacce utente, programmazione in ambiente Unix (Linux).


Ingegneria del software

1. Introduzione.Lo sviluppo del software come processo. Cicli di vita a cascata, iterativo, a spirale. Il prototyping.
2. Ingegneria dei requisiti.Requisiti informali e semiformali. Consensus design e storyboarding. Modelli dei dati per i requisiti. Uso di strumenti software per l'ingegneria dei requisiti. 3. Tecniche di software design.Tecniche di modellizzazione: DFD, FDFD, automi, reti di Petri colorate. Progettazione orientata al riuso. Il linguaggio UML: casi d'uso, diagrammi delle sequenze, delle classi, delle transizioni. Diagrammi dei componenti e di deployment. Modello e metamodello. I formati di interscambio dei modelli: XMI e UXF. Uso di strumenti software per il design UML.
4. Test e verifica.Piani di test. Strumenti software per il testing delle applicazioni. Generazione automatica di test case.
5. Dagli oggetti ai componenti. Dalla classe al componente. Generazione automatica di interfacce di componenti da modelli UML. I modelli a componenti industriali: OMGCORBA, Microsoft COM+ e .NET, Java EJB. Architetture basate su COTS. Componenti e riuso.
6. Tecniche formali e model checking.Verifica formale delle proprietà del software. Confronto con il testing. Caso di studio: il linguaggio Z.
7. Approfondimenti sul processo di produzione del software. Il time-to-market. Processi completi e processi ridotti: confronto tra RUP e XP. La scala di maturità UMM. Gestione della qualità. Processo di produzione di applicazioni basate su Web. 8. Valutazione dei costi.Il costo del software. Il mese-uomo. Metriche e misure dimensionali (LOC) e di complessità (FP).
9. Gestione dei progetti.Ambienti cooperativi di sviluppo e programmazione. Gestione dei gruppi di lavoro e pianificazione delle risorse. Uso di strumenti software di project management.


Elettronica I

1. Grandezze elettriche. Definizione delle grandezze elettriche. Unità di misura del Sistema Internazionale.
2. Circuiti in continua. Bipoli elettrici. Resistore. Caratteristica tensione-corrente. Legge di Ohm. Leggi di Kirchhoff. Generatori dipendenti e indipendenti. Amplificatori ideali. Analisi dei circuiti elettrici in continua. Teoremi di Thèvenin e di Norton. Principio di sovrapposizione degli effetti. L'amplificatore operazionale ideale. Circuiti con amplificatori operazionali.
3. Cenni di teoria dei sistemi. Definizioni e proprietà dei sistemi dinamici. Diagrammi di flusso. Controllabilità e osservabilità. Sistemi retroazionati. Stabilità.
4. Analisi di circuiti nel dominio del tempo. Induttori e condensatori. Energia immagazzinata.
Trasformatore. Potenza istantanea e potenza media. Analisi nel dominio del tempo. Circuito integratore e circuito derivatore. Guadagno di un circuito in modulo e fase. Misura del guadagno in decibel.
5. Dispositivi e circuiti elettronici. I semiconduttori. Il diodo a giunzione. Il transistore bipolare a giunzione. Il transistore MOS. La tecnologia CMOS. Porte logiche in tecnologia CMOS: inverter, NAND, NOR.
6. SPICE. Descrizione in SPICE di un circuito elettrico. Simulazione di circuiti con SPICE.


Metodi per il ragionamento automatico

1. Apprendimento supervisionato
- Pattern classification: introduzione al problema.
- Nearest-neighbour. Classificatori ad albero.
- Concetto di overfitting. Modello statistico. Dilemma bias-varianza.
- Reti neuronali: Cenni storici. Classificatori lineari a soglia. Il Perceptrone: teorema di convergenza.
Funzioni kernel e Support Vector Machines. Reti di funzioni a base radiale. Reti multistrato algoritmo di retropropagazione dell'errore. Boosting. Ipotesi probabilistiche e algoritmo naive Bayes. Metodi sperimentali.
2. Algoritmi evolutivi
- Tassonomia degli algoritmi evolutivi e note storiche.
- Concetti di base sugli algoritmi evolutivi:Ingredienti. Il ciclo evolutivo. Un esempio di algoritmo genetico. Il teorema degli schemi. L'ipotesi dei building blocks.
- Gli algoritmi evolutivi come processi stocastici.
- Rassegna delle principali tecniche evolutive: Sommario sugli algoritmi genetici. Programmazione evolutiva. Strategie evolutive. Programmazione genetica.
- Aspetti pratici: 'programmi evolutivi': Trattamento dei vincoli. Ibridizzazione.
- Algoritmi evolutivi e soft computing.
3. Apprendimento non supervisionato
- Clustering: l'algoritmo K-means
- L'algoritmo expectation-maximization


Editoria multimediale



1 Media digitali, testo, grafica, immagini, video, audio: standard di rappresentazione, scenari di prodotti industriali
2 Compressione di immagini, audio e video: principi generali (lossy, non lossy, trasformate, compressione frattale) e standard (JPEG, H.263, MPEG 1,2 e 4, ..)
3 Dispositivi di I/O e di archiviazione: problemi di banda, archiviazione di massa fault-tolerant, optical storage (CD, DVD, Photo CD, ..), qualità del Servizio (QoS)
4 Cenno ai Data Base multimediali e alla ricerca per contenuto
5 Problemi di copyright, watermarking
6 Applicazioni: video server, videoconferenza, internet phone, Realtà Virtuale in rete (teleimmersione, Telepresenza, Telecollaborazione, ...)


Controlli automatici



1. Introduzione dei concetti di base
- processo e controllo, feedback, feedforward, tempo reale
2. Presentazione dei principali tipi di processi industriali:
- processi continui, processi batch, processi manifatturieri
3. Il ciclo di vita di un sistema di controllo
- progettazione, realizzazione, collaudo, messa in servizio, manutenzione, modifiche in corso di
esercizio e revamping
4. Le parti componenti di un sistema di controllo
- hardware, software
5. I componenti hardware
- sensori, attuatori, sistemi di trasmissione, regolatori, PLC, DCS, calcolatori, controllori speciali
6. Software
- le caratteristiche di base del software per controllo di processo, differenze specifiche tra il software
per il controllo di processo e quello per applicazioni gestionali, quali strumenti si usano per
realizzare il software per il controllo di processo, problematiche caratteristiche del test del software,
algoritmi di base (PID etc), concetti avanzati (fuzzy logic, ottimizzazione), software di mercato e
software dedicato: criteri di scelta ed effetto su tempi e costi
7. Il concetto di ‘integrazionè di sistemi di controllo: il ruolo fondamentale del software
8. L’utilizzo del controllo di processo in:
- impianti, macchine, settore del servizio
valutazione di analogie/differenze nelle diverse fasi del ciclo di vita del sistema
9. Esempi
- descrizione del sistema di controllo di alcuni impianti esistenti
10. Problematiche
- come si fa a conoscere le caratteristiche del processo che si deve controllare, come si fa a provare un sistema di controllo

Elaborazione di immagini



1. Nozione di immagine
2. Luce, visione e percezione, teorie del colore
3. Cenni di videotecnologia
4. Formazione delle immagini
5. Acquisizione e digitalizzazione di immagini
6. Fondamenti di analisi di immagini: miglioramento, equalizzazione, operazioni geometriche, estrazione di feature, morfologia matematica
7. Cenni al trattamento digitale del segnale: trasformate di Fourier e del coseno
8. Filtri digitali: filtri FIR e IIR (cenni), campionamento e ricostruzione del segnale
9. Codifica e compressione di immagini fisse: compressione senza perdita (Huffmann, RLC; delta, aritemtica), compressione con perdita: JPEG; codifica di immagini in movimento: cenno a MPEG


Tecniche di simulazione



1. Introduzione. Fondamenti Numerico-Matematici.
2. Fondamenti Metodologici. Il Ruolo della Fisica (Equazione Generale di Bilancio).
3. Definizione Razionale della Simulazione. Cosa, come, perché. Modello (astrazione, idealizzazione).
Sistema e 'Ambiente Esterno'. Entità, Attributi. Attività. Stato. Ciclo Vita di una simulazione.
Tipologie principali di modelli (deterministici, statistici, fuzzy)
4. Numeri Pseudo-Casuali come simulazione della casualità. Definizioni elementari di probabilità.
Distribuzioni di probabilità. Cenni alla problematica della 'definizione' della Casualità. Caratteristiche 'desiderate' dei generatori di numeri casuali. Costruzione di semplici generatori di numeri pseudocasuali.
Esempi di applicazioni.
5. La Approssimazione del Continuo come 'tecnica di simulazione'. Cenno alla Teoria dei Fenomeni di Trasporto. Descrizione Lagrangiana e Euleriana. Definizione e significato fisico degli operatori matematici di interesse (derivata parziale prima temporale; derivata sostanziale o convettiva; derivata temporale totale; derivate spaziali prime). Corrispondenza tra operatori e i fenomeni di convezione, diffusione e di creazione/distruzione. Costruzione della Equazione dell'Energia Interna e relativa approssimazione monodimensionale (i.e. Equazione 1D del Calore). Simulazione della propagazione del calore in sbarrette e piastre metalliche. Cenno al metodo numerico delle Differenze Finite. Algoritmi espliciti ed impliciti. L'algoritmo tridiagonale. Metodi iterativi a direzioni alternate. 6. Costruzione formale di un programma di calcolo. Problemi semplici 1D (monodimensionali). Varianti per problemi 2D (bidimensionali).
7. Esempio di simulazione di un sistema economico. Formazione e Gestione del Debito Pubblico (cenni elementari). Nozioni-base di fabbisogno, emissioni di BOT e saggio di interesse. L'equazione di Bilancio in forma discreta. Analisi di diversi scenari di evoluzione 8. Cenni alla tematica di un pre-processore e di un post-processore come strumenti di gestione di un codice di calcolo e/o di simulazione.


Bioinformatica



Questo è un corso introduttivo e una rassegna delle principali questioni e tecniche della Bioinformatica. Il corso si situa, per la sua natura multidisciplinare, a cavallo tra Biologia e Informatica, e copre sia l'applicazione di tecniche informatiche alla risoluzione di problemi biologici, sia una serie di tecniche informatiche di ispirazione biologica.
Parte I: Concetti e nozioni basilari di Biologia, Biochimica e Genetica molecolare
1. Caratteristiche strutturali di cellule procariotiche ed eucariotiche.
2. Caratteristiche chimico-fisiche delle principali classi di biomolecole e delle loro interazioni con l'acqua.
3. Replicazione, trascrizione e traduzione del messaggio genetico.
Parte II: Tecniche e algoritmi per la Biologia Molecolare
1. Programmazione dinamica e problemi di string matching approssimato.
2. Simulated Annealing, Mean-Field Annealing, Reti Neurali e Macchine di Boltzmann.
3. Pattern matching: definizioni e introduzione al problema. L'albero dei suffissi.
4. Hidden Markov Models: calcolo della probabilita` di una stringa di osservazioni, Viterbi e stima dei parametri a partire dai dati.
5. Algoritmi paralleli e parallelizzazione di algoritmi.
Parte III: Algoritmi evolutivi
1. Tassonomia degli algoritmi evolutivi e note storiche
2. Concetti di base sugli algoritmi evolutivi: ingredienti, il ciclo evolutivo, un esempio di algoritmo genetico, il teorema degli schemi, l'ipotesi dei building blocks;
3. Gli algoritmi evolutivi come processi stocastici
4. Rassegna delle principali tecniche evolutive: sommario sugli algoritmi genetici, programmazione evolutiva, strategie evolutive, programmazione genetica.
5. Aspetti pratici: 'programmi evolutivi': trattamento dei vincoli, ibridizzazione
6. Algoritmi evolutivi e soft computing.


Intelliganza artificiale



This course introduces main directions of research in advanced Artificial Intelligence (AI). We will study the models and methods developed in AI for design of intelligent systems. We will consider also AI application in information processing systems and in intelligent robotics.
1. Introduction to Artificial Intelligence (AI).
- Main directions of research in AI. Two levels of intelligence in intelligent systems. AI application to intelligent robotics.
2. Soft computing as the tool for simulation of a low level intelligent behavior in an intelligent system. - Main components of soft computing: fuzzy sets,Genetic Algorithms (GA) and neural networks. 3. Fuzzy logic and fuzzy inference. Examples of application. Fuzzy controllers.
4. Artificial neural networks and fuzzy neural networks. Learning: supervised and unsupervised.
- Examples of application.
5. GA and fuzzy controllers. Examples of application.
6. Intelligent behavior with high level intelligence.
- Intelligent decision making, task level planning, natural communication.
7. Knowledge engineering : representation, processing and acquisition models.
- Languages for knowledge representation (frames, productions, prolog-like, etc.)
- Models of human-like reasoning. Example of application.
8. External world modeling. Spatio-temporal and action models. Example of application.
9. Communication models. Human-computer interaction: from simple dialog to intelligent interface and to virtual reality.
10. Natural Language (NL) communication and processing. Different levels of NL understanding. - Approaches to linguistic processors design.
11. Cognitive graphics and AI. Model ' Text <--> Picture'.
- Example of application of cognitive graphics and NL in a robotic system.
12. Artificial creativeness models. Computer's music, poems, stories and pictures.
13. Living systems models. Learning, self-organization and adaptation.


Introduzione al quantum computing



1. Interferenza quantistica: interferenza di particelle, ampiezze di probabilita' complesse, regola di composizione delle ampiezze di probabilita'
2. Stati, basi e operatori: notazione di Dirac, vettori di stato, basi, operatori ed osservabili, spazi di Hilbert, spazi bidimensionali ed operatori di Pauli, autostati, il processo di misura ed il collasso del vettore di stato
3. Evoluzione temporale: hamiltoniana, energia, stati stazionari, diagonalizzazione, oscillazioni di Rabi 4. Qubits e registri di qubits: dal bit al qubit, preparazione dello stato di un qubit, informazione estraibile, teorema di no cloning, spazi di Hilbert e prodotto tensoriale, entanglement.
5. Quantum Computer: macchine di Turing Quantistiche, porte logiche quantistiche, reversibilità logica, porte universali.
6. Parallelismo quantistico ed algoritmi quantistici: quantum, speedup, algoritmo di Deutsch, Deusch- Josza, Bernstein e Vazirani, Quantum Fourier Transform, stima di fase, algoritmo di Shor. 7. Quantum search: algoritmo di Grover, Quantum Random Walks.
8. Applicazioni del'entanglement: teletrasporto quantistico, quantum dense coding, distribuzione quantistica di chiavi crittografiche
9. Stati ed operatori densita': probabilita' classiche ed operatori densita', sistemi bipartiti ed operatori densita' ridotta, decomposizione di Schmidt.
10. Informazione quantistica: entropia di Shannon, entropia di VonNeumann, sistemi aperti ed interazione con l'ambiente, mappe Completamente Positive, Positive Operator Value Mesurement, canali quantistici e capacita', informazione accessibile
11. Quantum error correction. Codici di Hamming, codici quantistici.


Reti neurali



Il corso si propone di introdurre all'uso di metodologie e tecniche di elaborazione delle informazioni mediate reti neurali per applicazioni industriali, di automazione, domotiche, bioingegneristiche, meccaniche, dell'ecologia, in particolare per elaborazione di segnali e immagini, identificazione, controllo, e diagnosi. 1. Modelli neurali: percettrone ad uno strato, percettrone multistrato, reti di funzioni a base radiale, reti ricorrenti, reti auto-organizzanti, memorie autoassociative, reti neuro-fuzzy.
2. Apprendimento: algoritmi supervisionati, algoritmi non supervisionati, clustering, entropia, analisi delle componenti principali, analisi delle componenti indipendenti.
3. Valutazione: generalizzazione, complessita', accuratezza, sensitivita', robustezza.
4. Architetture: circuiti analogici, circuiti digitali VLSI dedicati, realizzazioni su architetture
configurabili (FPGA), realizzazioni software dedicate su microprocessori avanzati e DSP, ambienti software configurabili.
5. Applicazioni: classificazione, elaborazione di segnale (estrazione di caratteristiche, classificazione, filtraggio non lineare), riconoscimento vocale, elaborazione di immagini (estrazione di caratteristiche, riconoscimento di pattern, filtraggio), visione, identificazione e controllo, diagnosi di sistemi complessi, predizione di serie temporali, fusione multisensoriale.


Algoritmi e strutture dati

Complessità computazionale e di memoria
· Strutture dati, realizzazione, e algoritmi di gestione per liste, stack, e code.
· Strutture dati, realizzazione, e algoritmi di gestione per alberi, alberi binari, alberi di ricerca, alberi 2-3, algoritmi di visita. · Strutture dati, realizzazione, e algoritmi di gestione per grafi, algoritmi di visita, spanning tree, cammini minimi.
· Strutture dati, realizzazione, e algoritmi di gestione per insiemi.
· Strutture dati, realizzazione, e algoritmi di gestione per tabelle di hashing
· Algoritmi di ordinamento: bubblesort, insertion sort, selection sort, quicksort, heapsort.
· Progettazione e analisi di algoritmi.
· Tecnica di divide et impera.
· Tecnica di backtrack.
· Tecniche greedy.
· Tecnica di programmazione dinamica.
· Tecnica di ricerca locale.
· Cenni sulle classi di complessità

Ricerca operativa

In aula:
1. Introduzione alla ricerca operativa:
Origini, applicazioni, relazioni con altre discipline.
Modelli, variabili, vincoli, funzioni obiettivo, decisori, dati.
2. Programmazione lineare
Definizioni, proprietà, teorema fondamentale della PL
Teorema della dualità in forma debole e in forma forte
Teorema degli scarti complementari.
Algoritmo del simplesso, del simplesso duale, del simplesso primale-duale.
Analisi postottimale.
3. Programmazione a molti obiettivi:
Soluzioni paretiane e regione Pareto-ottima
Metodi risolutivi.
4. Programmazione lineare intera e ottimizzazione combinatoria.
Modelli e cenni alle tecniche di soluzione.
Rilassamento lineare e altri rilassamenti.
Rassegna di comuni problemi NP-hard.
5. Programmazione non lineare:
Ottimizzazione in una e in più dimensioni.
Funzione Lagrangeana, condizioni del I e II ordine, moltiplicatori di Kuhn-Tucker.
Algoritmo del gradiente.
In laboratorio:
6. Addestramento all'uso di software per l'ottimizzazione.


Struttura ed amministrazione del sistema operativo linux

Il corso si propone di presentare la struttura e le funzionalita' del sistema operativo Linux.
In particolare verranno presentati i seguenti temi:
1-gestione del processore, scheduling
2-gestione della memoria virtuale
3-gestione dell'ingresso/uscita
4-file system
5-interface utenti (shell)
6-rete e servisi distribuiti
7-installazione e configurazione


Matlab

Il corso si propone di fare acquisire agli allievi le nozioni di base sull' uso dell'ambiente Matlab, con esempi di modellazione di sistemi e di elaborazione di segnali e immagini.