LAUREA IN INFORMATICA
L’Informatica è una disciplina che si occupa degli aspetti scientifici ed organizzativi
relativi alla memorizzazione, rappresentazione ed elaborazione dell’informazione.
Poiché l’utilizzo di strumenti informatici si è ormai diffuso in molti e svariati ambiti
sia scientifici che applicativi, lo spazio per lo sviluppo di nuove metodologie di analisi
e di progettazione di sistemi informatici è sempre più ampio, così come è più che mai
attuale l’individuazione di nuove aree applicative emergenti.
Tradizionalmente, l’attività di ricerca dell’informatico è stata quella della
progettazione, analisi e gestione di complessi sistemi informatici, con particolare
enfasi per le problematiche del software. L’informatica ha infatti giocato un ruolo
estremamente significativo nell’automazione gestionale ed amministrativa del settore
dei servizi (in particolare quelli bancari) e nella gestione e controllo di processi
industriali. Sebbene tali attività e settori di applicazione continuino ad avere il ruolo di
utenti privilegiati nei confronti dei sistemi informatici, nuovi orizzonti si stanno
aprendo sia per l’attività di ricerca e sviluppo che per le attività applicative. La
diffusione delle reti informative (ivi compreso il “fenomeno” Internet) ha inoltre
aperto nuove e stimolanti problematiche relative allo sviluppo di sistemi in cui gli
utenti possono fruire di servizi forniti tramite elaboratori che si trovano in luoghi
geograficamente lontani.
In quasi tutti i settori, l’impressionante ritmo di crescita della quantità di informazione
disponibile, il crescente livello di sofisticazione dei problemi affrontati, e
l’allargamento a macchia d’olio delle tipologie di utenti stanno ponendo nuove sfide
all’informatica odierna: da un lato, occorrono metodologie in grado di sfruttare
appieno una sempre maggiore potenza di calcolo, dall’altro, si richiede che i sistemi
informatici passino dal ruolo passivo di semplice memorizzazione ed esecuzione ad un
ruolo più attivo, in grado di offrire all’utente strumenti propositivi ed “intelligenti”. Di
conseguenza, anche il ruolo dell’informatico tende a mutare: la sua attività, pur
mantenendo una fisionomia autonoma, tenderà sempre più a configurarsi come una
delle componenti integrate di un progetto pluridisciplinare. Alcuni esempi di settori
emergenti sono riportati qui di seguito.
Reti Informative e Telecomunicazioni — L’integrazione tra metodologie
informatiche e tecnologie di telecomunicazione ha aperto la strada alla diffusione delle
reti informative, siano esse locali, nazionali o sovranazionali (per esempio Internet).
Questo fenomeno, che sta cambiando radicalmente il modo di comunicare personale
ed istituzionale, pone problemi informatici formidabili: dalla sicurezza delle
informazioni che transitano nelle reti all’autenticazione delle transazioni, dalla
progettazione di agenti intelligenti, che aiutino l’utente nel localizzare e scegliere le
informazioni, allo sviluppo di metodi automatici per la creazione di indici, per la
categorizzazione di argomenti e per l’estrazione automatica di informazioni da testi o
immagini.
Supporto alle Decisioni ed Intelligenza Artificiale — Nuove opportunità sono aperte
allo sviluppo di strumenti di supporto ad attività decisionali, di progetto ed analisi, che
non sono affrontabili in termini puramente algoritmici, ma richiedono adeguate
capacità sia di rappresentazione della conoscenza che di rielaborazione “intelligente”
della stessa.
Interazione Uomo-Macchina — L’uso crescente di strumenti informatici da parte di
utenti non informatici (ad esempio dovuto alla ampia diffusione di Internet) ha posto
in evidenza la necessità di nuove forme di interazione uomo -macchina e di strumenti
di programmazione utilizzabili anche da non esperti. Recenti progressi nello sviluppo
di interfacce grafiche e multimediali stanno aprendo nuove possibilità di applicazione
e coinvolgendo nuove fasce di utenza. In questo ambito si inquadra anche la
problematica della personalizzazione degli strumenti informatici.
Elaborazione Parallela — Alcuni settori tecnico-scientifici stanno affrontando
problemi la cui soluzione necessita di una grandissima potenza di elaborazione,
normalmente non ottenibile con sistemi tradizionali. A questo scopo, lo sviluppo di
calcolatori ad architettura parallela, l’utilizzo di reti di calcolatori (ad architettura
tradizionale) come piattaforma di esecuzione per applicazioni parallele/distribuite, la
progettazione di software in grado di gestire efficacemente sistemi di calcolo ad
elevato parallelismo sono aspetti di primaria importanza, non solo per la crescita del
settore informatico ma anche di numerose altre discipline.
Aree Multidisciplinari Emergenti — Negli ultimi anni si è affermata la necessità. in
molti settori scientifici e applicativi, di sviluppare metodologie informatiche mirate, in
grado di risolvere classi di problemi specifici, sfruttando in modo efficace conoscenze
proprie del settore. Come esempi, possiamo citare lo studio del DNA in Biologia
Molecolare, le tematiche relative alle biblioteche digitali, l’analisi del linguaggio
naturale per il trattamento automatico di testi, l’elaborazione automatica di attività
cognitive umane, la progettazione di metodologie di insegnamento innovative.
LA RICERCA IN INFORMATICA
Il conseguimento di risultati soddisfacenti nelle aree sopra menzionate è possibile solo
se si hanno a disposizione metodologie informatiche di nuova concezione. A questo
proposito rivestono notevole importanza lo sviluppo di nuovi linguaggi ed approcci
per la programmazione, la formalizzazione di modelli computazionali e la loro valutazione, il raggiungimento di progressi sostanziali nella rappresentazione di dati e
conoscenza e nei meccanismi di ragionamento, la progettazione di sistemi adattabili e
flessibili, dotati di capacità di apprendimento.
SBOCCHI PROFESSIONALI
Il nuovo Corso di Laurea forma specialisti nei diversi settori dell’Informatica, con
particolare riguardo alle figure di:
q Progettisti di sistemi informatici che operano presso enti ed aziende che utilizzano
le tecnologie dell’informazione nel loro settore specifico (aziende fornitrici di
servizi quali banche ed assicurazioni, industrie manifatturiere, etc.).
q Responsabili di servizi informatizzati in aziende ed enti pubblici e privati (centri
elaborazione dati — CED, Servizi Informativi, etc. …).
q Specialisti nell’area della progettazione e gestione di reti che trovano la loro
collocazione sia in aziende dotate di una “intranet” sia in società di consulenza in
questo settore.
q Progettista e gestore di servizi su Web
q Specialisti nell’area della progettazione software, che trovano la loro collocazione
presso le aziende costruttrici di software (software house).
q Ricercatori che possono operare sia nella ricerca di base che in quella applicata
presso Università, Enti di ricerca pubblici e privati, laboratori industriali di ricercasviluppo.
La Laurea in Informatica apre anche la strada all’insegnamento di materie
informatiche nelle scuole secondarie superiori e dà accesso a concorsi per posti di
tecnico di elaborazione dati presso la Pubblica Amministrazione.
Il Corso di Laurea in Informatica di Alessandria e di Novara, specificatamente, pone
un particolare accento sulle tematiche relative alle reti ed allo sviluppo di sistemi
informativi per il trattamento dell’informazione.
CORSO DI LAUREA IN INFORMATICA
Il nuovo corso di laurea in informatica ha durata triennale, in conformità con il nuovo
ordinamento universitario, ed è attivato presso le sedi di Alessandria e Novara.
Nell’A.A. 2001/2002 presso la sede di Novara saranno attivati i primi due anni del
nuovo corso di laurea.
L’organizzazione didattica consiste di un certo numero di moduli, ciascuno dei quali
permette di acquisire tra i due e i cinque Crediti Formativi Universitari (CFU). I
moduli previsti in ogni anno valgono complessivamente 60 CFU. Alcuni moduli sono
fra loro legati, nel senso che l’esito degli esami di questi moduli (solitamente uno di
teoria e uno di laboratorio sullo stesso argomento) viene riassunto in un unico voto sul
libretto: naturalmente in questo caso il numero di crediti ottenuti con la registrazione
del voto sarà uguale alla somma dei crediti dei moduli corrispondenti.
Nel terzo anno, 15 CFU sono a scelta dello studente, cioè lo studente può decidere di
acquisire tali crediti con corsi a sua scelta, eventualmente anche corsi offerti da altri
corsi di laurea, anche in altre facoltà (anche al di fuori dell’Ateneo). Si consiglia di
effettuare una scelta che permetta di completare le competenze informatiche già
acquis ite, scegliendo uno fra i tanti moduli complementari offerti dal corso di laurea.
Infine una parte dei crediti del terzo anno sono riservati allo svolgimento di uno stage,
normalmente svolto in una azienda, e alla stesura della tesi di laurea, una dissertazione
scritta in cui lo studente presenta i risultati di un lavoro teorico e/o sperimentale svolto
sotto la supervisione di un docente e collegato allo stage. Per l'ammissione all'esame di
laurea è necessario aver raggiunto 175 crediti.
Segue un piano di studi consigliato, che riporta i corsi offerti anno per anno. Nella
tabella per ciascun corso è specificato sulla destra il corrispondente numero di crediti
(CFU). Lo studente può scegliere di presentare un piano di studi libero diverso da
quello consigliato, ma in questo caso deve ottenere l’approvazione da parte del
Consiglio di Corso di Laurea.
I anno:
Algebra
Geometria
Analisi Matematica I
Architettura degli Elaboratori I
Architettura degli Elaboratori II e Laboratorio
Programmazione I e Laboratorio
Programmazione II
Fisica
Calcolo delle Probabilità
Economia aziendale o Sociologia del Lavoro
Lingua Straniera
II anno:
Analisi Matematica II
Algoritmi e Strutture Dati I
Algoritmi e Strutture Dati II e Laboratorio
Sistemi Operativi I e Laboratorio
Sistemi Operativi II
Basi di Dati e Sistemi Informativi I
Basi di Dati e Sistemi Informativi II
Basi di Dati e Sistemi Informativi: Sperimentazioni
Sistemi di Elaborazione: Reti di Calcolatori I
2 CFU
5 CFU
5 CFU
5 CFU
5 CFU+
5 CFU Lab
5 CFU+
5 CFU Lab
5 CFU
5 CFU
4 CFU
5 CFU
5 CFU
5 CFU
5 CFU
5CFU+
5CFULab
5CFU+
5CFU Lab
5 CFU
5 CFU
5 CFU
5 CFU
5 CFU
Statistica
4 CFU
III anno:
Laboratorio di informatica: Programmazione ad Oggetti
Ingegneria del Software
Intelligenza artificiale
Sistemi di Elaborazione: Reti di Calcolatori II e Laboratorio
Linguaggi di programmazione: Traduttori I
5 CFU
5 CFU
5 CFU
5 CFU+
5 CFU Lab
5 CFU
Nota.1: Il corso di Economia Aziendale (o quello di Sociologia del Lavoro) e’ in fase
di definizione. Tale corso dovra’ anche essere seguito dagli studenti iscritti al secondo
ano nell’a.a. 2001-2002 (non avendo tali studenti potuto frequentare tale corso al
primo anno).
Nota.2: Il corso di Statistica non verra’ attivato nell’a.a. 2001-2002 (sara’ attivato nel
2002-2003).
I restanti 29 crediti necessari per raggiungere i 180 crediti della laurea di primo livello
sono così distribuiti: 15 crediti di corsi a scelta, 9 crediti per lo stage, 5 crediti per la
preparazione della tesi di laurea.
I corsi a scelta possono essere liberamente indicati dallo studente che può decidere
eventualmente di sceglierli anche tra corsi offerti da altre facoltà. È consigliabile usare
questi 15 crediti per completare le competenze in informatica, scegliendo tre corsi da 5
crediti tra quelli riportati nel seguito. Non essendo attualmente attivato a Novara il
terzo anno della nuova Laurea, e’ possibile che tale elenco di corsi venga modificato
(e/o ampliato) il prossimo anno.
Intelligenza artificiale: Analisi dati intelligente
Linguaggi di Programmazione: Linguaggi per il Web
Linguaggi di Programmazione: Servizi Web
Sistemi di Elaborazione: Sicurezza degli Elaboratori
Sistemi di Elaborazione: Simulazione
Ricerca operativa
5 CFU
5 CFU
5 CFU
5 CFU
5 CFU
5 CFU
CORSI ATTIVATI NELL’A.A. 2001-2002
E SUDDIVISIONE IN TRIMESTRI
Nell’a.a. 2001-2002 verranno attivati a Novara il primo ed il secondo
anno del nuovo corso di Laurea in Informatica. I corsi saranno
organizzati in trimestri secondo il seguente dettaglio:
I ANNO
1º Trimestre
2º Trimestre
Analisi Matem I
5
Fisica
5
Algebra
2
Geometria (M)
5
5
Architettura degli
Elaboratori – I
Programmazione
II
5
Programmazione I
3º Trimestre
Architettura degli
Elaboratori – II
Lab. di Informatica:
Architettura degli Elaboratori
(FAUSER)
Calcolo delle
Probabilità
Lingua straniera
5
5
4
Lab. di
5
5
5
Informatica:
Programmazione
* E’ previsto al primo anno anche un corso di 5 crediti (40 ore circa) di sociologia
del lavoro o economia aziendale, ancora in fase di definizione
II ANNO
1º Trimestre
2º Trimestre
Basi di Dati e Sistemi
Informativi I :
Sperimentazioni
3º Trimestre
Analisi Matem. II
5
Sistemi Operativi I
5
Lab. di
Informatica:
Sistemi Operativi
Basi di Dati e
Sistemi Informativi
- I : Fondamenti
5
Sistemi Operativi II
5
5
Basi di Dati e
Sistemi Informativi
II
5
Algoritmi e Strutture
Dati - I
5
5
Algoritmi e Strutture
Dati II
Lab. di
Informatica:
Algoritmi e
Strutture Dati
Sistemi di
Elaborazione:
Reti di Calcolatori I
* E’ previsto al secondo anno anche un corso di 40 ore circa di sociologia del lavoro o
economia aziendale, ancora in fase di definizione
STAGE E TESI DI LAUREA
5
5
5
Il nuovo corso di laurea prevede che nel terzo anno l’ultimo trimestre sia dedicato ad
uno stage, da svolgere preferibilmente in una azienda che abbia stipulato una
convenzione con l’università a questo scopo. È comunque possibile svolgere lo stage
anche all’interno della struttura universitaria. Al termine dello stage lo studente
prepara una dissertazione scritta sugli argomenti affrontati durante lo svolgimento
dello stage ed eventualmente approfonditi secondo le indicazioni del relatore. Relatore
della tesi può essere qualunque docente ufficiale di un corso offerto dal Corso di
Laurea in Informatica.
In generale la scelta dell'argomento della tesi viene concordato con il relatore quando
lo studente inizia il terzo anno. Si consiglia agli studenti di affrontare la scelta e lo
svolgimento della tesi solo dopo aver sostenuto con successo la maggior parte degli
esami.
In generale la scelta dell'argomento della tesi viene concordato con il relatore quando
lo studente inizia il terzo anno. Si consiglia agli studenti di affrontare la scelta e lo
svolgimento della tesi solo dopo aver sostenuto con successo la maggior parte degli
esami.
AVVERTENZE
Non esiste ovviamente alcuna ricetta che garantisca il successo negli studi di
Informatica (come di qualunque altro corso di laurea). Tuttavia vale la pena di
sottolineare che il Corso di Laurea in Informatica (cosí come altri corsi di laurea
tecnico-sceintifici) richiede attitudini e interesse per il settore fisico-matematico.
Inoltre, il corso di laurea richiede capacità di analisi e organizzazione logica, nonché
interesse verso gli aspetti progettuali e realizzativi. Infatti la componente sperimentale
volta a sviluppare le capacità di analisi e decomposizione di problemi, di progettazione
di una sistema software in grado di risolvere un problema, e l'implementazione e la
verifica di tale sistema, svolgono un ruolo importante nel corso di laurea; queste
attività, in molti casi svolte all'interno dei laboratori, richiedono un notevole
impegno di tempo.
L'ordine dei corsi all'interno dei diversi anni di corso è stato studiato in mo do da
fornire una visione organica del settore. Tale visione può essere gravemente
compromessa se gli studenti non si mantengono al passo con gli esami e i corsi. Al
fine di ridurre il piú possibile questa evenienza, è bene seguire con attenzione corsi e
laboratori sin dal primo giorno di lezione, acquisendo e approfondendo le nozioni
man mano che queste vengono introdotte nei corsi.
Una precedente esperienza di uso dei calcolatori e/o conoscenza di linguaggi di
programmazione non è necessaria per affrontare il corso di laurea, anche se può
facilitare l'attività sperimentale in laboratorio nei primi mesi. Risulta invece
indispensabile per lo studente la capacità di leggere testi tecnici in lingua inglese,
visto che gran parte del materiale didattico (e la quasi totalità dei manuali) è in lingua
inglese.
AGGIORNAMENTI ALLA GUIDA DELLO STUDENTE
Una versione aggiornata della Guida dello Studente (contenente informazioni relative
sia alla sede di Alessandria che di Novara) sarà sempre disponibile su Internet alla
URL
http://www.mfn.unipmn.it/~informat
PROGRAMMA DEI CORSI
ALGEBRA (2 CFU)
Sede di Novara: Prof. R. Catenacci – I anno, I trimestre
Lo scopo del corso è quello di far acquisire agli studenti il linguaggio e i concetti
dell'algebra necessari per proseguire gli studi, partendo dalla revisione,
l'approfondimento e l'inquadramento dei contenuti studiati nella scuola secondaria per
arrivare alle nozioni astratte dell'algebra.
Modalità d'esame: sono previste una prova scritta e una orale. La prova scritta può
essere sostituita dalle prove intermedie svolte durante il periodo delle lezioni.
Richiami di insiemistica, numeri complessi e polinomi; elementi di calcolo
combinatorio.
Libro di testo:
saranno distribuiti appunti del docente.
ALGORITMI E STRUTTURE DATI I (5 CFU)
Sede di Novara: Prof. P. Terenziani – II anno, II trimestre
Teoria dei limiti e crescita asintotica delle funzioni. Notazione O(f(n)). Equazioni di
ricorrenza.
Algoritmi numerici elementari: algoritmo di Euclide per il calcolo del MCD, algoritmo
di Eratostene per la generazione dei numeri primi, algoritmo ricorsivo per il prodotto
di polinomi. Algoritmi di "pattern matching" su stringhe.
Strutture dati elementari: pile e code. Alberi binari di ricerca. Alberi binari bilanciati.
Testo consigliato:
T.H. Cormen, C.E. Leiserson, R.L. Rivest, "Introduzione agli algoritmi",
Seconda edizione, Jackson libri, Milano 1999.
Propedeuticità:
Prima di affrontare questo corso gli studenti devono avere seguito i corsi di
Programmazione I e Programmazione II.
ALGORITMI E STRUTTURE DATI II (5 CFU)
E LABORATORIO (5CFU)
Sede di Novara: Prof. L. Giordano, II anno, III trimestre
Argomenti trattati:
Algoritmi su grafi:
q rappresentazione di grafi,
q visite in ampiezza e profondita’,
q ordinamento topologico,
q alberi di copertura minima,
q calcolo di cammini minimi
q applicazioni grafi
Programmazione Dinamica:
q elementi di base di programmazione dinamica
q esempi di algoritmi (prodotto di matrici, parentizzazione ottimale, ecc…)
Testo consigliato:
T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introduction to Algorithms, MIT Press,
1990 (versione italiana, volume 2, Jackson Libri).
Laboratorio
Sede di Novara: Prof. L. Giordano, II anno, III trimestre
Scopo del corso: Il corso ha l'obiettivo di familiarizzare lo studente con
l’implementazione pratica di algoritmi e strutture dati. Dopo aver ripreso le nozioni di
analisi degli algoritmi, il corso illustrerà alcune strutture dati fondamentali e la loro
implementazione in linguaggio C. Si darà anche un cenno sulle tecniche generali di
progettazione degli algoritmi. Tutte le lezioni saranno accompagnate da esercitazioni
in laboratorio.
Argomenti trattati:
Tipi di dati astratti: Liste, Alberi, Grafi orientati e non orientati: Definizioni di base,
Metodi di rappresentazione, Operazioni.
Insiemi e dizionari: Definizioni e operazioni di base, implementazioni semplici (liste,
hash table e code di priorità) e avanzate (alberi 2-3). Cenni sugli MF-Set.
Tecniche di progettazione (classi di algoritmi): Divide-et-Impera, Programmazione
dinamica, Algoritmi Greedy.
ANALISI MATEMATICA I (5 CFU)
Sede di Novara: Dott. G. Arioli, I anno, I trimestre
Il corso si compone di lezioni teoriche e di esercitazioni pratiche svolte dal docente.
L'esame consta di una prova scritta e di una orale. Gli argomenti affrontati sono i
seguenti.
Funzioni reali di variabile reale: terminologia, operazioni e loro effetto sui grafici,
composizione; funzioni inverse ed esempi relativi.
Limite di una funzione reale di variabile reale; limite destro e sinistro; limite infinito.
Limiti e operazioni algebriche; teoremi di permanenza del segno e dei due carabinieri.
Funzioni continue; continuità e operazioni algebriche; continuità e composizione;
continuità della funzione inversa; continuità delle funzioni trigonometriche e delle loro
inverse; continuità di esponenziale e logaritmo. Teoremi di Weierstrass e dei valori
intermedi.
Derivazione; continuità delle funzioni derivabili. Derivate e operazioni algebriche;
derivata della funzione composta e della funzione inversa; derivate successive.
Antiderivata e integrale indefinito. Derivazione delle funzioni trigonometriche,
esponenziali e loro inverse.
Teorema del valor medio e sue conseguenze: molteplicità delle antiderivate; legami tra
monotonia e segno della derivata. Estremi assoluti e relativi. Concavità e punti di
flesso. Applicazioni alla determinazione del grafico di una funzione.
Formula di Taylor con resto di Lagrange.
Forme indeterminate e teoremi di de l'Hôpital; infinitesimi e infiniti.
Integrazione secondo Riemann (solo per funzioni continue); interpretazione
geometrica. Linearità e monotonia dell'integrale; additività sull'intervallo. Teorema
della media integrale. Integrabilità delle funzioni continue a tratti. Teorema
fondamentale del calcolo integrale; formule di integrazione per sostituzione e per parti;
integrazione delle funzioni razionali fratte.
Cenni su equazioni differenziali: a variabili separabili, lineari del primo ordine, lineari
del second’ordine a coefficienti costanti.
Testo consigliato:
Robert A. Adams: Calcolo differenziale 1. Casa Editrice Ambrosiana, Milano
Bramanti, Pagani, Salsa: Matematica, calcolo infinitesimale e algebra lineare. Ed.
Zanichelli
Prerequisiti
Si richiede che, all'inizio del corso di Analisi Matematica I, lo studente abbia una
buona padronanza dei seguenti argomenti: in particolare, conosca il significato degli
strumenti usati e i principali risultati relativi, infine sappia applicarli in esercizi
concreti. Gli argomenti indicati sono svolti con dettaglio e con dovizia di esercizi sui
testi di Matematica per i Licei Scientifici; può essere utilizzato anche il testo
seguente: P. Boieri, G. Chiti Precorso di Matematica Ed. Zanichelli. A fine settembre
2001, presso la Facoltà, sarà tenuto un corso di recupero sugli stessi argomenti: per i
dettagli, si rimanda alla pagina web della Facoltà.
1.Numeri naturali, interi, razionali, reali, in particolare per quanto riguarda le
operazioni e l'ordinamento; valore assoluto. Il problema della completezza (postulato
di continuità) nei numeri razionali e nei numeri reali.
2.Geometria euclidea del piano: in particolare, i criteri di uguaglianza e di similitudine
dei triangoli, il teorema di Pitagora, le proprietà elementari dei poligoni e dei cerchi.
Corrispondenza tra i numeri reali e i punti di una retta; intervalli, semirette; piano
cartesiano; distanza tra due punti nel piano. Luoghi geometrici elementari di R2 : retta
(condizioni di parallelismo e di perpendicolarità), circonferenza.
3.Potenze con esponente naturale, proprietà delle potenze; polinomi: divisibilità,
radici, fattorizzazione; il problema dell'esistenza di radici in campo reale; radici nesime.
4.Potenze con esponente razionale o reale; funzione esponenziale e sue principali
proprietà. Logaritmo e sue principali proprietà.
5.Funzioni reali di variabile reale: dominio, codominio, grafico; operazioni algebriche
(somma, prodotto, differenza, quoziente) su funzioni e loro effetto sui grafici;
intersezioni tra grafici e loro significato algebrico; grafico della funzione valore
assoluto. Iperbole equilatera e parabola y=ax2 +bx+c.
6.Equazioni e disequazioni di primo e di secondo grado; sistemi di equazioni e di
disequazioni.
7.Equazioni e disequazioni irrazionali; con esponenziali, logaritmi e valore assoluto.
8.Trigonometria: misura in radianti di un angolo; identità e relazioni fondamentali,
angoli notevoli; grafici di seno, coseno, tangente; equazioni e disequazioni con
funzioni trigonometriche.
ANALISI MATEMATICA II (5 CFU)
Sede di Novara: Dott. G. Arioli, II anno, I trimestre
Il corso si compone di lezioni teoriche e di esercitazioni pratiche svolte dal docente.
L'esame consta di una prova scritta ed eventualmente di una prova orale.
Gli argomenti affrontati sono i seguenti:
Funzioni di più variabili e loro rappresentazione grafica.
Continuità e limite in più variabili.
Derivate parziali e direzionali.
Massimi e minimi relativi liberi.
Estremi vincolati: metodo dei moltiplicatori di Lagrange.
Integrazione secondo Riemann (solo per funzioni continue); interpretazione
geometrica. Linearità e monotonia dell'integrale; additività sull'intervallo. Teorema
della media integrale. Integrabilità delle funzioni continue a tratti. Teorema
fondamentale del calcolo integrale; formule di integrazione per sostituzione e per parti;
integrazione delle funzioni razionali fratte.
Misura di un insieme e integrazione.
Domini normali e formula di riduzione degli integrali multipli.
Cambiamento di variabile negli integrali multipli: coordinate polari in R2 .
Coordinate sferiche e cilindriche in R3 .
Testo consigliato:
Bramanti, Pagani, Salsa: Matematica, calcolo infinitesimale e algebra lineare. Ed.
Zanichelli
ARCHITETTURA DEGLI ELABORATORI I (5 CFU)
Sede di Novara: Prof. A. Bobbio, I anno II trimestre
Il corso ha lo scopo di fornire allo studente una prima descrizione dell'architettura di
un moderno sistema di elaborazione e delle sue principali componenti hardware e
software. L'approccio seguito è quello della scomposizione della macchina in diversi
livelli: livello della logica circuitale, livello della microprogrammazione, livello della
macchina convenzionale, livello del sistema operativo. Verra` affrontato lo studio di
ciascun livello separatamente, e le problematiche relative all'interazione fra i livelli.
Poiché il funzionamento dei sistemi di elaborazione si basa sulla manipolazione di
segnali logici binari, verrà preliminarmente affrontato lo studio della rappresentazione
binaria dei numeri e dell'informazione, dell'aritmetica binaria e della logica binaria
(numeri in virgola mobile, codici ridondanti). Verrà trattato lo studio di funzioni
logiche binarie con applicazioni a reti combinatorie e sequenziali.
Argomenti trattati:
Cenni sull'evoluzione storica dei sistemi di elaborazione. Scomposizione della
macchina in livelli. Descrizione di un elaboratore e delle sue principali componenti.
Cenni sui dispositivi periferici.
Rappresentazione binaria dell'informazione. Numeri binari e aritmetica binaria.
Codifica di caratteri. Funzioni logiche binarie. Porte e circuiti digitali. Organizzazione
circuitale di ALU e Memorie. Organizzazione e interazione CPU memoria.
Testo di Riferimento
Tanenbaum: "Architettura del Computer: un approccio strutturale", IV Edizione, Utet
Universita’, 2000.
Testo di approfondimento
Luccio, Pagli: "Reti Logiche e Calcolatori", Bollati-Boringhieri.
ARCHITETTURA DEGLI ELAB. II (5 CFU) E LABORATORIO (5 CFU)
Sede di Novara: Prof. G. Franceschinis, I anno, III trimestre
Questo corso può essere visto come la naturale continuazione e l'approfondimento di
alcuni concetti visti nel corso di "Architetture degli Elaboratori I" la cui conoscenza è
necessaria per la comprensione degli argomenti sviluppati.
Scopo del corso è approfondire alcuni aspetti dell'architettura di un elaboratore con
particolare attenzione a come una istruzione della macchina a livello convenzionale
viene eseguita dai circuiti, e alle diverse linee di tendenza che si sono sviluppate per
quanto concerne tipi di istruzione e modalità di indirizzamento.
La parte sperimentale collegata a questo corso verrà svolta nel laboratorio di
architettura degli elaboratori. Le due unità didattiche (corso di Architetture II +
laboratorio) daranno origine ad un unico voto.
Argomenti trattati:
La CPU e il linguaggio macchina convenzionale. Il linguaggio della macchina
convenzionale, e sua interpretazione in una CPU microprogrammata. Gestione dello
stack per l'attivazione di procedure. Evoluzione dell’architettura di una CPU: memoria
cache e pipeline.
Il livello della macchina convenzionale e i modi di indirizzamento. La gerarchia della
memoria: organizzazione della memoria gerarchica e interazione fra i vari livelli della
gerarchia. Organizzazione delle cache. Gestione dell'I/O: il meccanismo di
interruzione. Linee di tendenze che si sono sviluppate per quanto concerne tipi di
istruzione, modalità di indirizzamento, architettura generale della CPU.
Testo di Riferimento
Tanenbaum: "Architettura del Computer: un approccio strutturale", IV Edizione, Utet
Universita’, 2000.
Laboratorio
Sede di Novara: Prof. G. Franceschinis, I anno, III trimestre
Il corso di laboratorio ha lo scopo di analizzare dal punto di vista sperimentale alcune
delle problematiche di architettura degli elaboratori viste nei due corsi di tale nome.
Verrà ripresa l’architettura del processore Mic1, introdotta durante le lezioni di
Architettura degli Elaboratori II, con particolare riferimento al funzionamento del
datapath, alla gestione della memoria, e all’utilizzo dello stack. Allo studente sarà
fornito uno strumento software che simula il funzionamento del processore Mic1. Su
tale simulatore lo studente potrà testare alcuni programmi, realizzati durante il corso
(essendo un corso di laboratorio, una parte significativa sarà svolta utilizzando le
risorse di calcolo del Laboratorio Informatico). In particolare lo studente apprenderà 2
linguaggi assembler: IJVM e MAL; il linguaggio MAL verrà utilizzato anche come
strumento per implementare nuove istruzioni IJVM, microprogrammandole per il
processore Mic1. Infine, saranno introdotti i concetti di traduzione (e in particolare di
assemblaggio), linking, loading e binding. Lo studente dovrà allocare un congruo
tempo (al di fuori delle ore del corso di laboratorio) per acquisire padronanza nella
programmazione, e quindi per lo sviluppo di un progetto, da realizzare utilizzando i
linguaggi IJVM e MAL.
La conoscenza delle nozioni introdotte nei due moduli di Architettura degli Elaboratori
è necessaria per la comprensione delle nozioni introdotte nel laboratorio e per l'attività
sperimentale.
BASI DI DATI E SISTEMI INFORMATIVI I : Fondamenti (5 CFU)
Sede di Novara: Prof. L. Saitta, II anno, I trimestre
Finalita’ del corso: obiettivo del corso e’ quello di fornire gli strumenti metodologici e
formali per derivare le strutture logiche e fisiche di una base di dati relazionale a
partire dai requisiti del sistema informatico espressi dagli utenti.
Argomenti trattati: Dei tre principali modelli dei dati (relazionale, reticolare e
gerarchico) adottati dai sistemi di gestione delle basi di dati (DBMS) viene
approfondito il modello relazionale, in particolare sono presentati gli aspetti teorici di
tale modello e lo standard SQL (formalismi algebrici e logici di definizione dei dati,
linguaggi di interrogazione e di specifica dei vincoli di integrita’ dei dati). Le strutture
logiche di una base di dati sono progettate con modelli semantici ed analizzate alla
luce di opportune forme normali le cui proprieta' sono derivate dalla teoria delle
dipendenze.
Le prestazioni delle applicazioni che fanno uso di un sistema di gestione di una base di
dati sono influenzate dalle strutture fisiche di memorizzazione delle informazioni e dai
cammini di accesso previsti dal progettista della base di dati. La scelta di tali strutture
richiede una adeguata conoscenza dell'architettura di un DBMS che viene presentata
succintamente seguendo lo schema di descrizione generale a tre livelli di astrazione:
esterno, logico e fisico.
Il corso è abbinato a quello di sperimentazioni. Nel corso di sperimentazione si
utilizzeranno strumenti per la progettazione e lo sviluppo di basi di dati.
Testo di riferimento
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone "Basi di Dati: concetti, linguaggi, e
architetture", McGraw Hill Italia - 1996.
Testi complementari:
E.Bertino, B.Catania, E.Ferrari, G.Guerrini: "Sistemi di basi di dati", Città Studi
Edizioni.
Elmasri, Navathe "Fundamentals of Database Systems", Addison Wesley - 1994.
BASI DI DATI E SISTEMI INFORMATIVI: Sperimentazioni (5 CFU)
Sede di Novara: Prof. L. Saitta, II anno, II trimestre
Progettazione Concettuale:
modello Entity-Relationships esteso
metodologie di progettazione
traduzione verso modello relazionale
utilizzo di strumenti CASE per la progettazione di una base dati
Linguaggio SQL:
introduzione
costrutti di base
operatori di base
-
costruzione di vincoli in SQL
Il corso prevede una serie di esercitazioni pratiche con sistemi relazionali di gestione
di basi di dati.
BASI DI DATI E SISTEMI INFORMATIVI II (5 CFU)
Sede di Novara: Prof. S. Montani, II anno, II trimestre
Finalita' del corso: obiettivo del corso e' lo studio degli aspetti architetturali dei
sistemi di gestione delle basi di dati (DBMS) e l'analisi delle strutture dati e degli
algoritmi connessi messe a punto per gestire le varie funzionalita' di questi sistemi.
Anche se il modello logico dei dati a cui si fara' prevalentemente riferimento sara' il
modello relazionale, la trattazione avra' carattere generale per poter trasporre gli
argomenti di studio anche ai sistemi basati su altri modelli quale il mo dello a oggetti.
Argomenti trattati: Si richiama l'architettura di un DBMS seguendo lo schema di
descrizione generale a tre livelli di astrazione: esterno, logico e fisico con la
definizione delle funzionalita' di tali sistemi.
In particolare vengono trattati i seguenti temi: organizzazione fisica degli archivi e
metodi di accesso ad indici, hash e misti; tecniche di ottimizzazione delle
interrogazioni; nozione di transazione, sue proprieta' e loro ciclo di vita; gestione della
concorrenza per sistemi centralizzati di basi di dati con molti utenti; sistemi di
ripristino dell'integrita’ dei dati in seguito a guasti o anomalie di funzionamento degli
apparati hardware-software.
Il corso e’ completato da cenni alle basi di dati distribuite
Modalita’ d'esame: esame scritto
Testo di riferimento:
A.Albano: "Costruire Sistemi per Basi di Dati", 2000, Addison-Wesley.
Testi complementari:
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone "Basi di Dati: concetti, linguaggi, e
architetture", McGraw Hill Italia - 1996.
E.Bertino, B.Catania, E.Ferrari, G.Guerrini: "Sistemi di basi di dati", Città Studi
Edizioni.
CALCOLO DELLE PROBABILITÀ (4 CFU)
Sede di Novara: Prof. M. De Giosa, I anno, III trimestre
Si veda il programma del corso di Probabilità 1 e Laboratorio del Corso di laurea in
Matematica.
FISICA (5 CFU)
Sede di Novara: Prof. L. Fava, I anno, II trimestre
Finalita' del corso : illustrare la metodologia della scienza galileiana
fornendo una base culturale ampia e aperta a successivi aggiornamenti.
Argomenti trattati:
Meccanica
Grandezze fisiche. Unità di misura. Errori. Moti in 1 e 2 dimensioni. Esempi: moto
uniforme, uniformemente accelerato, parabolico, circolare. Dinamica (I e II legge di
Newton). Studio di moti; moto armonico, armonico smorzato, circolare. Lavoro,
energia cinetica, potenza. Forze conservative, energia potenziale, esempi (1
dimensione). Conservazione dell'energia meccanica. Forza gravitazionale, energia
gravitazionale. Urti, conservazione del momento lineare. Cinematica rotazionale.
Dinamica rotazionale. Conservazione del momento lineare. Fluidi. Idrostatica.
Idrodinamica: equazioni di continuità, di Bernoulli. Viscosità.
Meccanica - Complementi
Moto di una particella in 3 dimensioni. Forze conservative (F =-grad U). Momento
angolare e campo di forze centrali. Campo e potenziale gravitazionale. Oscillatori
(armonico semplice, smorzato, forzato, accoppiati). Moti relativi. Cinematica
relativistica Relatività galileiana. Cenni alla dinamica di sistemi di particelle e alla
dinamica del corpo rigido..
Oscillazioni e Onde
Onde nei mezzi elastici. Onde sonore. Onde elettromagnetiche. Interferenza delle
onde. Energia delle onde. Cenni all'equazione delle onde e alle sua soluzioni.
Termodinamica
Stato termodinamico. Equilibrio termico. Temperatura. Variabili di stato. Esempio: il
gas ideale. Equilibrio termodinamico. Energia interna. I1 I principio della
Termodinamica. Gas ideali. Applicazioni del I Principio. Teoria cinetica dei gas ideali.
I1 II Principio della Termodinamica. Entropia. Applicazioni del II Principio. Potenziali
termodinamici.
Elettricita' e magnetismo
Carica elettrica - Legge di Coulomb - Campo elettrico E – Potenziale elettrico Legge
di Gauss per E - Condensatori, energia elettrostatica in termini di Q,V,C - Corrente
elettrica e circuiti elettrici- Campo magnetico B - Legge di Biot-Savart Forza
magnetica - Legge di Ampere - Legge di Gauss per B - Moto di particelle cariche sotto
l'azione di E e B -Induzione elettromagnetica - Applicazioni - Autoinduzione, energia
magnetica in termini di L, M, I- Cicuiti RC, RL, RLC - Circuiti in corrente alternata I1 campo elettrico nella materia: dielettrici - I1 campo magnetico nella materia:
paramagnetismo, diamagnetismo, ferromagnetismo.
Tesi consigliati:
M. Alonso, E.J. Finn: "Elementi di Fisica per l'Università", Vol. I, Ed. Masson,
Milano.
C. Mencuccini, V. Silvestrini: "Fisica I", Liguori Editore, Napoli.
R. Resnick, D. Halliday: "Fisica" Vol. I, Ed. Casa Editrice Ambrosiana, Milano.
P. Mazzoldi, M. Nigro, C. Voci "Fisica", Vol. I, Ed. EdiSES, Napoli.
D. Halliday, R. Resnick: "Fisica" Vol. II, Ed. Casa Editrice Ambrosiana,
Milano.
R. Feynman, The Feynman lectures on physics/La fisica di Feynman, vol. I e
II, Addison-Wesley, Londra
Prerequisiti : i corsi di Analisi Matematica I, Analisi Matematica II,
Geometria.
Modalita' di esame : il superamento dell'esame scritto e' prerequisito per
l'ammissione all'esame finale orale.
GEOMETRIA (5 CFU)
Sede di Novara: Prof. R. Catenacci, I anno, II trimestre
Spazi vettoriali reali e
stessi, piani e rette nel
Applicazioni lineari e
immagine, cambiamenti
complessi, generatori e basi, sottospazi e operazioni tra gli
piano e nello spazio, prodotto scalare e prodotto hermitiano.
matrici associate, determinante, rango e traccia, nucleo e
di base. Teoria dei sistemi lineari. Alcune classi notevoli di
matrici e loro proprietà Autovalori e autovettori, diagonalizzazione delle matrici
simmetriche e hermitiane, polinomio caratteristico, teorema di Cayley-Hamilton e sue
applicazioni. Sono previste le dispense.
LINGUA STRANIERA: INGLESE (5 CFU)
Sede di Novara: Sandra Della Chiara– I anno, III trimestre
Il corso ha come obiettivo principale quello di creare una base linguistica generale e di
proporre un primo approccio alla comprensione di un testo scritto specializzato
proponendo tecniche di lettura di testi specializzati in inglese allo scopo di facilitare lo
studio sui testi originali.
Una prova scritta di livello è prevista all'inizio di ogni anno accademico per poter
consigliare il livello di corso più adatto ad ogni candidato. Testi Consigliati:
1) "English Grammar Practice for Italian Students" with Key. Michael Vince and Lelio
Pallini. Heinemann LeMonnier, 1999
2) Un dizionario, vedere la bacheca dell'Istituto dopo l'inizio dei corsi.
3) Titolo del testo da definire - consultare la bacheca dell'Istituto dopo l'inizio dei
corsi.
PROGRAMMAZIONE I (5 CFU) E LABORATORIO (5CFU)
Sede di Novara: Prof. L. Saitta – I anno, I trimestre
Scopo del corso: Il corso ha lo scopo di introdurre i fondamenti della programmazione
dei calcolatori elettronici, partendo dal concetto di algoritmo e dalla descrizione delle
componenti basilari di un programma per il calcolo automatico, per arrivare a concetti
avanzati di strutture dati e di controllo dei linguaggi di programmazione. Questi
concetti saranno applicati in alcuni algoritmi fondamentali.
Il laboratorio associato ha lo scopo di familiarizzare lo studente, soprattutto mediante
esercitazioni pratiche, sia con gli ambienti di programmazione, sia con le
caratteristiche fondamentali dei linguaggi di programmazione imperativi. Verrà messo
l'accento sull'importanza di costruire programmi mediante metodologie ragionate, e
sull'effetto che la scelta di opportune strutture dati e di controllo ha sull'efficienza e la
comprensibilità del programma ottenuto.
Programma: Concetto di algoritmo. Input/Output. Linguaggi di programmazione
(sintassi e semantica). Tipi elementari. "Scope" delle variabili. Costrutti di controllo.
Funzioni e passaggio di parametri. Vettori e matrici. Interazione con il sistema
operativo.
Cenni alla complessità computazionale di un algoritmo.
Algoritmi di ricerca e ordinamento.
Il linguaggi di programmazione C. Tipi elementari, ed arrays. Istruzioni ed espressioni.
Costrutti di controllo. Funzioni, e regole di “scope” delle variabili. Un modello di
valutazione dei programmi C.
Laboratorio
Sede di Novara: Prof. L. Saitta I anno, I trimestre
Introduzione all'ambiente: elementi del sistema operativo Unix, editor, compilatore e
debugger. Tipi elementari e sintassi del Pascal. Metodi di decomposizione di un
problema, scelta delle strutture dati e delle strutture di controllo. Osservazioni sull'
efficienza, sulla comprensibilità e sulla facilità di debugging e di modifica di un
programma.
Modalità d'esame: Il laboratorio é legato alla prima unità didattica.
Testi consigliatiç
Dispense del corso (disponibili su Web).
Wirth, "Principi di programmazione strutturata", ISEDI.
B.W. Kernighan, R.D. Ritchie, "Linguaggio C, II edizione (ANSI C)", Jackson Libri.
PROGRAMMAZIONE II (5 CFU)
Sede di Novara: Prof. P. Terenziani, I anno, II trimestre
Scopo del corso : Il corso ha lo scopo di proporre alcuni fondamenti della
programmazione dei calcolatori elettronici, introducendo concetti quali strutture dati
dinamiche e ricorsione.
Nel corso verranno sviluppati molti esempi di algoritmi, in modo da familiarizzare gli
studenti con le tecniche di base della programmazione.
Argomenti trattati : Tipi di dati strutturati. Tipi di dati dinamici (ricorsivi): le liste.
Implementazione di liste mediante puntatori. Funzioni ricorsive. Tipi di ricorsione e
conversioni. Algoritmi di ricerca e di ordinamento. Il linguaggio di programmazione
adottato nel corso e’ il linguaggio C.
Modalità d'esame : l'esame prevede una prova scritta (orale facoltativo).
Testi Consigliati:
Dispense del corso (disponibili presso il docente).
"Data Structures and Program Design in C", Robert L. Cruse, Clovis L. Tondo, Bruce
P. Leung, II edizione, Prentice Hall International Editions.
SISTEMI DI ELABORAZIONE: RETI DI CALCOLATORI I
Sede di Novara: Prof. C. Anglano, II anno, III trimestre
1) Introduzione alle reti di calcolatori
2) Meccanismi per la trasmissione dati a livello fisico (trasmissione analogica e
digitale, codifica dei dati tramite segnali);
3) Controllo Data Link (controllo di flusso e degli errori)
4) Multiplexing
5) Reti Locali cablate e wireless
6) Cenni su reti geografiche: commutazione di circuito e di pacchetto; Frame Relay,
ATM
7) Collegamenti "Small Office Home Office": ISDN ed ADSL
Testo di riferimento:
W. Stallings: Data and Computer Communications, VI edizione, Prentice Hall.
Testi di consultazione:
W. Stallings: Local and Metropolitan Area Networks, VI edizione, Prentice Hall.
SISTEMI OPERATIVI I (5 CFU) E LABORATORIO (5 CFU)
Sede di Novara: Dott. M. Furini, II anno, I trimestre
Finalità del corso: Il corso di Sistemi Operativi I ha lo scopo di fornire le nozioni
fondamentali sull'architettura del sistema operativo di un elaboratore multiutente in
isolamento (non in rete). Al corso è associato quello di Laboratorio di Informatica:
Sistemi Operativi.
Argomenti trattati:
Vengono affrontati i seguenti argomenti principali:
- organizzazione del kernel
- gestione dei processi
- elementi di programmazione concorrente
- gestione della memoria
- gestione delle periferiche
- file system e tecniche di protezione
- tecniche di rilevamento e prevenzione dello stallo
- elementi di programmazione concorrente
Esempi di soluzioni reali verranno tratti dai sistemi operativi correnti (Unix,
Windows).
Modalità di esame: (per il corso di Alessandria) La valutazione finale delle nozioni
acquisite avviene tramite un esame scritto (nei primi due appelli successivi al corso) o
orale (nei rimanenti appelli).
Prerequisiti: Si consiglia di seguire il corso solo dopo aver seguito i due corsi di
Architettura degli Elaboratori I e II. Si consiglia caldamente di non trascurare il
Laboratorio o il corso teorico ma di seguirli attivamente entrambi poiché sono stati
progettati insieme per facilitare la comprensione della materia (dalla teoria alla pratica
e viceversa).
Testo consigliato
Tanenbaum: "Sistemi Operativi Moderni", Ed. Jackson
.
Testo di approfondimento:
A. Silberschatz, P.B. Galvin: "Operating System Concepts", V ed., Addison-Wesley
1998.
Laboratorio
Sede di Novara: Prof. M. Furini, II anno, I trimestre
Finalità del corso: Il corso ha lo scopo di illustrare in un sistema reale molte delle
nozioni generali del corso di Sistemi Operativi I e di introdurre l'ambiente di
programmazione del sistema operativo Unix, in particolare per quanto riguarda le
chiamate di sistema (system call).
Argomenti trattati: Richiami sull'ambiente di programmazione in Unix: comandi,
funzioni di libreria, manuale on-line, compilazione separata e utilities di sviluppo
(make). Processi e ambiente run-time nel sistema Unix. File system di Unix.
Interfaccia tra linguaggio C e Unix. Generalità sull'utilizzo delle chiamate di sistema;
chiamate di sistema per gestione di processi e dei threads, sincronizzazione e
comunicazione tra processi e threads, gestione di file. Implementazione di interpreti di
comandi. Cenni sull'implementazione di Unix.
Modalità di esame: Valutazione di esercizi e progetti assegnati durante il corso.
Prerequisiti: È indispensabile aver acquisito esperienza di programmazione nel
linguaggio C, come nel caso sia già stata svolta l'attività del corso di laboratorio di
Programmazione del I anno.
Testi consigliati:
Oltre alla documentazione on-line si può fare riferimento a:
C. Brown: "Unix - Distributed Programming", Prentice-Hall 1994, capitolo 2.
J.M. Rifflet, "La programmation sous Unix", 3me Ed., Ediscience International, 1993.
V.R. Stevens, "Advanced Programming in the Unix environment", Addison-Wesley
1993.
SISTEMI OPERATIVI II (5 CFU)
Sede di Novara: Dott. M. Furini, II anno, II trimestre
Finalità del corso: Il corso di Sistemi Operativi II è focalizzato sui sistemi operativi
di rete e sui sistemi operativi distribuiti. Pertanto, le nozioni base introdotte nel corso
di Sistemi Operativi I sono riprese ed estese in riferimento ad architetture di rete e
multi-processore.
Argomenti trattati:
Vengono affrontati i seguenti argomenti principali:
- architettura delle reti locali e geografiche
- cenni sui protocolli di comunicazione con speciale riferimento al TCP/IP
- primitive di comunicazione tra processi
- sistemi operativi di rete, file system distribuiti e sistemi operativi distribuiti
- architettura client-server e chiamata procedurale remota
- comunicazione di gruppo e coordinazione di gruppi di processi cooperanti
- algoritmi di sincronizzazione e di elezione
- implementazione di un file system di rete: NFS
- implementazione di un sistema operativo distribuito
Testi consigliati:
A. Tanenbaum: "Sistemi Operativi Moderni", Ed. Jackson
C. Brown: "Unix - Distributed Programming", Prentice-Hall 1994.