Università degli studi di Verona
Facoltà di Scienze Matematiche Fisiche e
Naturali
Guida dello Studente
Corso di Laurea triennale in
Informatica
ANNO ACCADEMICO 2001 - 2002
1. Introduzione
L’informatica è la scienza che
studia l’insieme delle discipline, dei metodi e delle
tecniche per l’elaborazione delle informazioni tramite
dispositivi automatici di calcolo. Lo straordinario sviluppo di
questa scienza si è accompagnato costantemente ad una
crescente valorizzazione del concetto di informazione come risorsa
fondamentale. Gran parte dei problemi reali manifestano, infatti,
aspetti tipicamente informatici, dove il trattamento automatico
delle informazioni è di interesse vitale: dal controllo del
traffico aereo, alla borsa telematica, alla simulazione o
rappresentazione di eventi fisici e biologici, alle reti di
comunicazione. Questi, come gran parte dei problemi caratterizzanti
la vita quotidiana in un mondo altamente complesso come il nostro,
rappresentano problemi trattabili mediante l’utilizzo di
strumenti informatici. Agli occhi dell’informatico questi
problemi, apparentemente diversi, appaiono in realtà
accomunati da caratteristiche simili, al punto tale che la
soluzione di un problema può essere la chiave per la
soluzione di uno apparentemente lontano da esso. Per questo motivo,
è essenziale per la società contemporanea formare
personale altamente specializzato e al tempo stesso versatile nello
studio, nell’utilizzo, nella progettazione e nella ricerca di
strumenti informatici sempre più avanzati, in grado di
adattarsi rapidamente all’evoluzione rapidissima di un
settore ormai di interesse vitale per ogni società
avanzata.
Nonostante l’informatica sia, rispetto
ad altre scienze come la matematica e la fisica, relativamente
più giovane, essa ha senza dubbio raggiunto nel corso di
solo mezzo secolo, una maturità sua propria che ne
giustifica a pieno titolo la presenza all’interno del
panorama delle scienze. L’informatica come scienza affonda le
sue radici nella logica matematica e nella matematica discreta di
inizio secolo, e da allora si è sviluppata rapidamente ed in
modo autonomo in vari settori di carattere più o meno
scientifico/tecnologico. Per questo motivo, ogni serio tentativo di
formare un esperto di informatica non può prescindere da una
solida formazione di base nei fondamenti logico-matematici di
questa disciplina. Solo attraverso questa preparazione di base
è possibile formare esperti di alto livello, versatili e non
vincolati all’utilizzo di specifici strumenti informatici, ma
in grado di svilupparne di nuovi ad alto contenuto innovativo.
L’obiettivo primario e caratterizzante
il corso di laurea triennale in informatica di una facoltà
di Scienze Matematiche, Fisiche e Naturali rispetto ad altri corsi
di laurea simili (es. ingegneria informatica) è quello di
fornire competenze tecniche di alto livello (linguaggi e sistemi
hardware e software) inquadrate all’interno di teorie
più generali, a carattere prevalentemente matematico e
scientifico, necessarie per modellare correttamente i problemi e
studiare metodi appropriati per risolverli. Lo scopo del corso di
laurea in informatica non si esaurisce dunque solo nel preparare i
futuri laureati all’utilizzo di componenti hardware e
software, quanto nel fornire le conoscenze fondamentali per
comprendere la natura profonda degli strumenti, dei metodi e dei
problemi dell’informatica, al fine di favorire
l’innovazione necessaria per adattarsi rapidamente
all’evoluzione continua del settore. In questo senso nel
corso di laurea in informatica si vuole approfondire
l’informatica come scienza.
Il laureato in informatica deve essere in
grado di risolvere problemi complessi riguardanti
l’acquisizione, la gestione e l’elaborazione dei dati e
delle informazioni, valutarne i costi e l’impatto su altre
tecnologie. I metodi e le scelte basate sulla conoscenza di modelli
matematico-formali, per la soluzione di questi problemi
caratterizza l’informatico rispetto ad altre
professionalità affini. Alla formazione di questa
professionalità concorre in modo essenziale la combinazione
di teoria e pratica che solo un corso di laurea di tipo scientifico
può fornire. I campi di impiego di questa figura
professionale sono pertanto innumerevoli e disparati, nei settori
produttivi ad alto contenuto tecnologico,
nell’informatizzazione delle piccole e medie aziende, nelle
banche, e nelle software house.
L’offerta didattica attuale, unita ad un
rapporto stretto, anche dovuto alla condivisione di ampi spazi
comuni, tra docenti e studenti nella organizzazione dei programmi
di studio, e nello svolgimento dei corsi, rende il corso di laurea
triennale in informatica di Verona un luogo vivibile, dove
didattica e ricerca convivono a stretto contatto. Tre sono i corsi
di laurea in informatica attivi da più di 5 anni nel
nord-est italiano, due dei quali nella regione Veneto: Udine,
Venezia e Verona. In questo senso, il corso di laurea in
informatica dell’Università di Verona bene si integra
nel tessuto economico, produttivo ed universitario veneto e
più in generale italiano ed europeo, come dimostrato dalla
crescente richiesta di informatici nelle aziende venete, italiane
ed europee, ed un tasso di disoccupazione dello 0% nei settori
dell’informatica, con ottime prospettive di sviluppo nei
prossimi anni.
2. Il corso di laurea triennale in Informatica
A partire dall’anno accademico
2001/2002 sono attivati presso questa Università il Corso di
Laurea in INFORMATICA. La durata dei corsi di Laurea è
triennale. A partire dall’anno accademico 2001/2002 sono
attivati tutti e tre gli anni previsti per il Corso di Laurea.
Ogni anno di corso
è organizzato in 3 periodi, ognuno della durata di 9
settimane di lezione.
I corsi
sono a numero programmato ai sensi dell’art 2 della legge
264/99. Il numero
massimo degli iscritti al I anno complessivo dei due corsi di
Laurea in Informatica e Tecnologie dell’Informazione, in
relazione alla disponibilità e capienza delle strutture,
è stato stabilito dal Senato Accademico in data 5/6/2001 a
300 unità.
3. Obiettivi formativi
Il corso di
laurea in Informatica si propone di fornire le competenze
necessarie per operare negli ambiti della progettazione,
realizzazione, sviluppo, gestione e manutenzione di sistemi
informatici, sia in imprese produttrici nelle aree dei sistemi
informatici e dei calcolatori, che nelle amministrazioni pubbliche,
nelle imprese e nei laboratori che utilizzano sistemi informatici
complessi. Rispetto al corso di laurea in Tecnologie
dell’Informazione, questo corso mira allo sviluppo di
competenze tipicamente nei seguenti settori: sistemi informativi e
banche dati, architetture software complesse, di rete (con
particolare riguardo alla progettazione) e sicurezza dei sistemi.
Il corso intende, inoltre, fornire conoscenze e competenze nei vari
settori delle scienze e tecnologie dell’informazione e della
comunicazione e consentire di utilizzare efficacemente, in forma
scritta e orale, almeno una lingua dell’Unione Europea, oltre
l’italiano.
4. Progetto didattico
Gli obiettivi
formativi previsti dal corso di laurea saranno realizzati mediante
attività didattiche frontali e di laboratorio, esercitazioni
teorico/pratiche e tirocini formativi presso aziende, strutture
della pubblica amministrazione e laboratori. Il corso di laurea
prevede altresì soggiorni di studio presso altre
università italiane ed estere, nel quadro di accordi
nazionali ed internazionali.
5. Sbocchi professionali
Gli sbocchi
professionali del corso di laurea in Informatica riguardano, oltre
che l’insegnamento dell’informatica, praticamente tutti
i settori professionali ove è richiesto lo sviluppo di
sistemi informatici e l’organizzazione informatizzata delle
informazioni, ovvero banche, enti pubblici e privati, piccole-medie
imprese e grandi imprese. In particolare, in questi ambiti
professionali, l’impiego potrà interessare
principalmente le seguenti aree: la progettazione, lo sviluppo ed
il mantenimento di architetture e sistemi software complessi, la
programmazione di software, lo sviluppo di servizi di rete ed
applicazioni WEB, l’amministrazione di sistema informatici in
imprese e la progettazione di sistemi informativi e banche
dati.
6. Organizzazione del corso di laurea – i crediti
formativi unitari
Il piano degli studi, come previsto dal
Decreto Ministeriale sulle Classi delle Lauree triennali (DM
4/8/00) per la Classe 26 in Scienze e Tecnologie Informatiche
è organizzato in insegnamenti-esami a cui sono attribuiti un
dato numero di crediti formativi unitari (CFU). Un CFU corrisponde
a circa 25 ore complessive di lavoro da parte dello studente.
Per conseguire la Laurea in Informatica
sarà necessaria l’acquisizione di 180 CFU in tre anni,
di cui almeno 20 CFU dedicati ad attività di laboratorio
nell’ambito dei vari corsi, secondo i prospetti riportati di
seguito:
6.1. Piano degli studi
ANNO I
INSEGNAMENTI-ESAMI
|
CFU
|
Matematica di
base
|
4
|
Informatica di
base
|
4
|
Probabilità
e statistica
|
4
|
Algebra lineare
|
6
|
Algebra
|
4
|
Programmazione
|
8
|
Laboratorio di
programmazione
|
4
|
Analisi
matematica
|
8
|
Fisica
|
8
|
Architettura degli
elaboratori
|
8
|
Laboratorio di architetture
|
2
|
|
60
|
ANNO II
INSEGNAMENTI-ESAMI
|
CFU
|
Calcolo
numerico
|
6
|
Laboratorio di
calcolo numerico
|
2
|
Algoritmi e
strutture dati
|
8
|
Laboratorio di
algoritmi
|
2
|
Architetture
software
|
8
|
Laboratorio di
architetture software
|
2
|
Logica
matematica
|
6
|
Sistemi
operativi
|
6
|
Laboratorio di
sistemi operativi
|
4
|
Basi di dati e
WEB
|
8
|
Laboratorio di Basi
di dati e WEB
|
2
|
Reti di
calcolatori: applicazioni
|
5
|
|
59
|
ANNO III
INSEGNAMENTI-ESAMI
|
CFU
|
Fondamenti dell’informatica
|
6
|
Linguaggi di programmazione e compilatori
|
10
|
Economia aziendale
|
4
|
Ricerca operativa
|
4
|
Interazione uomo-macchina e multimedia
|
5
|
Programmazione avanzata e di rete
|
|
|
34
|
6.2. Norme
Per conseguire la
laurea gli studenti dovranno acquisire 27 CFU oltre ai crediti
previsti per gli insegnamenti riportati nei relativi prospetti, di
cui: 9 per scelte autonome da acquisire frequentando insegnamenti e
sostenendo i relativi esami all’interno dell’offerta
didattica dell’Ateneo veronese, ivi inclusa la Facoltà
di Scienze MM. FF. e NN., 4 da acquisire nel primo biennio per la
conoscenza della lingua inglese, 9 per altre attività
formative come tirocini formativi presso aziende, strutture della
pubblica amministrazione e laboratori, oltre a soggiorni di studio
presso altre università italiane ed estere, anche nel quadro
di accordi internazionali, e 5 per la prova finale per il
conseguimento del titolo.
6.3.
Sbarramenti
- Lo studente deve
aver ottenuto almeno 30 CFU entro il 31 Dicembre 2001 per
l’iscrizione al II Anno di C.L.
- Lo studente deve
aver ottenuto almeno 60 CFU entro il 31 Dicembre 2001 per
l’iscrizione al III Anno di C.L.
6.4. Periodi di lezione
I° Quadrimestre: Lunedì 1 Ottobre - Venerdì 30
Novembre
II° Quadrimestre: Lunedì 7 Gennaio - Venerdì 8
Marzo
III° Quadrimestre: Lunedì 8 Aprile - Venerdì 7
Giugno.
6.5. Periodi sessione d’esame
I Sessione esami: 10 Dicembre - 21 Dicembre
II Sessione esami: 18 Marzo - 5 Aprile
III Sessione esami: 17 Giugno - 28 Giugno
IV Sessione esami: 1 luglio 2002 - 19 luglio 2002
V Sessione esami: 2 settembre 2002 - 13 settembre 2002
VI Sessione esami: 16 settembre 2002 - 27 settembre 2002
7. Norme per l’ammissione
E’ titolo di ammissione, ai sensi del
1° comma della Legge 11.12.1969 n. 910, il diploma rilasciato
da un Istituto di istruzione secondaria di secondo grado di durata
quinquennale o da un Istituto Magistrale e da un Liceo Artistico a
condizione per questi ultimi due che sia stato superato il corso
annuale integrativo.
7.1.
Presentazione delle domande
La domanda di ammissione è unica per i
due corsi di Laurea attivati nella Classe 26: Laurea in Informatica
e Laurea in Tecnologie dell’Informazione. Nella domanda lo
studente dovrà indicare a quale Corso di Laurea desidera
iscriversi. La domanda di ammissione, in carta libera indirizzata
al Magnifico Rettore deve essere presentata a partire dal 23 luglio
2001 ed entro e non oltre il termine perentorio di
Giovedì 30 AGOSTO 2001 ore 13.00,al “Servizio
Accoglienza Studenti” – Chiostro S. Francesco, via S.
Francesco, 22 – 37129 Verona. Non si considerano giunte in
tempo utile le domande pervenute oltre il termine, anche se spedite
per posta prima della data di scadenza.Tale domanda va
compilata unicamente su modulo fornito dalla Segreteria Studenti e
disponibile presso il Servizio Accoglienza Studenti” –
Chiostro S. Francesco, via S. Francesco, 22 – 37129 Verona.
Per il riconoscimento dei benefici previsti dagli artt. 16 e 20
della Legge 05 febbraio 1992 n. 104, così come modificata
dalla legge 28 gennaio 1999, n.17, i candidati portatori di
handicap ai sensi dell’art. 3 della medesima legge
dovranno specificare - mediante compilazione del “Quadro
A” del modulo di domanda appositamente predisposto - la
necessità di tempi aggiuntivi e/o gli ausili per lo
svolgimento della prova in relazione allo specifico handicap e
allegare alla domanda idonea certificazione relativa al suddetto
handicap rilasciata dalla struttura pubblica competente. E’
anche possibile attestare di essere stato riconosciuto disabile
mediante dichiarazione sostitutiva di certificazione. Sulla base di
tale certificazione/dichiarazione la Commissione per
l’handicap dell’Università valuterà la
sussistenza delle condizioni per la concessione dei suddetti tempi
aggiuntivi e/o ausili, con riguardo alla specifica minorazione.
Alla domanda, redatta in conformità al D.P.R. 445 del 28
dicembre 2000 “Testo unico delle disposizioni legislative e
regolamentari in materia di documentazione amministrativa”
deve essere allegata attestazione dell’avvenuto versamento
del contributo di ammissione di L. 50.000 (€ 25,82)da
effettuarsi a mezzo dell’apposito avviso di pagamento
contenuto nella domanda di ammissione. I candidati di cittadinanza
extracomunitaria residenti all’estero, che hanno fatto
domanda di preiscrizione alle rappresentanze diplomatiche italiane
del Paese di provenienza, non sono tenuti a presentare la domanda
di cui al presente paragrafo. Per l’ammissione alla prova
sono tenuti a verificare preventivamente presso la Segreteria
Studenti l’avvenuta trasmissione della loro documentazione da
parte dell’Autorità Consolare italiana ed a versare il
contributo di ammissione. Gli studenti iscritti ad altri corsi di
laurea, di questa o altre Università, e che avendone i
requisiti intendano iscriversi al primo anno di uno dei due corsi
di laurea in oggetto, dovranno fare la domanda prevista dal
presente bando sottostando a tutte le clausole in esso
previste.
7.2. Studenti di
cittadinanza non comunitaria residenti all’estero
Gli studenti non comunitari residenti
all’estero, purché abbiano presentato regolare domanda
con le modalita’ e nei termini previsti dalla Nota M.U.R.S.T.
n. 1564 del 04 Maggio 2001 "Immatricolazione degli studenti
stranieri ai corsi universitari per l’Anno Accademico
2001-2002", dovranno sostenere e superare prima della prova di
selezione comune agli altri studenti, una prova orale di
conoscenza della lingua italiana, che si svolgerà il
giorno 4 Settembre 2001, alle ore 09.00 presso la sede della
Facoltà di Scienze MM.FF.NN., Strada Le Grazie, 15,
Verona.
7.3.
Modalità di svolgimento delle prove di ammissione
All’ora stabilita per ciascuna prova, il
Presidente della Commissione Giudicatrice o, nel caso venga
nominata, il Presidente della Commissione di Vigilanza fa procedere
all’appello nominale dei concorrenti e, previo accertamento
della loro identità personale, li fa collocare in aula in
modo che non possano comunicare fra loro. Durante le prove scritte
non è permesso ai candidati di comunicare fra loro
verbalmente o per iscritto, ovvero di mettersi in relazione con
altri, salvo che con gli incaricati della vigilanza o con i membri
della Commissione Giudicatrice. I candidati non possono portare
carta da scrivere, appunti, manoscritti, libri o pubblicazioni di
qualunque specie, usare telefoni cellulari e strumenti elettronici.
I candidati che contravvengono alle disposizioni sopra indicate
sono esclusi dalla prova. La Commissione Giudicatrice e la
Commissione di Vigilanza curano l’osservanza delle
disposizioni stesse ed hanno la facoltà di adottare tutti i
provvedimenti che ritenessero opportuni al fine di garantire un
corretto svolgimento delle prove. Durante lo svolgimento delle
stesse è garantita la presenza di almeno due membri della
Commissione Giudicatrice e/o della Commissione di Vigilanza.
E’ fatto obbligo ai candidati di rimanere nell’aula
sede di esame fino alla scadenza del tempo della prova. Per la
compilazione del modulo risposte è necessario utilizzare
esclusivamente una penna a sfera nera, che verrà fornita ad
ogni candidato dalla Commissione.
7.4. Esame di
ammissione
L’esame di ammissione avrà luogo
per tutti i candidati che desiderano iscriversi ai Corsi di Laurea
in Informatica e in Tecnologie dell’Informazione presso la
Facoltà di Scienze MM.FF.NN. a Cà Vignal 2, Strada Le
Grazie, 15 - 37134 Verona, il giorno 10 Settembre 2001, ore
9.30. I candidati sono convocati per la prova alle ore 9.00. La
convocazione dei candidati all’esame è contestuale al
presente bando. La prova avrà una durata di 60 minuti
e sarà composta di 30 domande a risposte multiple
predeterminate e pesate a carattere attitudinale, relative alle
seguenti aree: 10 domande di matematica, 10 domande di fisica e 10
domande volte a rilevare le capacità logico-deduttive del
candidato. Le domande cercheranno di cogliere una attitudine in
ciascuna disciplina delle quali vengono richieste conoscenze
fornite in media nelle scuole superiori italiane. Per quanto
riguarda le domande nel campi della matematica e fisica, queste
verteranno sui seguenti argomenti:
Matematica
Insiemi numerici e calcolo aritmetico: numeri
naturali, numeri reali, ordinamento e confronto, proporzioni e
percentuali, potenze e logaritmi. Algebra classica: prodotti
notevoli, potenza n-esima di un binomio, scomposizione in fattori
di polinomi, equazioni razionali o intere, disequazioni algebriche
razionali intere o fratte. Funzioni: funzioni logaritmiche,
esponenziali, trigonometriche. Trigonometria: misura di angoli in
gradi e radianti, seno, coseno, tangente di un angolo. Geometria
euclidea: poligoni, circonferenza e cerchio, misure di superfici,
volumi, similitudini, isometria. Geometria analitica: sistemi di
riferimento e coordinate di un punto, distanza tra due punti,
distanza di un punto da una retta, punto medio di un segmento,
equazione della retta, parabola, circonferenza, iperbole ed ellisse
e loro rappresentazione sul piano cartesiano.
Fisica
Calcolo vettoriale, cinematica del punto
materiale, dinamica del punto materiale. Onde ed oscillazioni.
Calorimetria e principi della termodinamica. Campo elettrostatico e
campo magnetico. Induzione elettromagnetica. Ottica geometrica. I
candidati sono ammessi a sostenere la prova previa esibizione di
idoneo documento di riconoscimento in corso di validità:
carta d’identità, passaporto, patente di guida,
tessera postale, porto d’armi, tessera personale di
riconoscimento rilasciata da Amministrazioni Statali. Sono esclusi
i candidati non in grado di esibire alcuno dei suddetti
documenti.
Qualora il numero delle domande fosse
inferiore al numero programmato di 300 complessivo dei due Corsi di
Laurea o tale si rivelasse al momento dell’esame, la prova
avrà comunque luogo a titolo di test di valutazione. Nel caso il numero
complessivo degli studenti presenti al test fosse superiore a 300,
a seguito dello svolgimento del test di ammissione per tutti gli
studenti convocati, verrà stilata una graduatoria per
l’ammissione, unica per entrambi i corsi di Laurea. Il
punteggio, espresso in centesimi, sarà così
ripartito: - 80 centesimi punti riservati all’esito del test
di ammissione; - 20 centesimi riservati al punteggio riportato
nell’esame finale per il conseguimento del diploma di scuola
secondaria superiore. superiore (voto di maturità/5); nel
caso di votazione ottenuta in 60°, il punteggio viene
ovviamente adattato e trasformato nel nuovo sistema, in vigore dal
1998/99, previsto in 100°. Nel caso di parità di
punteggio complessivo finale tra due o più candidati, la
precedenza in graduatoria sarà data al candidato più
giovane di età. L’esito della prova sarà reso
noto mediante affissione della graduatoria e pubblicazione sul sito
WEB dell’Università di Verona (http://www.univr.it) entro 5 giorni dallo
svolgimento del test. Saranno ammessi alla
successiva immatricolazione i primi 300 studenti in graduatoria
secondo quanto specificato nella domanda. La pubblicazione
all’Albo ha valore di comunicazione ufficiale agli
interessati. Il test di ammissione è obbligatorio per
tutti gli studenti che desiderano iscriversi al primo anno del
Corso di Laurea in Informatica o Tecnologie
dell’Informazione. Il test non è obbligatorio per
trasferimenti da altre Facoltà o altri Atenei ad anni
superiori al primo, previo giudizio delle competenti strutture
didattiche. L’istanza di trasferimento deve essere presentata
entro e non oltre il 15 settembre 2001 presso le segreterie
studenti. Coloro che non risultano idonei al trasferimento ad anni
successivi al primo e non hanno superato il test di ammissione, non
sono ammessi all’immatricolazione.
7.5.
Immatricolazione
Entro le ore 13.00 del 27 settembre
2001, i vincitori dovranno perfezionare
l’immatricolazione con la presentazione dei seguenti
documenti alla Segreteria Studenti della Facoltà di Scienze
MM.FF.NN. :
1) Domanda indirizzata al Magnifico Rettore e
redatta su modulo consegnato dall’Ufficio di Segreteria.
2) Attestazione dell’avvenuto pagamento
della prima rata di tasse di L. 515.000 (€ 265,98)
effettuato esclusivamente presso una qualsiasi dipendenza
della Cariverona Banca S.p.A., previo avviso di pagamento
consegnato dalla Segreteria Studenti.
3) Due fotografie, formato tessera,
identiche tra loro.
I vincitori che non ottempereranno alle
condizioni di cui sopra entro il predetto termine del 27
settembre 2001 saranno considerati decaduti e i posti che
risulteranno vacanti saranno messi a disposizioni dei candidati
idonei secondo l’ordine di graduatoria.
Il giorno 28 settembre 2001 sarà
esposto all’albo della Segreteria Studenti della
Facoltà di Scienze MM.FF.NN. il numero dei posti vacanti
disponibili.
Il giorno 1 ottobre 2001, entro le ore
13.00, i candidati idonei potranno presentare apposita domanda
di subentro, indirizzata al Magnifico Rettore, alla Segreteria
Studenti della Facoltà di Scienze MM.FF.NN.
La Segreteria provvederà ad attribuire
i posti in base alla graduatoria nelle prove.
Il giorno 2 ottobre 2001, sarà
comunicato, mediante affissione all’Albo della Segreteria
Studenti della Facoltà di Scienze MM.FF.NN., l’elenco
dei nuovi ammessi.
Gli aventi diritto all’immatricolazione
sono tenuti agli adempimenti di perfezionamento
dell’immatricolazione, come sopra chiesto ai vincitori, entro
le ore 13.00 del 5 ottobre 2001.
Quanti non si atterranno ai termini e alle
modalità sopraindicate saranno considerati decaduti.
Si ricorda a tutti gli interessati che, stante
l’organizzazione didattica in tre periodi, le lezioni avranno
inizio Lunedì 1 Ottobre 2001.
7.6. Riconoscimento dei crediti acquisiti in altri corsi di
studio
Il Consiglio di Corso di Laurea è
competente per il riconoscimento e l’accreditamento dei
crediti conseguiti dallo studente, con relativo punteggio, in altri
corsi di Laurea. In caso di trasferimento dello studente da altro
corso di laurea, questo può avere luogo solo a seguito della
presentazione di una dettagliata documentazione rilasciata dalla
sede di provenienza, che certifichi gli esami svolti con relativo
voto ottenuto e crediti maturati. Ogniqualvolta non fosse possibile
una predeterminazione automatica dei crediti riconoscibili, il
consiglio effettuerà i riconoscimenti applicando i seguenti
criteri:
·
In caso di provenienza da altri corsi della medesima classe di
lauree o da altra classe, e per attività per le quali sia
previsto un riferimento ad un settore disciplinare specifico
ammesso nelle tabelle della classe 26 in scienze e tecnologie
informatiche, il Consiglio provvederà a ripartire i crediti
acquisiti dallo studente all’interno delle aree e sottoaree
individuate nel Syllabus del
Corso di Laurea in INFORMATICA (riportato nel seguito). Il
Consiglio valuterà caso per caso il contenuto delle
attività formative ed il raggiungimento degli obiettivi
formativi determinando, in base alla suddivisione precedente, le
equipollenze tra le attività svolte e quelle previste dal
Corso di Studi. In seguito a questa valutazione, il Consiglio di
Corso di Laurea determinerà l’anno di iscrizione ed il
curriculum di studi, detto piano di studi, necessario per
conseguire il titolo. Ad integrazione di eventuali carenze di
crediti, il Consiglio di corso di Laurea può individuare,
valutando caso per caso, le attività più opportune
(tesine, esercitazioni pratiche o altre attività didattiche
integrative) fino al raggiungimento dei crediti previsti per la
singola attività. Non si possono integrare, con
attività supplementari, insegnamenti per i quali si sono
maturati un numero di crediti inferiore al 40% dei crediti
necessari per quell’insegnamento. In questo caso è
necessario sostenere l’esame di profitto per
quell’insegnamento.
·
In caso di attività per le quali non è previsto il
riferimento a un settore disciplinare, o non inquadrabili
all’interno del Syllabus del Corso di Laurea in INFORMATICA,
il Consiglio di Corso di Laurea valuterà caso per caso il
contenuto delle attività formative e la loro coerenza con
gli obiettivi del corso di studio, valutando la quantità dei
crediti acquisiti che possono essere riconosciuti nell’ambito
delle attività formative previste nel Corso di Studio.
·
Nel caso il voto da associare ad una particolare attività
formativa sia il contributo di più attività che hanno
dato luogo a votazioni differenti, il voto finale sarà
determinato dalla media pesata sul valore di ogni attività
espressa in crediti, dei voti riportati, arrotondata
all’intero più vicino. A parità di distanza, si
arrotonda all’intero superiore.
·
I crediti in eccedenza, comunque maturati, possono essere, a
richiesta dello studente, automaticamente riconosciuti nelle
attività facoltative (fino a 9 crediti) e per il tirocinio
(fino a 9 crediti). Tale richiesta va espressa una volta emanato il
piano di studi da parte del Consiglio di Corso di Laurea e
può essere variata in qualsiasi momento entro e non oltre la
domanda di Laurea. Eventuali crediti non utilizzati restano
comunque spendibili, a richiesta dello studente, all’interno
del piano formativo previsto per le lauree specialistiche della
Classe 23 di Informatica, secondo le modalità previste
dall’ordinamento della corrispondente Laurea
Specialistica.
7.7. Transizione dal vecchio al nuovo ordinamento
Lo studente iscritto a un corso di Laurea con
ordinamento previgente di durata quinquennale o quadriennale o
diploma triennale può optare per l’iscrizione al nuovo
Corso di Laurea in INFORMATICA di durata triennale. A tal fine lo
studente presenterà domanda di opzione entro il termine
stabilito dalle competenti strutture didattiche presso la
segreteria studenti dell’Ateneo di Verona. Il riconoscimento
delle attività svolte è regolato da quanto indicato
al punto precedente. Per gli studenti già iscritti presso
l’Università di Verona ai corsi di Laurea o Diploma in
INFORMATICA, o al Corso di Laurea in Scienze
dell’Informazione, il Consiglio di Corso di Laurea
provvederà a convalidare gli esami sostenuti dando una
corrispondente valutazione in crediti ed emanando un piano di
studi, secondo l’algoritmo seguente:
1.
La domanda di trasferimento, formulata su appositi moduli, deve
includere: il certificato degli esami svolti con relativa votazione
e fotocopia del libretto universitario, nonché altra
eventuale documentazione a discrezione della segreteria
studenti;
2.
Per ogni esame sostenuto con profitto entro il 31 Dicembre
dell’anno solare in cui si chiede il trasferimento, e
presente nel piano degli studi dello studente, viene determinato un
corrispondente valore in crediti come da tabella 3.2 allegata. Il
valore in crediti degli insegnamenti già presenti nel piano
degli studi (vecchio ordinamento) dello studente il cui esame
è sostenuto con profitto successivamente a tale data,
è valutato in base a quanto stabilito dal Manifesto degli
Studi del Corso di Laurea triennale in INFORMATICA per
quell’insegnamento.
3.
Le attività svolte vengono ripartite secondo le aree e
sottoaree come nel Syllabus
del Corso di Laurea in INFORMATICA, dando luogo ad un valore in
crediti per ogni sottoarea.
4.
Per gli esami sostenuti con denominazione corrispondente ed uguale
contenuto ad insegnamenti previsti nel Corso di Laurea triennale in
INFORMATICA, o per i quali sia stata deliberata
l’equipollenza con questi insegnamenti, si provvede
all’immediato riconoscimento dell’attività
svolta con il numero di crediti pari a quello determinato al punto
2 e comunque non oltre il valore specificato per
quell’insegnamento nel Manifesto degli Studi del Corso di
Laurea triennale in INFORMATICA.
5.
Per gli esami con denominazione differente, il Consiglio di Corso
di Laurea provvederà, ove possibile, a riconoscere
insegnamenti collocati nella medesima sottoarea, previa valutazione
dei relativi contenuti, fino all’eventuale completamento dei
crediti previsti nel piano di studio per
quell’attività.
6.
Nel caso di mancanza di crediti, il Consiglio provvederà a
stabilire eventuali attività integrative fino al
raggiungimento dei crediti previsti per quell’insegnamento o
attività formativa. Non si possono integrare, con
attività supplementari, insegnamenti per i quali si sono
maturati un numero di crediti inferiore al 40% dei crediti
necessari per quell’insegnamento. In questo caso è
necessario sostenere l’esame di profitto per
quell’insegnamento. Nel caso si verifichi una eccedenza di
crediti, il Consiglio di Corso di Laurea provvederà, ove
possibile, al riconoscimento di attività previste nella
medesima sottoarea, previa valutazione dei relativi contenuti.
In seguito a quanto emerso nei punti precedenti,
il Consiglio di Corso di Laurea elaborerà un piano degli
studi comprendente le attività riconosciute, con relativi
crediti, eventuali attività integrative ed eventuali crediti
in eccedenza per ogni sottoarea. I crediti in eccedenza comunque
maturati possono essere, a richiesta dello studente,
automaticamente riconosciuti nelle attività facoltative
(fino a 9 crediti) e per il tirocinio (fino a 9 crediti). Tale
richiesta va espressa una volta accettata la domanda da parte del
Consiglio di Corso di Laurea e può essere variata in
qualsiasi momento entro e non oltre la domanda di Laurea. Eventuali
crediti non utilizzati restano comunque spendibili, a richiesta
dello studente, all’interno del piano formativo previsto per
le lauree specialistiche della Classe 23 di Informatica, secondo le
modalità previste dall’ordinamento della
corrispondente Laurea Specialistica.
8. Syllabus del Corso di Laurea in
Informatica
Seguendo lo schema della classe di laurea 26 in
Scienze e Tecnologie Informatiche, sono individuate le seguenti aree corrispondenti alle
aree di formazione essenziali secondo le varie attività
previste dalla classe:
·
Area Matematica (base ed affine)
·
Area Fisica (base ed affine)
·
Area Informatica (base, caratterizzante ed affine)
Ogni macro area raggruppa al suo interno
più settori scientifico-disciplinari diversi che possono
rappresentare contenuti sia di base che affini che caratterizzanti
secondo quanto stabilito nelle tabelle dell’ordinamento dei
corsi di studio in allegato. Ogni macro area è strutturata
in sottoaree omogenee, le
quali a loro volta sono strutturate in uno o più moduli di
insegnamento detti insegnamenti. Ad ogni insegnamento è
associato un corrispondente numero di CFU secondo quanto stabilito
anno per anno dal Manifesto degli Studi.
·
Area Matematica:
¨
Analisi matematica (MAT/05): L’obiettivo formativo
è quello di fornire una adeguata conoscenza di base dei
concetti e delle tecniche inerenti il calcolo differenziale ed
integrale in una o più variabili, enfatizzandone gli aspetti
metodologico-applicativi rispetto a quelli logico-deduttivi.
¨
Algebra (MAT/02 e MAT/03): L’obiettivo formativo
è quello fornire le basi e le metodologie del calcolo
algebrico e dell’algebra lineare.
¨
Logica (MAT/01): L’obiettivo formativo è quello
di mettere in luce le potenzialità ed i limiti dei linguaggi
formali e della deduzione logica, fornendo gli strumenti di calcolo
indispensabili per la rappresentazione e manipolazione formale di
problemi.
¨
Probabilità e statistica (MAT/06): L’obiettivo
formativo è quello di fornire gli elementi di base del
calcolo delle probabilità e di alcuni strumenti elementari
della Statistica.
¨
Analisi Numerica (MAT/08): Gli obiettivi formativi sono
quelli di introdurre le tematiche di base dell’analisi
numerica, attraverso la conoscenza e la sperimentazione dei
principali metodi numerici. Questo al fine di fornire le conoscenze
per analizzare e risolvere problemi della matematica del continuo e
del discreto mediante l’utilizzo di strumenti e tecniche
informatiche, saper stimare l’errore e la complessità
del calcolo numerico.
¨
Ricerca Operativa (MAT/09): L’obiettivo è
quello di fornire strumenti e metodologie per modellare e risolvere
problemi di ottimizzazione, gestione e pianificazione di
risorse.
·
Area Fisica:
¨
Fisica Generale (FIS/01): L’obiettivo è quello
di fornire allo studente le conoscenze di base della meccanica e
dell’elettromagnetismo per educare lo studente
all’applicazione del metodo scientifico-sperimentale,
mettendolo in grado di affrontare un corso di studio a carattere
scientifico e fornendogli le basi per affrontare corsi più
avanzati, es. nello studio del Quantum Computing e degli aspetti
fisici e metodologici connessi con il DNA Computing.
¨
Tecniche Sperimentali (FIS/01): L’obiettivo è
quello di portare lo studente a rendersi conto della
complessità delle tecniche sperimentali rispetto ai modelli
teorici utilizzati in Fisica, attraverso la misura sperimentale di
alcune grandezze fisiche.
·
Area Informatica:
¨
Programmazione (INF/01): L’area di programmazione
racchiude al suo interno le metodologie per la programmazione
imperativa, orientata agli oggetti (OO), funzionale/ricorsiva,
distribuita e su rete, oltre ai metodi per l’analisi e la
verifica di correttezza, sicurezza e affidabilità del
software generato.
¨
Algoritmi e strutture dati (INF/01): L’area algoritmi
definisce le competenze necessarie nella sintesi ed analisi degli
algoritmi. In particolare queste competenze sono orientate alla:
specifica di un problema; costruzione di un algoritmo risolutore e
verifica della sua correttezza; conoscenza approfondita delle
strutture dati di base e capacità di definire e analizzare
strutture dati non elementari; e valutazione della quantità
di risorse computazionali utilizzate da un algoritmo
(complessità concreta).
¨
Sistemi operativi e reti di calcolatori (INF/01 e
ING-INF/05): I contenuti di questa area sono finalizzati alla
gestione di sistemi informatici complessi e su rete.
Nell’area di sistemi operativi si presentano i concetti, la
struttura, ed i meccanismi presenti per la gestione delle risorse
di un calcolatore nei moderni sistemi operativi. Si forniscono gli
strumenti per prendere decisioni progettuali che coinvolgono i
sistemi operativi ed i contesti (hardware e software) in cui essi
operano. Nell’area delle reti di calcolatori si forniscono le
conoscenze delle tecniche di trasmissione dei dati, degli algoritmi
e protocolli di comunicazione, e in particolare delle tecnologie
software ed applicativi che sono alla base del progetto e della
realizzazione dei moderni sistemi di rete e dei relativi servizi,
nonchè della sicurezza di rete.
¨
Architetture degli elaboratori (INF/01 e ING-INF/05):
L’area di Architetture si propone di dare allo studente la
conoscenza di base sulla struttura di un calcolatore e le
conoscenze necessarie alla realizzazione in forma digitale di un
algoritmo, presentando le possibili alternative comprese tra
l’utilizzo di un sistema di calcolo automatico general
purpose e la costruzione di un dispositivo digitale dedicato.
Queste conoscenze permettono di approfondire gli aspetti
dell’informatica legati all’utilizzo, dimensionamento e
progettazione di sistemi digitali.
¨
Fondamenti dell’informatica (INF/01): L’area di
Fondamenti dell’informatica racchiude al suo interno tutte
quelle discipline che definiscono le basi teoriche del calcolo
automatico, della programmazione e della progettazione di sistemi
informatici complessi. Lo scopo è quello di fornire agli
studenti gli strumenti di base per analizzare un problema in
termini della sua effettiva risolvibilità mediante
calcolatore, complessità e quantità di informazione
in esso contenuta. Questi strumenti riguardano: i linguaggi
formali, la teoria degli automi, la calcolabilità, la
complessità astratta di problemi, e la teoria
dell’informazione.
¨
Linguaggi di programmazione (INF/01): I principali contenuti
dell’area linguaggi riguardano il disegno e l’implementazione di
linguaggi di programmazione. Il disegno di linguaggi ha lo scopo di
fornire agli studenti gli strumenti formali di base per comprendere
un linguaggio di programmazione, qualunque esso sia, saperne
valutare gli ambiti di utilizzo e la portabilità in ambienti
di esecuzione eterogenei. L’implementazione di linguaggi ha
lo scopo di fornire le metodologie e le tecniche che stanno alla
base dell’implementazione di un linguaggio di programmazione,
con particolare riferimento alle metodologie per valutarne le
prestazioni, gli ambiti di utilizzo di tecniche di
compilazione/interpretazione, e metodologie di ottimizzazione del
codice.
¨
Interazione uomo macchina (INF/01): Le finalità
didattiche dell’area sono volte a fornire agli studenti i
principi, metodi, tecniche e sistemi di sviluppo per la
progettazione e validazione di interfacce, per lo svolgimento di
compiti complessi interagendo con ambiente ed utente, per
l’estrazione, visualizzazione e comunicazione di
informazione.
¨
Sistemi informativi (INF/01): L’area Sistemi
Informativi comprende diverse discipline con le seguenti
finalità didattiche: (a) progettazione e realizzazione di
basi di dati (nucleo di ogni sistema informativo); (b)
progettazione e realizzazione di applicazioni che interagiscono con
una base di dati (ad esempio, interfaccie di
inserimento/aggiornamento, report, pubblicazione di informazioni su
siti WEB); (c) analisi dell’impatto dell’introduzione
dei sistemi informativi automatizzati in un’organizzazione
(impresa, ente pubblico, ecc..).
¨
Ingegneria del software (INF/01): Le finalità
dell’area sono: (a) Fornire una introduzione
all’ingegneria del software, affrontando il processo di
produzione del software nei suoi aspetti principali, relativi a:
cattura di requisiti, analisi, modellazione, specifica,
validazione, progettazione, realizzazione, collaudo, e valutazione
di qualità. (b) Sviluppare le capacità di ideazione,
progettazione e realizzazione del software secondo metodologie e
canoni di produzione industriale consolidati e conformi alla
normativa tecnica di qualità.
9. Strutture di riferimento
Consiglio di Corso di Laurea e Diploma in
Informatica
Presidente: Prof. Roberto Giacobazzi
Responsabile Segreteria: Donatella
Cattaneo
Telefono:
045 802 7078
Fax:
045 802 7928
E-mail:
segreteria-ccl-informatica@sci.univr.it
Orario di apertura al pubblico: 8.30 - 16.00
10. Informazioni utili
Sul sito Web della Facoltà di Scienze
MM. FF. NN. www.sci.univr.it
sono reperibili ulteriori informazioni sul corso di laurea e sugli
specifici insegnamenti. Per le informazioni di carattere generale
si raccomanda in particolare la lettura dei seguenti documenti
disponibili sul sito web: Descrizione del corso di laurea,
Regolamento didattico, Manifesto degli studi.
Elenco docenti con un insegnamento
Elenco degli insegnamenti attivati
Programma degli insegnamenti
Algebra
Obiettivi formativi
Lo studio dell'algebra astratta porta a notevoli semplificazioni
concettuali di molti argomenti, in quanto è possibile
riconoscere in oggetti di varia natura la stessa struttura
algebrica.
Le strutture algebriche più importanti sono quelle di
semigruppo, di gruppo e di anello; di ciascuna vengono studiate le
proprietà più rilevanti. Durante tutto il corso si fa
riferimento agli interi, per sottolineare la loro importanza e per
rilevare le differenze fra la loro struttura e quella di altri
gruppi o anelli.
Attività formative
Lezioni in aula ed esercitazioni.
Programma del corso
- I numeri naturali
- Insiemi con una operazione
- Gruppi
- Anelli
- Grafi
La verifica avviene tramite una prova scritta che consiste di
cinque esercizi e una prova orale.
Lo svolgimento corretto di tre esercizi garantisce una
valutazione sufficiente all'ammissione alla prova orale.
Algebra lineare
Obiettivi formativi
Acquisire i concetti fondamentali dell'Algebra Lineare: spazi
vettoriali, dipendenza e indipendenza lineare, trasformazioni
lineari.Applicare i concetti alla determinazione di algoritmi per:
- risolvere sistemi lineari;
- trovare basi di spazi vettoriali, in particolare di
sottospazi;
- trovare basi ortogonali di spazi vettoriali (metodo di
Gram-Schmidt);
- calcolare determinanti di matrici;
- ottenere autovalori di matrici e discuterne la
diagonalizzabilità.
Lo strumento principale usato è l'eliminazione di Gauss su
matrici.
Attività formative
Lezioni in aula ed esercitazioni.
Programma del corso
- Algebra delle matrici (escluse le matrici a blocchi)
- Sistemi di equazioni lineari (esclusi i teoremi di
unicità
- Spazi vettoriali
- Spazi vettoriali euclidei (escluse le norme di trasformazioni
lineari)
- Determinanti (senza dimostrazioni)
- Autovalori e autovettori; diagonalizzabilità
Si fa riferimento al testo di B. Bruno, Lezioni di
algebra lineare uno, Zanichelli/Decibel e alla dispensa in
reteLa verifica avviene tramite una prova scritta che
consiste di due domande di teoria (dimostrazione di enunciati
simili ad altri esposti nel corso) e di tre esercizi.
Lo svolgimento corretto dei tre esercizi garantisce una
valutazione sufficiente. Per ottenere il massimo dei voti è
necessario svolgere almeno una delle parti di teoria.
Algoritmi e strutture dati
Obiettivi formativi
Nel corso vengono esaminati i concetti di base per la formulazione
di soluzioni algoritmiche a problemi concreti. Vengono studiate
soluzioni a problemi formulati in termini di strutture matematiche
astratte (liste, code, grafi, ...) e vengono descritte metodologie
per identificare i problemi astratti che più si addicono
allo studio di un problema concreto. Gli algoritmi vengono valutati
e confrontati in base alla quantità di risorse che
richiedono. Il corso si concentra inoltre sul ruolo che ha lo
studio delle strutture di dati nella formulazione e valutazione di
nuovi algoritmi.
Attività formative
Il corso viene svolto in 80 ore di lezione frontale, di cui 60 ore
nel primo quadrimestre e 20 ore nel secondo quadrimestre. Nelle 80
ore di lezione sono comprese 26 ore di esercitazione nelle quali
gli studenti devono risolvere problemi specifici sotto la guida del
docente.
Programma del corso
- Complessità: complessità degli
algoritmi, notazione asintotica, metodi di risoluzione delle
equazioni di ricorrenza, analisi ammortizzata.
- Ordinamento e Selezione: insertion sort, merge
sort, heap sort, quick sort, quick sort probabilistico. Studio
della complessità degli algoritmi di ordinamento, limite
inferiore dell'ordinamento per confronti. Algoritmi lineari,
counting sort, radix sort, bucket sort. Algoritmi di selezione,
minimo, massimo, selezione in tempo medio lineare, selezione in
tempo pessimo lineare.
- Strutture dati: Code, pile, liste, heap,
alberi binari di ricerca, alberi RB, heap binomiali, heap di
Fibonacci, insiemi disgiunti, tecniche di estensione di una
struttura dati.
- Grafi: Definizione e rappresentazione di un
grafo, visita in ampiezza, visita in profondità, ordinamento
topologico, componenti connesse, alberi di copertura di costo
minimo (Prim e Kruskal), cammini minimi a sorgente singola
(Dijkstra e Bellman-Ford) e multipla (Floyd-Warshall e Johnson),
flusso massimo (Ford-Fulkerson, Karp), matching massimale su grafo
bipartito.
L'esame di algoritmi e strutture dati è in concomitanza
con l'esame di laboratorio di algoritmi e strutture dati. L'esame
è orale. Per l'ammissione all'esame orale lo studente deve
superare una esercitazione scritta di 3 ore che consiste in tre
esercizi sulla parte di teoria e un esercizio sulla parte di
laboratorio. Gli esercizi sulla parte di teoria sono di
difficoltà crescente e cercano di valutare sia le conoscenze
acquisite che le capacità di ragionamento nell'ambito della
materia. L'esercizio sulla parte di laboratorio verifica le
capacità di formulare un algoritmo nel linguaggio Java.
L'esercitazione scritta si intende superata se lo studente ottiene
una votazione di almento 18/30 sui 3 esercizi teoria e una
valutazione di 18/30 sull'esercizio di laboratorio. Il voto
complessivo dell'esercitazione scritta è la media pesata dei
voti di teoria (peso 4/5) e di laboratorio (peso 1/5).
Alla prova orale lo studente può decidere di verbalizzare
il voto dell'esercitazione scritta o di essere riesaminato mediante
colloquio. In tal caso il voto finale dell'esame sarà basato
puramente sul colloquio senza tenere in alcun conto l'esito
dell'esercitazione scritta.
Lo studente che dovesse superare una sola parte
dell'esercitazione scritta può recuperare l'altra parte
durante appelli d'esame successivi. In tal caso lo studente
avrà a disposizione 2 ore e 20 minuti per recuperare la
parte di teoria e 50 minuti per recuperare la parte di laboratorio.
Il voto di partenza per la prova orale sarà la media pesata
dei voti di teoria e laboratorio decurtati di un punto.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
T. Cormen, C. Leiserson, R. Rivest |
Introduction to algorithms |
MIT Press |
1990 |
0262031418 |
Analisi matematica
Obiettivi formativi
Nel corso vengono introdotti i concetti classici e le tecniche di
base del calcolo differenziale ed integrale, enfatizzandone gli
aspetti metodologico-applicativi rispetto agli irrinunciabili
elementi logico-formali, con l'obiettivo di fornire allo studente i
primi indispensabili strumenti atti a familiarizzare con quelle
problematiche dell'universo scientifico formalizzabili nel
linguaggio della matematica del continuo.
Attività formative
Il corso prevede 80 ore di lezione frontale comprensive di
esercitazioni.
Programma del corso
- Prerequisiti. Elementi di geometria analitica
(equazioni di retta, parabola, circonferenza, ellisse, iperbole).
Disequazioni di 2° grado. Regola di Ruffini. Binomio di Newton.
Numeri naturali, principio di induzione. Numeri interi, razionali.
Il sistema dei numeri reali: assioma di Dedekind, principio di
Archimede, estremo superiore ed inferiore. Valore assoluto,
disuguaglianza triangolare.
- Successioni e serie numeriche. Limite di una
successione. Convergenza delle successioni monotone e limitate.
Criterio di convergenza di Cauchy. Successioni definite per
ricorrenza. Il numero e . Teorema della permanenza del
segno, teorema dei due Carabinieri. Operazioni con i limiti, forme
indeterminate. La funzione esponenziale, logaritmo. Funzioni
trigonometriche, coordinate polari, formule di Eulero. Serie
numeriche. Convergenza della serie geometrica. Criteri di
convergenza per serie a termini positivi: condizioni necessarie,
criterio del confronto, del confronto asintotico, di condensazione,
del rapporto, della radice. Criterio di convergenza assoluta.
Riordinamento di una serie. Criterio di convergenza di Leibnitz.
Convergenza delle serie di potenze.
- Continuità delle funzioni di una
variabile. Sottoinsiemi di R: intervalli aperti,
chiusi. Punti di accumulazione. Limite di funzioni reali. Limiti
notevoli. Nozione di o ("o" piccolo). Funzioni continue.
Funzioni continue su un intervallo: teorema degli zeri, teorema di
Bolzano-Weierstrass. Conseguenze del teorema degli zeri: teorema
dei valori intermedi (l'immagine continua di un intervallo è
un intervallo), le funzioni continue invertibili sono monotone,
continuità della funzione inversa.
- Calcolo differenziale per funzioni di una
variabile. Derivata di una funzione in un punto,
significato geometrico, fisico. Continuità di una funzione
derivabile. Derivate successive. Derivate delle funzioni
elementari. Regole di derivazione: derivata della somma, del
prodotto, della composizione, della funzione inversa. Tassi di
crescita relativi e problemi applicati. Principio di Fermat.
Teorema di Rolle. Teorema di Lagrange (del valor medio) e prime
conseguenze. Metodo di Newton o delle tangenti per la
determinazione degli zeri di una funzione derivabile, stime di
convergenza. Problemi applicati di massimo e minimo. Teorema di
Cauchy del valor medio generalizzato. Regola di de l'Hôpital
e applicazioni. Formula di Taylor, resto in forma di Peano e di
Lagrange. Sviluppo di Taylor delle funzioni elementari,
applicazioni al calcolo dei limiti e allo studio qualitativo del
grafico di una funzione. Serie di Taylor, funzioni analitiche.
Teorema di derivazione (e integrazione) termine a termine per serie
di potenze.
- Calcolo integrale per funzioni di una
variabile. Il problema inverso della derivazione,
integrale indefinito. Il problema delle aree, integrale definito:
definizione e proprietà dell'integrale di Riemann.
Integrabilità delle funzioni continue. Teorema della media
integrale. Teorema fondamentale del calcolo integrale. Metodi di
integrazione: per sostituzione, per parti. Integrazione delle
funzioni elementari. Applicazioni al calcolo di lunghezze, aree,
volumi. Convergenza degli integrali impropri: criterio del
confronto, criterio di integrabilità assoluta. Criterio
integrale di convergenza per una serie numerica a termini
positivi.
- Calcolo differenziale per funzioni di più
variabili. Elementi di topologia di R^n.
Continuità e teorema di Weierstrass per funzioni di
più variabili reali. Funzioni differenziabili.
Continuità delle funzioni differenziabili. Derivate
direzionali e parziali, rappresentazione del differenziale
attraverso il gradiente. Teorema del differenziale totale.
Ortogonalità del gradiente rispetto agli insiemi di livello,
direzione di massima pendenza. Matrice Jacobiana. Funzioni a valori
vettoriali, curve e superfici. Vettori tangenti ad una superficie
parametrica in R^3 , vettore normale. Coordinate sferiche
e cilindriche in R^3 . Derivate successive, teorema di
Schwartz. Matrice Hessiana. Formula di Taylor, applicazione allo
studio dei punti critici di una funzione regolare. Teorema delle
funzioni implicite ed inverse. Derivate di funzioni implicite.
Massimi e minimi vincolati, teorema dei moltiplicatori di
Lagrange.
- Complementi. Equazioni differenziali a
variabili separabili. Equazioni differenziali lineari del secondo
ordine a coefficienti costanti.
L'esame finale consiste in una prova scritta comprendente sia
quesiti teorici che una serie di esercizi, seguita, in caso di
esito positivo, da una prova orale. E' tuttavia possibile
registrare direttamente quale voto d'esame l'inf tra la votazione
riportata nella prova scritta e 26/30.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
G. F. Simmons, M. Abate |
Calcolo differenziale e integrale |
Mc Graw-Hill |
2001 |
8838608555 |
F. Conti et al. |
Analisi Matematica, teoria e applicazioni |
Mc Graw-Hill |
2001 |
8838660026 |
Architettura degli elaboratori
Obiettivi formativi
Il corso si propone di dare allo studente la conoscenza necessaria
alla realizzazione in forma digitale di un algoritmo presentando le
possibili alternative comprese tra l'utilizzo di un sistema di
calcolo automatico general purpose e la costruzione di un
dispositivo digitale dedicato. Queste conoscenze costituiscono i
prerequisiti necessari alla comprensione dei meccanismi di
funzionamento di un sistema informativo e del processo di codifica
di un programma a partire da una sua descrizione ad alto livello.
Attività formative
Il corso viene svolto in 80 ore di lezione e 30 ore di laboratorio.
Le attività pratiche vengono svolte utilizzando le
attrezzature hardware e software presenti nei laboratori didattici
del Dipartimento.
Programma del corso
- Fondamenti:
- Codifica dell'informazione:
- Dall'informazione analogica a quella digitale.
- I sistemi numerici posizionali.
- La codifica alfanumerica.
- La codifica dei numeri relativi.
- Funzioni Booleane:
- Algebra di commutazione.
- Forme canoniche (mintermini e maxtermini).
- Operatori universali.
- Aritmetica:
- La codifica dei numeri in virgola mobile (IEEE 754).
- Le operazioni tra numeri in virgola mobile.
- I sommatori ripple-carry e carry-lookahead.
- Moltiplicatori combinatori.
- La struttura di una ALU.
- Progettazione digitale:
- Circuiti combinatori:
- Le porte logiche elementari.
- Componenti logici combinatori.
- Minimizzazione di funzioni mediante Mappe di Karnaugh.
- Algoritmo di Quine-McCluskey.
- Cenni di minimizzazione a piu` livelli.
- Mapping tecnologico.
- Circuiti sequenziali:
- Definizione.
- Elementi di memoria.
- Macchine a stati finiti.
- Modellazione di circuiti sequenziali mediante FSM.
- Minimizzazione degli stati di una FSM.
- Cenni all'assegnamento delle codifiche degli stati.
- Circuiti sequenziali con unità di elaborazione:
- Limiti del modello FSM.
- Il modello FSMD.
- La progettazione di una unità di elaborazione.
- Interazione unità di controllo/unità di
elaborazione.
- L'architettura del calcolatore:
- Principi di base:
- Il modello di Von Neumann.
- Il modello a macchine virtuali.
- La CPU.
- Le memorie.
- I BUS.
- I dispositivi di I/O.
- Le prestazioni.
- Il set di istruzioni:
- Modalita` di indirizzamento.
- Il linguaggio assemblatore.
- Operazioni di I/O.
- Procedure.
- Il set di istruzioni Intel 80xx86.
- L'unità di Elaborazione:
- Fetch/Decodifica/Esecuzione.
- Controllo cablato.
- Prestazioni, organizzazione a BUS multipli.
- Cenni sul controllo microprogrammato.
- La gerarchia di memoria:
- Principi generali.
- Classificazione delle Memorie.
- Le memorie cache.
- Analisi delle prestazioni.
- La memoria virtuale.
- Organizzazione dell'input/output:
- Interrupt.
- Accesso diretto alla memoria, l'arbitraggio.
- Interfacce standard di I/O.
- Le periferiche.
- Dal modello alla realtà:
- Classificazione dei sistemi di elaborazione.
- Gli approcci CISC e RISC.
- Pipelining.
- Intel 80X86.
Le competenze teoriche vengono verificate con una prova scritta
scomposta durante il corso in due prove intermedie. Per la verifica
delle attività di laboratorio si veda il relativo corso.
Il peso del voto di laboratorio incide per un massimo di 4/30 sul
voto finale.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
F.Fummi, M.Sami, C.Silvano |
Progettazione Digitale |
McGraw-Hill |
2002 |
8838660271 |
V.C. Hamacher, Z.G. Vranesic, S.G. Zaky |
Introduzione all'Architettura dei Calcolatori |
McGraw-Hill |
1997 |
8838607486 |
Architetture software
Obiettivi formativi
Il corso fornisce nozioni introduttive di base su architetture ed
ingegneria del software, affrontando negli aspetti più
salienti di pianificazione, progettazione, collaudo e manutenzione,
i processi di sviluppo e produzione del software, e presentando una
analisi comparata di architetture del software assieme a linguaggi
di modellazione e di specifica delle stesse.
Il programma del corso non prevede prerequisiti, è
cioè del tutto autocontenuto. La conoscenza di un linguaggio
di programmazione qualsiasi e un po' di esperienza di
programmazione sono desiderabili, ma non strettamente
necessarie.
Il programma del corso è fortemente influenzato dalle
direttive del nuovo ordinamento didattico, ed in particolare
esclude contenuti che prevedano un bagaglio di conoscenze
matematiche men che elementari o che contribuiscano
all'arricchimento dello stesso. Ciò non riflette un
mutamento di opinione in merito al valore e alla necessità
di tali conoscenze nell'ambito disciplinare e professionale di
questi corsi, bensì solo una scelta di ricollocazione di
detti contenuti nell'ambito dei programmi delle Lauree
specialistiche.
Attività formative
Il corso prevede lo svolgimento di 80 ore di lezioni ed
esercitazioni frontali in aula, e di attività di progetto in
laboratorio, in parte dirette dal docente. Per queste ultime, sono
previste ulteriori 30 ore di esercitazioni di laboratorio in
presenza del docente, e sono riservate ulteriori risorse di
laboratorio.
L'apprendimento della materia è sostenuto dallo studio
dei materiali didattici di riferimento e dal loro uso nella
realizzazione di progetti in laboratorio. Questi sono organizzati
come progetti componenti un unico progetto formativo, il quale
verte su alcuni temi speciali di interesse proposti dal
docente.
Temi speciali di interesse di questa edizione del corso
sono:
- gestione delle configurazioni del software
- aspetti economici dell'ingegneria del software
- architetture del software ad oggetti
nonchè i temi risultanti dalle combinazioni dei temi
suddetti.
Programma del corso
- Introduzione all'ingegneria del software: il
software: prodotto e processo, caratteristiche di qualità,
ciclo di vita del software, fasi ed attività del processo
produttivo, modelli del ciclo di vita dei sistemi software.
- Pianificazione del processo produttivo: Studio
di fattibilità, determinazione di obiettivi e vincoli,
gestione dei rischi, controllo dei processi di produzione, gestione
delle configurazioni, versionamento, amministrazione di
progetto.
- Analisi e specifica di architetture del
software: introduzione all'architettura del software,
tassonomia di architetture del software di uso più
frequente, analisi comparata di architetture del software in casi
di studio, linguaggi di modellazione e di specifica di architetture
del software, UML, OCL.
- Progettazione del software: cattura ed analisi
dei requisiti, prototipazione rapida di modelli, specifica e
codifica, verifica di correttezza, scalabilità,
progettazione basata su componenti, norme di codifica e
documentazione.
- Collaudo del software: metodi di collaudo,
strategie di collaudo (di unità, di integrazione,
funzionale, di sistema), metodi e strategie di collaudo di software
a oggetti, metriche di collaudo.
- Valutazione: metriche del software, modelli di
costo, progettazione di qualità, standard ISO 9001, 9000-3,
9126.
La verifica del profitto avviene mediante un colloquio individuale
sugli argomenti del programma, a partire dal contributo dello
studente al lavoro di progetto realizzato in laboratorio. Il
superamento della prova porta all'acquisizione di 8 crediti, a cui
si aggiungono 2 crediti per il corso di laboratorio.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
A. Fuggetta, C. Ghezzi, S. Morasca, A. Morzenti, M.
Pezzè |
Ingegneria del software |
Mondadori Informatica |
1991 |
8871316215 |
H. Sedehi |
Ingegneria economica del software |
Apogeo |
1997 |
887303358X |
J. Warmer, A. Kleppe |
The Object Constraint Language |
Addison Wesley Longman |
1999 |
0201379406 |
M. Fowler, K. Scott |
UML distilled |
Addison Wesley Longman |
1997 |
0201325632 |
Basi di dati e WEB
Obiettivi formativi
I sistemi per la gestione di basi di dati rappresentano un
elemento fondamentale per la maggior parte dei sistemi informatici
presenti nella realtà economica di ogni paese avanzato. Il
corso di “Basi di dati e WEB” ha lo scopo di fornire
allo studente le conoscenze necessarie per la progettazione di una
base di dati e delle relative applicazioni. In particolare nel
corso si illustreranno in dettaglio le metodologie per la
progettazione concettuale di una base di dati e per la successiva
realizzazione della stessa sui più diffusi sistemi per la
gestione di basi di dati. Inoltre si presenterano alcune tecniche
per la realizzazione dei sistemi per la gestione di basi di dati e
si illustreranno le caratteristiche fondamentali del linguaggio di
interrogazione SQL. Lo studente alla fine del corso sarà in
grado di definire autonomamente le specifiche concettuali di una
base di dati, di progettarne la struttura logica, di interrogare la
base di dati e di realizzare le applicazioni che interagiscono con
la base stessa.
Attività formative
Il corso prevede 80 ore di lezioni/esercitazioni in aula che
verranno svolte nel secondo e nel terzo quadrimestre. Le
esercitazioni riguarderanno la progettazione concettuale e logica
di una base di dati e l’interazione con una base di dati
relazionale. Le esercitazioni pratiche si svolgeranno
nell’ambito del corso di Laboratorio di Basi di Dati e WEB
svolto in parallelo a questo corso.
Programma del corso
- Introduzione ai sistemi per la gestione di basi di dati:
Architettura e funzionalità di un sistema per la gestione di
basi di dati. Concetti di: indipendenza fisica, indipendenza
logica, persistenza, concorrenza, affidabilità,
interrogazione e aggiornamento. Vantaggi di un sistema per la
gestione di basi di dati rispetto al file system di un sistema
operativo.
- Progettazione concettuale di una base di dati: Modelli
concettuali per il progetto dei dati. Il modello
Entità-Relazione (E-R). Elementi del modello E-R:
entità, attributi, relazioni, gerarchie di generalizzazione
e vincoli di cardinalità. Lo schema concettuale di una base
di dati.
- Progettazione logica di una base di dati: Modelli dei
dati per i sistemi di gestione di basi di dati: il modello
relazionale e il modello object-relational (cenni). Definizioni di:
relazione, vincoli di integrità e schema relazionale. Lo
schema logico di una base di dati. Traduzione di schemi concettuali
in schemi relazionali. Linguaggi per la definizione di una base di
dati relazionale: il linguaggio SQL. Istruzioni SQL per: la
creazione di una relazione, la definizione di vincoli di
integrità e il controllo dell'accesso ai dati.
- Interazione con una base di dati: Introduzione ai
linguaggi per la definizione, modifica e interrogazione di una base
di dati. L’algebra relazionale. Il linguaggio SQL: il
costrutto di selezione (Select-From-Where), interrogazioni
nidificate, ordinamento e raggruppamento dei dati; il costrutto di
inserimento, cancellazione e aggiornamento (Insert, Delete,
Update). Il concetto di vista.
- L'architettura interna di un sistema per la gestione di basi
di dati: Rilevanza dei sistemi transazionali. Concetto di
transazione. Proprietà di una transazione. Controllo della
concorrenza (view, conflict serializzabilità e locking a due
fasi). Metodi di accesso ai dati: strutture dati sequenziali,
hashing e a indice.
- Basi di dati e server WEB: Cenni al linguaggio HTML
(struttura di un documento, marcatori principali, form). Cenni al
protocollo HTTP. I sistemi informativi su WEB. Tecniche e strumenti
per l’interazione tra una base di dati e un server HTTP:
approccio basato su CGI, approccio basato su estensioni del server
WEB (servlet). Interazione servlet/base di dati: JBDC e il concetto
di Java bean. Java Server Pages (JSP): immersione di Java in HTML,
interazione JSP/servlet.
L'esame di Basi di Dati e WEB si svolge in concomitanza con
l'esame di Laboratorio di Basi di Dati e WEB. L'esame è
orale. Per l'ammissione all'esame orale lo studente deve superare
una prova scritta di 3 ore che consiste in alcuni esercizi sulla
progettazione e interrogazione di una base di dati, in alcune
domande sulla parte di teoria e in un esercizio sulla parte di
laboratorio. L'esercizio sulla parte di laboratorio verifica le
capacità di progettare e realizzare una interfaccia ad un
base di dati via WEB utilizzando l'approccio JSP/Servlet. La prova
scritta si intende superata se lo studente ottiene una votazione di
almento 18/30 negli esercizi relativi alla prima parte
(progettazione/interrogazione di una base di dati e domande di
teoria) e una valutazione di 18/30 nell'esercizio di laboratorio.
Il voto complessivo della prova scritta si ottiene calcolando la
media pesata del voto relativo alla prima parte (peso 4/5) e del
voto relativo all'esercizio di laboratorio (peso 1/5).
Alla prova orale lo studente può decidere di verbalizzare
il voto della prova scritta o di essere riesaminato mediante
colloquio. In tal caso il voto finale dell'esame sarà basato
puramente sul colloquio senza tenere in alcun conto l'esito della
prova scritta.
Lo studente che dovesse superare una sola parte della prova
scritta può recuperare l'altra parte durante gli appelli
d'esame successivi. In tal caso lo studente avrà a
disposizione 2 ore e 20 minuti circa per recuperare la parte di
progettazione/interrogazione di una base di dati e 50 minuti circa
per recuperare la parte di laboratorio. Il voto finale della prova
scritta sarà in questo caso la media pesata dei voti di
teoria e laboratorio decurtati di un punto.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone |
Basi di dati (seconda edizione) |
McGraw-Hill Libri Italia srl |
1999 |
8838608245 |
E. Baralis, A. Belussi, G. Psaila |
Basi di dati - Temi d'esame svolti |
Progetto Leonardo Società Editrice Esculapio
Bologna |
1999 |
B135655713 |
Calcolo numerico
Obiettivi formativi
Nel corso vengono esaminati i problemi - ed i relativi algoritmi di
risoluzione - più frequenti in campo numerico. Al di
là dell'indispensabile bagaglio teorico, particolare enfasi
è data all'aspetto algoritmico e più puramente
numerico - sia dal punto di vista dell'implementazione e della
complessità di calcolo che da quello della stabilità
- con l'obiettivo di fornire allo studente, oltre alla necessaria
conoscenza dei problemi, quella dose di sensibilità per il
"numero" e di spirito critico che sempre dovrebbe essere presente
sia in chi progetta che in chi utilizza applicazioni in questo
campo.
Attività formative
Il corso viene svolto in 60 ore di lezione/esercitazione frontale e
30 ore di laboratorio numerico (codice MATLAB), equamente suddivise
in due periodi. L'attività di laboratorio prevede
l'apprendimento delle operazioni fondamentali presenti nel codice
di calcolo ed inerenti agli argomenti trattati, l'utilizzo di
librerie fornite dal docente e l'implementazione di alcuni
algoritmi presentati durante le lezioni.
Programma del corso
- Analisi degli errori. Errore assoluto ed errore
relativo. Rappresentazione dei numeri. Numeri di macchina ed errori
connessi. Le operazioni elementari. Algoritmi per il calcolo di una
espressione. Errori di propagazione: analisi del primo ordine ed
analisi differenziale, condizionamento e stabilità.
- Equazioni non lineari. Separazione degli zeri. I metodi
di iterazione funzionale. Convergenza e criteri di arresto. Metodi
particolari: bisezione, secanti e tangenti. Accelerazione di
Aitken. Le equazioni algebriche: schema di Horner, limitazione
delle radici, proprietà del metodo delle tangenti.
- Sistemi di equazioni. Condizionamento di una matrice e
sue conseguenze. Metodi diretti: sostituzione in avanti ed
all'indietro, fattorizzazione LU, fattorizzazione QR, eliminazione
di Gauss senza e con pivoting. Metodi iterativi: costruzione e
convergenza, criteri di arresto, metodo di Jacobi, metodo di
Gauss-Seidel, condizioni sufficienti di convergenza per i metodi di
Jacobi e di Gauss-Seidel. Sistemi sparsi, a banda, sovra- e
sotto-determinati ed omogenei. Brevi cenni sui sistemi non
lineari.
- Autovalori ed autovettori. Richiami sulle
proprietà fondamentali. Trasformazioni per similitudine:
metodo di Householder e metodo di Gauss. Localizzazione degli
autovalori: teorema di Hirsch e di Gershgorin. Metodi di calcolo
degli autovalori: uso del polinomio caratteristico per matrici
tridiagonali e di Hessenberg, metodo di Jacobi, metodo delle
potenze e delle potenze inverse, metodo QR senza traslazione, con
traslazione singola e con passo doppio di Francis. Cenni sulle
matrici "companion" e radici complesse di un polinomio.
- Interpolazione di dati ed approssimazione di funzioni.
Interpolazione polinomiale: interpolazione di Lagrange, algoritmo
di Neville, polinomio di Newton. Stima dell'errore di
approssimazione. Interpolazione polinomiale a tratti. Funzioni
spline. Cenni sull'interpolazione trigonometrica. Il metodo dei
minimi quadrati.
- Derivazione ed integrazione numerica. Derivazione
numerica ed errori connessi. Integrazione numerica: costruzione di
una formula di quadratura, formule di quadratura di Newton-Cotes ed
errori connessi, formule di quadratura di tipo gaussiano ed errori
connessi, formule composite.
La verifica del profitto avviene mediante una prova in laboratorio,
nella quale deve essere analizzato e risolto un certo numero di
problemi che richiedono sia una impostazione teorica, basata sulle
conoscenze acquisite nel corso, che la relativa risoluzione
numerica con gli strumenti su indicati. La votazione riportata
nella prova è quella definitiva, fatto salvo il diritto di
ciascuno studente di richiedere l'effettuazione di una prova orale,
le cui modalità vanno definite caso per caso.
Economia aziendale
Docente |
non ancora assegnato |
Crediti |
4 |
Periodo |
3º quadrimestre |
Obiettivi formativi
Il corso intende fornire agli studenti gli elementi di base e gli
istituti fondamentali utili a comprendere i diversi assetti e
modalità di funzionamento dell’organizzazione. Si
propone inoltre di sviluppare capacità di lettura dei
fenomeni propri della cultura organizzativa d'impresa.
Programma del corso
- Parte Prima - Organizzazione e management
- 1. La teoria organizzativa in azione.
- 2. L’organizzazione come disciplina e come campo di
studio.
- 3. Le organizzazioni come sistemi.
- 4. Le dimensioni della progettazione organizzativa.
- 5. Il ruolo della teoria e della progettazione
organizzativa.
- Parte seconda - Obiettivi strategici e architetture
organizzative
- 1. Strategie organizzative e progettazione organizzativa. Gli
approcci contingenti.
- 2. Ambiente esterno e sistema organizzativo: l'approccio
socio-tecnico alla progettazione organizzativa.
- 3. L’organizzazione come sistema aperto.
- 4. La macro-struttura organizzativa: gli schemi
fondamentali.
- 5. La micro-struttura organizzativa: compiti, mansioni e
posizioni organizzative.
- 6. I meccanismi operativi.
- Parte Terza - Progettazione e cambiamento nelle
organizzazioni
- 1. Le dimensioni organizzative, ciclo di vita e controllo.
- 2. Cultura organizzativa e valori etici.
- 3. Innovazione e cambiamento.
Modalità d'esame non inserito
Fisica
OBIETTIVI FORMATIVI
Il corso di Fisica è rivolto agli studenti del corso di
laurea triennale in Informatica. Scopo del corso è la
presentazione dei fondamenti del metodo sperimentale, della
meccanica classica del punto materiale e dei sistemi di punti
materiali, della termodinamica e dell'elettromagnetismo. Il corso
è integrato da esercitazioni numeriche e da elementi di
calcolo vettoriale. Si presuppone che lo studente abbia
familiarità con gli argomenti di matematica e di geometria
svolti nei corsi della scuola media superiore e si consiglia la
frequenza simultanea del corso di Analisi Matematica. Per gli
argomenti trattati il corso di Fisica può essere sicuramente
dichiarato equipollente al corso di Fisica I del Corso di laurea
triennale in Tecnologie dell'Informazione.
ATTIVITÀ FORMATIVE
Gli obiettivi formativi sono realizzati mediante attività
didattiche (lezioni ed esercitazioni) frontali, tenute durante il
secondo e terzo quadrimestre per un numero complessivo di 80 ore.
Allo scopo di facilitare lo studente nella comprensione e
nell'apprendimento delle leggi e dei principi della meccanica,
della termodinamica e dell'elettromagnetismo durante le lezioni
frontali è fatto costante ricorso alla fenomenologia, mentre
le esercitazioni avranno per oggetto la soluzione di esercizi e
problemi che simulano situazioni ed eventi naturali. Le
esercitazioni sono organizzate e svolte in maniera tale da mettere
lo studente in condizioni di affrontare e superare la prova scritta
dell'esame finale.
PROGRAMMA DEL CORSO
- Grandezze fisiche e loro misura: Note introduttive. Metodo
sperimentale. Definizione operativa delle grandezze fisiche.
Grandezze fisiche fondamentali e derivate. Unità di misura.
Sistemi di unità di misura. Il sistema internazionale
(S.I.). Scalari e vettori. Operazioni con i vettori: somma,
prodotto scalare e prodotto vettoriale. Ordini di grandezza e
generalità sulle leggi fisiche. Analisi dimensionale.
Rappresentazione tabulare e grafica.
- Cinematica del punto materiale: Relatività del moto.
Sistemi di riferimento. Validità sperimentale della
geometria euclidea. Sistemi di riferimento. Trasformazioni delle
coordinate di un punto fra diversi sistemi di riferimento.
Posizione, spostamento e velocità. Concetto di punto
materiale. Legge oraria del moto. Traiettoria. Moto rettilineo e
curvilineo. Moto rettilineo. Velocità e accelerazione media
e istantanea. Derivazione ed integrazione delle grandezze
cinematiche. Condizioni iniziali. Dall'accelerazione alla
velocità. Dalla velocità alla legge oraria. Moto
rettilineo uniforme e vario. Moto rettilineo uniformemente
accelerato. Nota a(x) ricavare v. Accelerazione di gravità
g. Moto in due e tre dimensioni. Vettori posizione, spostamento,
velocità ed accelerazione. Loro componenti. Moto curvilineo.
Coordinata curvilinea. Moti ad accelerazione costante. Componenti
tangenziale e normale dell'accelerazione. Moto circolare:
velocità ed accelerazione angolare. Periodo e frequenza.
Componenti radiale e trasversale della velocità e
dell'accelerazione nel moto curvilineo piano.
- Moti relativi: Sistemi di riferimento assoluti. Posizione e
velocità relativa di due punti materiali. Moto relativo
traslatorio uniforme ed uniformemente accelerato. Spostamento di
trascinamento. Velocità e accelerazione di trascinamento.
Trasformazioni di Galileo: invarianza dell'accelerazione. Moto
relativo rotatorio uniforme: accelerazione centrifuga e di
Coriolis. Moto dei corpi sulla superficie della terra.
- Dinamica del punto materiale: Principio di inerzia. Particella
libera. Concetto di massa. Massa inerziale e gravitazionale.
Interazione fra due particelle. Quantità di moto. Principio
di conservazione della quantità di moto. Leggi di Newton.
Concetto di forza. Definizione operativa di forza. Equazione del
moto di una particella. Risultante delle forze applicate.
Equilibrio statico e dinamico. Vincoli e reazioni vincolari.
Classificazione delle forze esistenti in natura. Forza peso e forza
elastica. Forze d'attrito statico e dinamico. Moto di una
particella in un fluido. Moto curvilineo di una particella:
componenti tangenziale e centripeta della risultante delle forze
agenti. Sistemi non inerziali. Forze apparenti. Sistemi in
rotazione uniforme: forza centrifuga e forza di Coriolis. Momento
della quantità di moto, momento di una forza e teorema del
momento angolare. Forze centrali. Conservazione del momento
angolare. Legge della gravitazione universale di Newton. Leggi di
Keplero.
- Energia e Lavoro: Integrali primi della forza: impulso e
lavoro. Teorema dell'impulso. Lavoro elementare e lavoro finito:
proprietà degli integrali di linea. Potenza. Unità di
misura del lavoro e della potenza. Energia cinetica. Teorema
dell'energia cinetica. Invarianza del lavoro dal cammino di
integrazione fra due punti. Forze conservative. Energia potenziale.
Principio di conservazione dell'energia meccanica. Lavoro di una
forza dissipativa. Proprietà della funzione energia
potenziale. Relazione fra energia potenziale e forza. Concetto di
derivata direzionale. Gradiente di una funzione. Campi di forze
centrali. Natura conservativa di un campo di forze centrali. Moto
sotto l'azione della forza gravitazionale. Potenziale
gravitazionale e centrifugo. Potenziale efficace. Orbita di
equilibrio.
- Dinamica dei sistemi di punti materali: Generalizzazione dei
risultati relativi alla dinamica di una particella a un sistema
discreto di punti materiali: quantità di moto, momento
angolare ed energia cinetica. Forze interne, forze esterne e loro
momenti. Terzo principio della dinamica. Equazioni cardinali della
dinamica di un sistema di particelle. Centro di massa (CM):
definizione e proprietà. Moto del CM, e moto rispetto al CM
. Teoremi di König. Problema dei due corpi. Massa ridotta.
Leggi di conservazione delle grandezze dinamiche di un sistema di
punti materiali. Urti fra 2 punti materiali. Approssimazione di
impulso.Urti elastici e anelastici. Urti centrali.
- Dinamica del corpo rigido: Definizione e proprietà
meccaniche. Gradi di libertà di moto. Moto di rotazione.
Momento angolare. Momento di inerzia. Teorema di Huygens-Steiner.
Energia cinetica. Equazioni del moto del corpo rigido. Moti di un
corpo rigido libero e vincolato. Moto di puro rotolamento (cenni).
Leggi di conservazione nel moto di un corpo rigido. Urti tra
particelle libere e corpi rigidi vincolati. Conservazione del
momento angolare.
- Moti oscillatori: Cinematica del moto armonico semplice (MAS).
Dinamica del MAS. Forza ed energia nel MAS. Pendolo semplice e
pendolo composto. Oscillazioni non armoniche. Oscillazioni
smorzate. Oscillazioni forzate. Risonanza di ampiezza e risonanza
dell'energia.
- Fluidi: Grandezze cinematiche e dinamiche nei fluidi. Pressione
idrostatica. Compressibilità e modulo di volume. Idrostatica
nel campo gravitazionale. Leggi di Archimede e di Stevino.
Idrodinamica di un fluido perfetto, teorema di Bernoulli. Fluidi
reali, viscosità (cenni).
- Sistemi e stati termodinamici: Sistema e ambiente. Universo
termodinamico. Sistemi aperti, chiusi e isolati. Variabili
termodinamiche: concentrazione, pressione, volume e temperatura.
Stati di equilibrio termodinamico. Variabili di stato. Gas ideali o
perfetti: definizione e proprietà. Legge di stato di un gas
perfetto. Equilibrio termico. Principio zero della termodinamica.
Pareti diatermiche e adiabatiche. Contatto termico. Definizione
operativa di temperatura. Punti fissi. Scale termometriche: scale
Celsius e Kelvin. Termometri. Elementi di calorimetria. Temperature
e calore. Capacità termica e quantità di calore
scambiata. Calori specifici molari e calore specifico di un solido.
Cambiamenti di fase. Calori latenti. Calorimetri. Trasformazioni
reversibili ed irreversibili. Il piano di Clepeyron. Trasformazioni
isoterme, isocore e isobare. Cicli termodinamici. Lavoro
termodinamico: dipendenza dalla trasformazione termodinamica.
Lavoro per trasformazioni reversibili ed irreversibili.
- Primo principio della termodinamica: Esperimenti di Joule.
Equivalenza fra lavoro e calore. Energia interna. Conservazione
dell'energia di un sistema termodinamico. Energia interna di un gas
perfetto. Interpretazione microscopica (cenni). Calori specifici
molari dei gas ideali. Relazione di Mayer. Calore specifico e
energia interna dei corpi solidi. Il primo principio della
termodinamica per un gas perfetto. Applicazione del primo principio
nelle trasformazioni reversibili dei gas ideale: isoterma, isocora,
isobara. Trasformazioni adiabatiche. Trasformazione adiabatica
reversibile di un gas perfetto. Trasformazioni cicliche di un gas.
Cicli termici e cicli frigoriferi. Rendimento di un ciclo termico.
Ciclo di Carnot. Efficienza o coefficiente operativo di prestazione
di un ciclo frigorifero.
- Secondo principio della termodinamica: Macchine termiche e
macchine frigorifere. Sorgenti di calore e termostati. Enunciati
del secondo principio della termodinamica. Equivalenza fra
l'enunciato di Kelvin-Planck e di Clausius. Teorema di Carnot.
Rendimento massimo. Conseguenze del teorema di Carnot. Temperatura
termodinamica assoluta. Diseguaglianza di Clausius. Entropia.
Definizione e proprietà. Stato di riferimento. Calcolo della
variazione di entropia. Trasformazioni adiabatiche. Il principio di
aumento dell'entropia. Diagrammi T-S. Scambi di calore con
sorgenti. Entropia dell'universo termodinamico.
- Campo elettrico: Carica elettrica. Isolanti e conduttori. Legge
di Coulomb. Campo elettrici e linee di forza. Campo elettrico
generato da una distribuzione di cariche puntiformi. Teorema di
Gauss.
- Potenziale elettrico: Energia potenziale elettrostatica.
Potenziale elettrostatico. Superfici equipotenziali. Differenza di
potenziale. Relazione fra campo e potenziale elettrico.
- Capacità elettrica: Condensatori e capacità.
Condensatori in serie e in parallelo. Energia immagazzinata in un
campo elettrico. Condensatore in presenza di un dielettrico.
- Corrente elettrica: Cariche in movimento. Conduzione elettrica
nei metalli. Corrente elettrica. Densità di corrente.
Resistenza e resistività. Legge di Ohm. Intensità di
corrente. Resistenze in serie e in parallelo. Energia e potenza nei
circuiti elettrici. Legge di Joule. Semiconduttori e
superconduttori (cenni).
- Circuiti elettrici in corrente continua. Forza elettromotrice e
resistenza interna di una batteria. Calcolo della corrente. Leggi
di Kirchhoff. Teorema di Thevenin. Carica e scarica di un
condensatore. Circuiti RC.
- Correnti variabili nel tempo: Circuiti oscillanti. Induzione
elettromagnetica. Legge di Faraday-Newmann-Lenz.
La verifica del profitto avviene mediante la prova d'esame,
effettuata al termine del 3 quadrimestre. Le date degli appelli
sono decisi in armonia con il calendario delle sessioni d'esame
deliberato dalla Facoltà. L'iscrizione all'esame avviene con
le usuali modalità tramite supporto informatico. L'esame
consiste di una prova scritta e di una prova orale. L'ammissione
alla prova orale è subordinata al superamento della prova
scritta. La prova scritta consiste nella risoluzione di alcuni
esercizi e problemi su argomenti del programma svolto in aula, e
può considerarsi superata se la votazione riportata dallo
studente non è inferiore a 15/30. La prova orale consiste in
un colloquio finalizzato all'approfondimento della verifica delle
conoscenze dello studente muovendo dai principi e dalle leggi
fisiche utilizzate nella prova scritta. La validità della
prova scritta è limitata a tre appelli consecutivi d'esame,
compreso quello in cui lo scritto è stato superato. Il
superamento dell'esame porta all'acquisizione di 8 crediti.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
D. Halliday, R. Resnick, J. Walker |
Fondamenti di Fisica: Vol. I - Meccanica, Termologia; Vol. II -
Elettrologia, Magnetismo, Ottica. |
Casa Editrice Ambrosiana |
2001 |
8821405389 |
M. Alonso, E.J. Finn |
Elementi di Fisica per l'Universita': Vol. I - Meccanica e
Termodinamica; Vol. II - Campi e Onde |
Masson S.p.A. |
1982 |
8821405486 |
Fondamenti dell'informatica
Obiettivi formativi
Scopo del corso è quello di fornire gli strumenti formali e
le nozioni fondamentali che stanno alla base dell'informatica vista
come scienza. Il corso, fondamentale per la Laurea in Informatica e
Tecnologie dell'informazione, sviluppa la teoria della
cacolabilità arricchendo semplici macchine a stati (automi a
stati finiti) con strutture dati via via piu' complesse, fino ad
ottenere la potenza espressiva dei moderni linguaggi di
programmazione. Partendo dalla teoria degli automi e dei linguaggi
formali, teoria a fondamento della descrizione e
dell'implementazione dei linguaggi di programmazione, si arriva a
delineare i concetti e la natura dei problemi che ammettono
soluzione effettiva, ovvero dei problemi risolvibili mediante
strumenti automatici di calcolo quali i computers, e dei problemi
che non sono risolvibili mediante gli stessi strumenti, defininendo
i limiti di cio' che è calcolabile. Il corso è
propedeutico per tutti i corsi di informatica teorica ed
applicata, in particolar modo per i corsi di Complessità,
Metodi formali, Sicurezza e crittografia, i corsi di linguaggi
(III, compilatori etc.), deduzione automatica, e Semantica.
Attività formative
Il corso ha carattere prevalentemente teorico. Sono previste
esercitazioni orientate allo studio di semplici problemi ed alla
loro classificazione all'interno della teoria classica della
calcolabilità.
Programma del corso
- Automi e linguaggi formali (25h):
Linguaggi e grammatiche
Automi a stati finiti e linguaggi regolari
Linguaggi liberi da contesto
Forme normali di Chomsky e Greibach
Automi a pila non deterministici
Classificazione di Chomsky
Nozione intuitiva di algoritmo
Modelli formali per il calcolo: Macchine di Turing/funzioni
ricorsive/programmi while
Espressività di un linguaggio di programmazione
Tesi di Church
Goedelizzazione, Universalità e Teorema s-m-n
Metaprogrammazione: compliazione, interpretazione e
specializzazione
Problemi risolvibili e non: il problema della terminazione
Insiemi ricorsivi e r.e.
Teoremi di Ricorsione e Teorema di Rice
Riducibilità funzionale e completezza in r.e.
Insiemi creativi, produttivi e semplici
Risultati di incompletezza (cenni)
TESTI
Dispense distribuite a lezione a integrazione dei seguenti testi:
- Hopcroft and Ullman, "Introduction to Automata Theory,
languages and computation", Addison Wesley, 1979
- Jones, "Computability and Complexity", MIT Press,
1997
- Rogers, "Theory of recursive functions and effective
computability", MIT Press, 1988
- Odifreddi, "Classical recursion theory", Elsevier
North-Holland, 1989
L'esame è composto da una prova scritta, orientata
all'accertamento della capacità del candidato di risolvere
esercizi nell'ambito dei linguaggi formali e della teoria della
calcolabilità, ed una prova orale, principalmente orientata
all'accertamento della conoscenza dei principali risultati della
teoria vista a lezione.
Informatica di base
Obiettivi formativi
Il corso si propone di fornire le conoscenze introduttive
dell'Informatica. Si richiede allo studente, al termine dello
stesso corso, di sapere manipolare i concetti elementari di
Architetture dei sistemi di elaborazione, Sistemi Operativi, Teoria
degli Automi e Progammazione. Inoltre lo studente stesso deve
essere preparato nell'uso di strumenti di Produttivita'
individuale, in particolare video editor, spreadsheet, posta
elettronica, navigazione web.
Attività formative
Il corso si svolge sia in aula che in laboratorio con equivalente
impegno (2 crediti + 2 crediti).
Programma del corso
- Modulo 1: Elementi di Architettura degli elaboratori
Che cos'è un calcolatore elettronico: cenni alla storia dei
circuiti digitali;
Struttura di un elaboratore elettronico;
Reti locali di calcolatori;
Reti geografiche di calcolatori.
- Modulo 2:Elementi di Teoria degli Automi e della
Computazione
Macchine a stati e concetto di calcolo;
Nozione formale di problema di elaborazione;
Linguaggi e loro riconoscimento;
Problemi teoricamente risolubili e problemi praticamente
risolubili.
- Modulo 3: Introduzione ai sistemi operativi
Concetto di sistema operativo;
Struttura di un sistema operativo;
Componenti logiche di un ambiente operativo;
Nozione di concorrenza;
Sistemi multiutente: autorizzazioni e ruoli.
- Modulo 4: Introduzione alla Programmazione ed all'Ingegneria
del Software
Nozioni e teminologia della programmazione;
Linguaggi di programmazione;
Linguaggi ad oggetti;
Progetto di applicazioni;
Classificazione del software.
- Modulo 5: Laboratorio di Sistemi Operativi
Sistema Operativo Linux;
Operazioni utente fondamentali nel sistema operativo Linux.
- Modulo 6: Laboratorio di Informatica Generale
Navigazione Internet e Posta Elettronica;
Elaborazione di Testi e Fogli elettronici;
Uso della rete locale e di internet: stampa di documenti,
trasferimento di file in locale e su rete geografica.
La verifica avviene tramite una prova scritta. A richiesta dello
studente è possibile svolgere una prova orale.
Interazione uomo-macchina e multimedia
Obiettivi formativi
Il corso intende fornire le basi teoriche e le linee guida per
il progetto di interfaccie uomo-calcolatore, con particolare
attenzione alle interfacce grafiche o visuali.
La prima parte del corso è dedicata allo studio delle
basi dell'interazione vera e propria in termini di fattori umani,
modello di utente, stili di interazione, usabilità,
multimodalità e strumenti software utilizzati. La seconda
parte del corso è dedicata allo studio degli strumenti per
progettare un'interfaccia fornendo i principi di base per il
trattamento delle immagini e la grafica. Lungo il corso, saranno
inoltre presentati esempi relativi ad interfaccie multimodali e
percettive (visuali, uditive, aptiche), ipermedia e world wide web,
interfaccie tridimensionali, con applicazioni rivolte alla
realtà virtuale, ubiquitous computing e alle interfaccie
indossabili (wearables).
L'obiettivo finale del corso è duplice: da una parte
fornire i principi e le tecniche di base delle interfaccie, e
dall'altra mostrare lo stato dell'arte delle tecnologie esistenti e
il loro utilizzo nell'ambito dell'interazione uomo-macchina.
Attività formative
Il corso viene svolto in 40 ore di lezioni frontali e 15 ore di
laboratorio. L'attività di laboratorio prevede lo studio e
l'analisi di interfaccie esistenti al fine di effettuare una
valutazione critica basata sui criteri visti a lezione. Inoltre,
è prevista un'attività iniziale di progetto di
un'interfaccia propria sulla base di specifiche del docente.
Programma del corso
- Principi dell'interazione: fattori umani e psicologici, stili
di interazione, usabilità, modelli e paradigmi, strumenti
software e hardware per l'interazione.
- Formazione ed elaborazione di immagini: formati, immagini a
colori, manipolazione del colore, filtraggio e operazioni
geometriche, formati di compressione.
- Rudimenti di grafica: geometria affine e trasformazioni
geometriche, rappresentazione di oggetti, rappresentazioni
poliedrali (mesh), visualizzazione e primitive grafiche, pipeline
grafica, coordinate e trasformazioni di vista, rimozione facce
nascoste.
- Applicazioni: interfaccie WWW, interfaccie tridimensionali,
interfaccie multimodali, realtà virtuale, mixed reality,
visualizzazione dell’informazione.
La verifica del profitto avverà mediante
un'attività di progetto e una breve prova orale. Il progetto
riguarderà l'analisi di interfaccie esistenti e nella
realizzazione di una propria interfaccia. La prova orale
verterà sui temi sviluppati a lezione e potrà essere
sostituita da una prova scritta con brevi domande simili alla prova
orale.
Il superamento delle prove porta all'acquisizione di 5
crediti.
Laboratorio di algoritmi
Obiettivi formativi
Il corso si propone di raffinare le conoscenze dello studente
circa la pratica della programmazione a oggetti soprattutto
nell'implementazione di algoritmi e strutture dati avanzate.
Il linguaggio con il quale si svolgeranno le esercitazioni
è il Java di cui si assume una conoscenza di base.
Attività formative
Il corso viene svolto in 30 ore di esercitazione in laboratorio.
Si ricorda che il corso vale 2 CFU, per cui sono previste ulteriori
20 ore di lavoro individuale da svolgersi presso i laboratori
didattici.
Programma del corso
- Uso del meccanismo dell'
Interfaccia
. Esempio di
applicazione con l'implementazione dell'ADT Lista, Coda e
Pila.
- Uso dell'interfaccia
Comparable
. Implementazione
degli algoritmi di ordinamento per inserimento (InsertionSort) e
per passo calante (ShellSort).
- Tecniche di confronto di implementazioni. Confronto tra due
implementazioni di algoritmi di ordinamento: QuickSort e
MergeSort.
- Implementazioni dell'ADT HashTable.
- Implementazione di un algoritmo di programmazione dinamica:
ricerca massima sottosequenza comune (MaxSSC).
- Implementazioni dell'ADT Albero e Albero di ricerca binario.
Uso dell'interfaccia
Iterator
. Implementazioni metodi
di visita.
- Implementazione di un algoritmo greedy: algoritmo di
Kruskal.
L'esame di laboratorio di algoritmi e strutture dati è in
concomitanza con l'esame di algoritmi e strutture dati. Le
modalià sono quindi spiegate nella pagina del corso di Algoritmi
e strutture dati.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
Adam Drozdek |
Algoritmi e strutture dati in Java |
Apogeo |
2001 |
8873038956 |
Laboratorio di architettura degli elaboratori
Obiettivi formativi
Il corso si propone di dare allo studente le conoscenze necessarie
alla descrizione di dispositivi digitali mediante linguaggi
dedicati e alla realizzazione di programmi assembly per piattaforme
Intel 80X86.
Attività formative
Il corso ha un carattere strettamente pratico e prevede l'utilizzo
dei laboratori didattici del dipartimento.
Programma del corso
- Progettazione digitale:
-
- La minimizzazione esatta di funzioni a due livelli:
Espresso.
- La minimizzazione approssimata di circuiti combinatori:
MIS.
- La minimizzazione degli stati: Stamina.
- L'assegnamento degli stati: Nova.
- La progettazione automatica di FSM: SIS.
- Componenti di libreria combinatori e sequenziali.
- Modellazione e progettazione di FSMD.
- Il linguaggio assemblatore dell'Intel 80X86:
-
- Gestione della memoria.
- La rappresentazione dei dati.
- Le strutture di controllo.
- Procedure e funzioni.
- I servizi di sistema operativo.
Allo studente verra` richiesto di realizzare un circuito
sequenziale ed un programma assembler che implementano un algoritmo
dato. Parte delle lezioni in laboratorio saranno utilizzate per lo
sviluppo di questi due progetti.
Laboratorio di architetture software
Obiettivi formativi
Per il lavoro di laboratorio, il docente fornisce alcune
indicazioni e proposte tematiche utili alla definizione di
progetti, e adempie al coordinamento dei gruppi di lavoro, di
formazione e composizione dinamica.
È compito di ciascun gruppo di lavoro la scelta dell'area
tematica, la definizione del titolo e degli obiettivi del progetto,
la sua pianificazione e la sua realizzazione, alla quale dovrebbero
essere sufficienti le ore di laboratorio riservate al corso.
Attività formative
Il Corso consta di 30 ore di esercitazioni di laboratorio in
presenza del docente, e di ulteriori attività di progetto in
laboratorio senza assistenza diretta del docente, per le quali si
rinvia alla documentazione di dette attività, all'indirizzo:
http://profs.sci.univr.it/~scollo/ais2001-2/lab/proj/index.html
Programma del corso
I progetti di questo laboratorio sono concepiti come parti di un
unico progetto, sulla tematica:
gestione delle configurazioni e aspetti economici
nell'ingegneria del software e nello sviluppo di architetture del
software ad oggetti
La pianificazione di questo progetto è parte integrante
del lavoro di laboratorio. Per questa si rinvia alla documentazione
del piano del progetto, all'indirizzo:
http://profs.sci.univr.it/~scollo/ais2001-2/lab/act/plan/index.html
La verifica del profitto avviene mediante la valutazione, in un
colloquio individuale, del contributo dello studente al lavoro di
progetto realizzato in laboratorio. La documentazione di
riferimento a questo scopo sarà quella resa disponibile
dallo studente nello spazio di lavoro condiviso in cui si è
sviluppato il suo lavoro di laboratorio:
studenti
del corso
accesso
pubblico
Il superamento della prova porta all'acquisizione di 2 crediti, da
sommarsi a quelli acquisiti nel resto del colloquio d'esame (di
Ingegneria del software o di Architetture del software).
Laboratorio di basi di dati e WEB
Obiettivi formativi
Il corso si propone di introdurre lo studente a:
- l'uso di un Database Management System (DBMS) per la
creazione/gestione/interrogazione di un database,
- la realizzazione di siti web dinamici basati su database.
Le tecnologie principali utilizzate nelle esercitazioni sono le
servlet e le Java Server Pages (JSP), per cui si
assume che lo studente abbia una discreta conoscenza del linguaggio
di programmazione Java.
Attività formative
Il corso viene svolto in 30 ore di esercitazione in laboratorio.
Si ricorda che il corso vale 2 CFU, per cui sono previste ulteriori
20 ore di lavoro individuale da svolgersi presso i laboratori
didattici.
Programma del corso
- Introduzione al DBMS PostgreSQL: Connessione ad un database,
uso di semplici comandi di controllo, creazione di tabelle.
- PostgreSQL: vincoli di integrità, politiche di reazione
alle violazioni dei vincoli di integrità referenziale.
- PostgreSQL: interrogazioni SQL semplici.
- PostgreSQL: interrogazioni SQL complesse.
- Linguaggio HTML: struttura di un documento HTML, fogli di
stile, marcatori fondamentali, tabelle.
- Linguaggio HTML: form. Attivazione di un programma CGI (shell
script).
- Installazione di un engine sul server WEB per la gestione delle
servlet. Esempi di servlet semplici. Interazione servlet-dbms
PostgreSQL.
- Uso form e servlet per la gestione di dati.
- Java bean e servlet.
- Java Server Pages (JSP) e interazione con le form HTML.
- JSP e servlet per un approccio di sviluppo Model View
Controller.
L'esame di laboratorio di base di dati e web è in
concomitanza con l'esame di basi di dati e web. Le modalià
sono quindi spiegate nella pagina del corso di Basi
di dati e web.
Laboratorio di calcolo numerico
Si faccia riferimento al corso di Calcolo Numerico, di cui il
laboratorio è parte integrante.
Si faccia riferimento al corso di Calcolo Numerico, di cui il
laboratorio è parte integrante.
Laboratorio di programmazione
Obiettivi formativi
Il corso si propone di introdurre lo studente alla programmazione
strutturata ed ad oggetti, in modo graduale ed utilizzando un
linguaggio semplice e diuffuso come Java. Essendo un corso di
laboratorio, l'enfasi è sull'imparare facendo.
Attività formative
Il corso viene svolto in 60 ore di esercitazione in laboratorio
nell'arco di un periodo.
Programma del corso
- Introduzione alla programmazione. Processo di risoluzione di un
problema. Correttezza: tipi di errori, tecniche di verifica (cenni)
Compilatori ed interpreti.
- Il linguaggio JAVA caratteristiche generali. Ambiente di
sviluppo JDK (compilatore, interprete, debugger). Struttura del
programma (applicazione). Variabili, tipi di dati, espressioni,
istruzioni di assegnamento, casting. Operatori relazionali ed
espressioni logiche (boolean). Literals stringhe, caratteri.
Semplice input/output.
- Programmazione strutturata e strutture di controllo. Diagrammi
di flusso. Istruzioni composte. L'istruzione if. L'istruzione
switch. Ciclo while. Ciclo for.
- Vettori e ordinamento. Vettori (array) monodimensionali e
bidimensionali. Gestione degli array per riferimento, allocazione
con new, aliasing. Ricerca lineare in un vettore e ordinamento di
vettori (per Selezione).
- Metodi di classe (static). Chiamate di metodi. Parametri
formali e parametri attuali. Passaggio di parametri per valore.
Passaggio di parametri per riferimento (Java non lo prevede).
Variabili locali. Effetti collaterali. Sovraccarico (overloading)
dei metodi.
- Modello runtime. Pila di attivazione, allocazione degli oggetti
nello heap, durata degli oggetti, visibilità (scope) delle
variabili. Effetti collaterali. Esempio: pila di attivazione di
chiamate annidate.
- Ricorsione. Chiamate ricorsive di metodi. Pila di attivazione
di chiamate ricorsive. Esempi di programmi ricorsivi: ricerca
binaria, ordinamento per Fusione,
- Programmazione orientata agli oggetti. Oggetti software,
messaggi, interfaccia. Concetto di classe e di esemplare. Metodi
istanza, sintassi (dot notation). La classe String. Standard UML
per i grafici.
- Classi ed oggetti. Definizione di classi. Metodi e variabili
istanza. Uso del this. Costruttori. Modificatori di
visibilità (public e private). Gestione degli oggetti per
riferimento, aliasing. Classi mutabili e immutabili, Metodi client.
Indipendenza dalla rappresentazione ed occultamento
dell'informazione. Implementazione del TDA ``Pila''.
- Ereditarietà. Estensione di classi. Polimorfismo con
sovrascrittura (overriding). Il meccanismo del dynamic binding.
Differenza tra variabili oscurate e metodi sovrascritti, uso del
super. Classi astratte. Interfaccie. Eccezioni.
- Packages. Java API. Uso dei packages e definizione di packages.
Regole di visibilità (riviste). Il package java.io, flussi
(streams) di ingresso e uscita. Lettura e scrittura di file binari
e di file di testo UNICODE.
Da definire.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
Stefano Mizzaro |
Introduzione alla programmazione con il linguaggio Java |
Franco Angeli |
2000 |
8846416961 |
Laboratorio di sistemi operativi
Obiettivi formativi
Il corso è una introduzione ai principi ed al progetto di
sistemi operativi, essenziali per coordinare le attività e
le risorse di un sistema di calcolo. Sono affrontati i principali
temi dalle architetture software alla gestione dei processi e delle
risorse (es. memoria) del sistema. Nel corso di Laboratorio viene
studiato un sistema operativo reale della famiglia UNIX.
Attività formative
Il corso viene svolto in 60 ore di laboratorio svolte in un unico
periodo didattico.
Programma del corso
- Introduzione a UNIX: Struttura di UNIX; strutture dati
del kernel; UNIX utente: la shell, gli strumenti di ausilio alla
programmazione (make,prof,awk,lex,yacc).
- La programmazione di shell: Script di shell. Tipi di
shell. Comandi di shell; Interazione tra shell e programmi utente e
di sistema; Filtri,
- La programmazione di sistema: la libreria C delle system
call UNIX; Classi di system call;
- Gestione del file system: Creazione/manipolazione di
file; I/O raw; link e special file;
- Gestione dei processi: Creazione e distruzione di
processi; system call fork() ed exec();
- Sincronizzazione e Comunicazione tra processi: segnali,
pipe, IPC (code di messaggi, Memoria condivisa, semafori)
- Programmazione di rete in ambiente UNIX: L'interfaccia
socket; socket a connessione e datagram. L'interfaccia RPC;
- Programmazione di sistema in ambiente Java: Thread e RMI
(Remote Method Invocation).
La verifica del profitto è parte della verifica del corso di
Sistemi Operativi. La parte riguardante il laboratorio
consisterà nella stesura di un programma in linguaggio C o
Java per la soluzione di un problema di sincronizzazione e/o
comunicazione tra processi.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
W.R. Stevens |
Advanced Programming in the UNIX Environment |
Addison Wesley |
1999 |
0201563177 |
Linguaggi di programmazione e compilatori
Linguaggi di Programmazione e Compilatori
Il corso presenta i vari linguaggi di programmazione, la loro
specifica sintattica e semantica, le strutture per la gestione dei
dati e del flusso di controllo. Vengono considerate le
caratteristiche dei vari linguaggi, allo scopo di permettere allo
studente di scegliere il linguaggio piú adatto alle proprie
necessità. Vengono considerati linguaggi imperativi, logici
e funzionali, soffermandosi in particolare sul paradigma dei
linguaggi a oggetti. Si considerano poi le tecniche per la
realizzazione di un compilatore, ovvero di uno strumento automatico
di traduzione da un linguaggio di programmazione a un altro. I
risultati teorici sono presentati insieme a degli strumenti
standard che li sfruttano nell'implementazione dei compilatori. Il
corso mostra l'applicazione di tali strumenti alla realizzazione di
un compilatore da un semplice linguaggio di programmazione
imperativo a un linguaggio macchina per un processore a
registri.
Programma del corso
Parte I
- Linguaggi, sintassi e semantica.
- Tipi di dato elementari.
- Semantica dei tipi di dato elementari.
- Incapsulazione dei dati. Paradigma a oggetti.
- Semantica del paradigma a oggetti.
- Strutture di controllo di flusso.
- Semantica delle strutture di controllo di flusso.
- Chiamate di procedura. Scoping statico e dinamico.
- Stack di attivazione.
- Eccezioni.
- Concorrenza.
- Linguaggi di programmazione per il web. CGI.
- Esempi di linguaggi di programmazione: Fortran, C, Pascal, C++,
Java, ML, Prolog.
Parte II
- Le fasi di un compilatore.
- Un semplice linguaggio imperativo: Tiger.
- Analisi lessicale.
- Automi a stati finiti.
- Uno strumento per l'analisi lessicale: JLex.
- Analisi sintattica.
- Grammatiche LR(k).
- Uno strumento per l'analisi sintattica: Cup.
- Sintassi astratta.
- Analisi semantica.
- Generazione del codice intermedio.
- Selezione delle istruzioni.
- Analisi di liveness.
- Analisi dataflow.
- Ottimizzazione dei cicli.
Testi di riferimento
- Pratt: ``Linguaggi di Programmazione''. Gruppo editoriale
Jackson. Oppure la versione inglese, Pratt & Zelkowitz:
``Programming Languages: Design and Implementation'', Prentice
Hall-International.
- Andrew W. Appel: ``Modern Compiler Implementation in Java''.
Cambridge University Press.
Modalità d'esame
L'esame è formato da un progetto, uno scritto e un orale.
Il progetto consiste in una modifica del compilatore per
Tiger descritto durante il corso.
Modalità d'esame non inserito
Logica matematica
Obiettivi formativi
L'esistenza stessa dell'informatica dipende dalla capacità
di rappresentare adeguatamente nozioni ed elaborarle attraverso
opportune trasformazionidelle loro rappresentazioni. Detto
altrimenti l'informatica dipende dalledistinzioni e legami tra
semantica e sintassi. Lo scopo di questo insegnamentoè
l'evidenziazione e lo studio del rapporto tra semantica e
sintassi,mettendo in luce potenzialità e limiti dei
linguaggi formali.
Attività formative
Il corso viene svolto in 54 ore di lezione/esercitazione frontale.
Programma del corso
Richiami a strutture, linguaggi formali del primo ordine,
definizionebase di verità in una realizzazione,
soddisfacibilità, validità, conseguenza logica. Il
problema del controllo sintattico della soddisfacibilità.
Alberi di confutazione per l'analisi delle formule a blocchi.
Insiemi di Hintikka.Teoremi di validità, di completezza e di
compattezza rispetto aglialberi di confutazione. Teoremi di
Lowenheim Skolem. Categoricità e alfa
categoricità. Paradosso di Skolem. Linguaggi numerabili e
alberi per l'analisi delle formule una ad una. Cenni alla deduzione
naturale. Forme normali. Il metodo di risoluzione. Deduzione alla
Hilbert. Teorema di deduzione. Insiemi massimali consistenti.
Insiemi di Henkin. Teoremi di validità e completezza per la
deduzione alla Hilbert.
Modalità di verifica
La verifica del profitto avviene mediante una prova orale in
modalità scritta.
Matematica di base
Obiettivi formativi
Obiettivo dell'insegnamento è chiarire e precisare le
nozioni fondamentali e indispensabili per lo sviluppo della
matematica e di ogni altra disciplina scientifica.
Attività formative
Il corso viene svolto in 36 ore di lezione/esercitazione frontale.
Programma del corso
Le nozioni basilari di teoria degli insiemi. Particolarità
degli insiemi infiniti. La nozione di relazione. Relazioni di
equivalenza e relazioni d'ordine. Funzioni. Caratteristiche delle
funzioni e operazioni fondamentali su di esse. Strutture.
Linguaggio del primo ordine e nozione di veritàdi una
formula in una struttura. Validità, soddisfacibilità
e conseguenza logica. I numeri naturali e il principio d'induzione.
Modalità di verifica
La verifica del profitto avviene mediante una prova orale in
modalità scritta.
Probabilità e Statistica [1° anno]
Obiettivi formativi
Acquisizione dei concetti di base del Calcolo delle Probabilita' e
possibilita' di utilizzare alcuni semplici strumenti statistici
Attività formative
Lezione teoriche ed esercitazioni in aula
Programma del corso
- Elementi di statistica descrittiva
- Spazi di probabilita'. Misura di
probabilita'. Probabilita' combinatoria
- Condizionamento e indipendenza
- Variabili aleatorie di comune utilita'
- Cenni su legge dei grandi numeri e Teorema Centrale Limite
- Descrizione qualitativa di una variabile aleatoria. Stimatori
di media e varianza
- Intervalli di confidenza . Cenni sui test statistici
- Cenni su regressioni lineari
L'esame cosistera' in una prova scritta con esercizi e domande di
teoria.
Probabilità e Statistica
Obiettivi formativi
Il corso si propone di fornire agli studenti alcuni concetti
fondamentali del calcolo delle probabilita' che risulteranno utili
per il proseguimento del corso di laurea in questione.
Attività formative
Il corso viene svolto in 40 ore di lezione/esercitazione frontali,
in un periodo didattico.
Programma del corso
- 1. Spazi di Probabilita'. Introduzione al
Calcolo delle Probabilita'. Definizione assiomatica di spazio di
probabilita', secondo Kolmogorov. Spazi di probabilita' finiti e
uniformi. Elementi di calcolo combinatorio. Probabilita'
condizionata. Formula della probabilita' totale e formula di Bayes.
Indipendenza fra eventi. Schema di Bernoulli finito.
- 2. Variabili aleatorie discrete. Legge
discreta. Esempi: Indicatrice, Uniforme, Bernoulli, Binomiale,
Poisson, Ipergeometrica. Approssimazione di una v.a. Binomiale con
una v.a. di Poisson. Schema di Bernoulli infinito e v.a.
Geometrica. Vettori aleatori discreti: legge congiunta e marginali.
Esempio: v.a. multinomiale. Definizione di indipendenza di piu'
v.a.. Legge discreta condizionata. Media di una v.a. e sue
proprieta'. Varianza, deviazione standard e momenti di una v.a.
Covarianza e coefficiente di correlazione tra due v.a.. Proprieta'
di varianza e covarianza. Matrice delle covarianze di un vettore
aleatorio discreto.
- 3. Variabili aleatorie continue. V.a. a valori
non discreti: legge e funzione di ripartizione di una generica
v.a.. V.a. assolutamente continue: funzione di densita'. Esempi:
Uniforme, esponenziale, Gaussiana, Gamma, Beta. Media, varianza e
momenti di v.a. assolutamente continue. Vettori aleatori non
discreti e assolutamente continui: funzione di ripartizione e
funzione di densita' congiunte e marginali. Covarianza e
coefficiente di correlazione tra v.a. assolutamente continue e
matrice delle covarianze. Indipendenza di v.a. assolutamente
continue. Funzione di densita' condizionata. Attesa condizionata.
La v.a. gaussiana multivariata. Trasformazioni di v.a.
assolutamente continue: il metodo della funzione di ripartizione.
Somma di due v.a..
- 4. Convergenza e approssimazione. Vari tipi di
convergenza di successioni di v.a.: convergenza quasi certa, in
probabilita', in legge. Il Teorema Limite Centrale e applicazioni.
La disuguaglianza di Chebichev. La Legge dei Grandi Numeri e
applicazioni.
La verifica del profitto avviene attraverso una prova scritta alla
fine del periodo didattico, costituita da due parti: una pratica
(svolgimento di esercizi proposti) ed una teorica (definizioni,
enunciati e dimostrazioni visti durante il corso, nonche' esercizi
di immediata soluzione). La votazione e' quella definitiva, fatto
salvo il diritto di ciascuno studente di richiedere l'effettuazione
di una prova orale, da concordare con il docente.Il superamento
della prova porta all'acquisizione di 4 crediti.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
P. Baldi |
Calcolo delle Probabilità e Statistica |
Mc Graw-Hill |
1998 |
8838607370 |
Programmazione
Obiettivi formativi
Con il corso di Programmazione è ci si propone di
introdurre i principi fondamentali della programmazione con
l'obiettivo di consentire allo studente di acquisire gli strumenti
concettuali utili per l'apprendimento e l'uso pratico di un
qualunque linguaggio di programmazione.L'insegnamento di uno
specifico linguaggio di programmazione è oggetto invece del
corso di Laboratorio di Programmazione.
Attività formative
Il corso prevede una parte comune che consiste di 80 ore di lezione
in aula.
Programma del corso
-
Parte I. Programmazione Imperativa.
- Introduzione agli algoritmi.
Problemi e Specifiche:nozione generale di
problema,specifiche formali dei problemi.
Linguaggi di programmazione:nozione di agente di
calcolo,struttura di una macchina astratta e relativo
linguaggio-macchina.
Un linguaggio imperativo minimale:tipo di dato intero,
variabili, espressioni, assegnamento, condizionale, iterazione.
Correttezza e Terminazione:correttezza rispetto alle
specifiche,questione della terminazione,definizioni di correttezza
parziale e totale,tecniche elementari per le verifiche di
correttezza.
- Strutture Dati.
Introduzione ai tipi di dati:nozione di tipo e sue
caratteristiche fondamentali: nome, insieme degli elementi e
operazioni consentite;tipi semplici: integer, real, boolean,
char.Tipi di dati astratti (ADT):introduzione.array e
record, files; stringhe.Strutture dati ricorsive
- Programmi e sottoprogrammi.
Funzioni (e procedure); passaggio dei parametri.
- Programmazione ricorsiva
-
Parte II. Complementi di Programmazione
- Introduzione alla semantica.
- Introduzione alla Programmazione Object Oriented.
- Introduzione alla Programmazione Funzionale
Esame scritto e colloquio orale.
Programmazione avanzata e di rete
Obiettivi formativi
Il corso mira a dotare gli allievi di solide basi tecniche e
metodologiche per lo sviluppo del software nei moderni ambienti
distribuiti. Un ambiente distribuito è un sistema di
componenti autonomi, connessi da una rete di risorse di
comunicazione e utilizzanti servizi di coordinamento delle
attività e di condivisione delle risorse, tale da essere
percepito dai suoi utenti quale sistema integrato di servizi.
Internet è l'esempio più ovvio di ambiente
distribuito.
L'approfondimento del paradigma di programmazione ad oggetti con
i concetti ed i costrutti per la concorrenza e la cooperazione in
architetture software di oggetti distribuiti costituisce il primo
obiettivo del corso, sul quale si innestano i successivi. Questi
sono prevalentemente orientati allo sviluppo di applicazioni in
ambienti distribuiti. Non si trascurano tuttavia gli aspetti
più salienti della programmazione di sistema (comunicazione,
sicurezza, controllo e gestione), al fine di sviluppare il bagaglio
tecnico necessario alla comprensione di fenomeni chiave che si
manifestano negli ambienti distribuiti.
Il programma del corso presuppone una discreta
familiarità con la programmazione ad oggetti in Java e/o
C++.
Attività formative
Il corso prevede lo svolgimento di 40 ore di lezioni ed
esercitazioni frontali in aula, e di attività di progetto in
laboratorio, in parte dirette dal docente. Per queste ultime, sono
previste ulteriori 15 ore di esercitazioni di laboratorio in
presenza del docente, e sono riservate ulteriori risorse di
laboratorio.
L'apprendimento della materia è sostenuto dallo studio
dei materiali didattici di riferimento e dal loro uso nella
realizzazione di progetti in laboratorio, che vertono su temi
speciali di interesse proposti dal docente.
Programma del corso
- Programmazione ad oggetti in ambienti
distribuiti: concetti di base, progettazione di sistemi
distribuiti, costrutti per la programmazione di oggetti
distribuiti: dall'invocazione di procedura remota ai costrutti RMI
in Java.
- Architetture software di oggetti distribuiti:
CORBA, COM, Java/RMI: analisi, confronti ed integrazioni; problemi
associati ad eterogeneità e genericità.
- Tecniche speciali di programmazione di oggetti
distribuiti: tecniche avanzate di comunicazione,
localizzazione, ciclo di vita di oggetti distribuiti; persistenza,
controllo della concorrenza e transazioni; sicurezza.
La verifica del profitto avviene mediante un colloquio individuale
sugli argomenti del programma e sul lavoro di laboratorio prodotto
dallo studente. Il superamento della prova porta all'acquisizione
di 5 crediti.
Reti di calcolatori: applicazioni
Obiettivi formativi
L'obbiettivo del corso è introdurre lo studente alle
problematiche relative all'utilizzo di reti di calcolatori. Lo
scopo del corso è duplice: da una parte, infatti, ci si
propone di fornire allo studente una visione globale degli aspetti
tecnologici e metodologici inerenti le reti di calcolatori;
dall'altra, si intende fornire specifiche competenze riguardanti le
applicazioni di rete per Internet ed i linguaggi di markup (HTML e
XML) attualmente in uso per la definizione di documenti accessibili
in rete.
Attività formative
Il corso viene svolto in 55 ore di lezione/esercitazione frontale.
Sono previste attivita' di laboratorio, focalizzate sulla
definizione di documenti attraverso i linguaggi HTML e XML.
Programma del corso
- Introduzione alle reti: reti di trasmissione dati e standard
dei sistemi aperti. Dopo aver illustrato globalmente le
caratteristiche tecnologiche delle reti di calcolatori ed aver
sottolineato l'importanza degli standard, verranno descritti il
modello di riferimento ISO-OSI e lo standard TCP/IP per
l'interconnessione di reti di calcolatori.
- Reti locali: topologie e protocolli. Verranno descritti
gli aspetti fisici, topologici e tecnologici dei principali tipi di
reti locali (ethernet e token ring).
- Reti geografiche: tipologie e protocolli. Verranno
esaminate le caratteristiche ed i protocolli delle reti pubbliche
per la trasmissione dati: reti a commutazione di pacchetto; reti a
commutazione di circuito.
- Interconnessione di reti: concetti, architetture e
protocolli. Verrà trattato in dettaglio l'insieme dei
protocolli TCP/IP: indirizzi IP e spazio di indirizzamento;
risoluzione degli indirizzi, trasmissione e consegna dei messaggi;
datagrammi IP; notifica degli errori (ICMP); servizio di trasporto
affidabile (TCP).
- Applicazioni di rete per Internet. Verranno approfonditi
gli aspetti applicativi relativi ad Internet: il modello
client/server, l'interfaccia socket, DNS, FTP e Telnet, e-mail,
HTTP, SNMP, CGI, applet e servlet.
- Linguaggi per Internet. L'ultima parte del corso
riguarda i linguaggi utilizzati per la definizione di documenti
accessibili in Internet, con particolare riferimento a HTML e
XML.
La verifica del profitto avviene mediante una prova scritta, nella
quale vengono proposte sia domande sulle parti più teoriche
sia brevi esercizi sugli aspetti più applicativi. È
facoltà dello studente richiedere l'effettuazione di una
prova orale che integri il risultato della prova scritta.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
Fred Halsall |
Reti di Calcolatori e Sistemi Aperti |
Addison-Wesley |
1998 |
887192049X |
Douglas Comer |
Internet e Reti di Calcolatori |
Addison-Wesley |
2000 |
8871920864 |
A. Tanenbaum |
Reti di Computer |
Prentice Hall International |
1997 |
8877504536 |
Ricerca operativa
Obiettivi formativi
Il corso si propone di introdurre lo studente ad alcune
problematiche di base inerenti al campo dell'ottimizzazione, con
particolare riferimento alla Programmazione Lineare ed alcuni
problemi di Ottimizzazione su reti ed ai relativi algoritmi di
risoluzione.Viene inoltre fornito qualche cenno di modellistica,
mediante l'analisi di semplici problemi lineari che rientrano in
questa casistica e la conseguente formulazione matematica.
Attività formative
Il corso viene svolto in 40 ore di lezione/esercitazione frontale
ed ha luogo nel primo periodo dell'anno accademico.
Programma del corso
- Modelli ed algoritmi. Processi decisionali. Problemi di
ottimizzazione e di esistenza: funzione obiettivo, vincoli e
variabili decisionali. Esempi di classi di problemi. Classi di
algoritmi: algoritmi greedy, di ricerca locale ed enumerativi.
- Programmazione lineare e dualità. Il problema di
programmazione lineare: definizione, regole di trasformazione ed
interpretazione geometrica dei dati. Il problema duale: coppia
simmetrica e coppia asimmetrica, tabella delle corrispondenze,
interpretazione geometrica. Programmazione lineare su coni: teorema
fondamentale delle disuguaglianze lineari e procedura
Simplesso-su-coni. Direzioni ammissibili e direzioni di crescita.
Teorema debole e teorema forte della dualità e loro
conseguenze. Primale e duale ristretti. Algoritmo del Simplesso
Primale-Duale: procedura ed interpretazione grafica. Teorema degli
scarti complementari e sue conseguenze. Matrici di base e basi
complementari: definizione, ammissibilità e degenerazione.
Condizioni di ottimo. Algoritmi del Simplesso Primale e del
Simplesso Duale e loro interpretazione grafica. Cenni sul simplesso
a variabili limitate. Riottimizzazione: variazione del vettore
c, del vettore b ed aggiunta di vincoli al
primale.
- Problema di flusso di costo minimo. Formulazione e
regole di trasformazione. Problema duale (di potenziale). Visita di
un grafo. Condizioni degli scarti complementari e relativa curva.
Algoritmo Primale-Duale: soluzione iniziale, fase primale e fase
duale. Soluzioni di base: matrice ed albero di base, visite
anticipata e posticipata di un albero per la determinazione di
soluzioni complementari. Simplesso-per-flusso e
Simplesso-per-potenziale.
- Problema di flusso massimo. Problema di flusso e
problema di taglio. Condizioni di ottimalità. Algoritmo di
Edmonds e Karp.
- Problema dei cammini minimi. Formulazione. Condizioni di
ottimalità (di Bellman). Algoritmo SPT ed algoritmo di
Dijkstra.
La verifica del profitto avviene mediante una prova scritta. La
votazione riportata nella prova è quella definitiva, fatto
salvo il diritto di ciascuno studente di richiedere l'effettuazione
di una prova orale, le cui modalità vanno definite caso per
caso.
Sistemi operativi
Obiettivi formativi
Il corso è una introduzione ai principi ed al progetto di
sistemi operativi, essenziali per coordinare le attività e
le risorse di un sistema di calcolo. Sono affrontati i principali
temi dalle architetture software alla gestione dei processi e delle
risorse (es. memoria) del sistema. Nel corso di Laboratorio viene
studiato un sistema operativo reale della famiglia UNIX.
Attività formative
Il corso viene svolto in 60 ore di lezione/esercitazione frontale,
suddivise in due periodi didattici (40 ore + 20 ore).
Programma del corso
- Introduzione: Ruolo del sistema operativo e sua
evoluzione. Elementi architetturali. Struttura e funzioni di un
sistema operativo.
- Gestione dei Processi: Processi. Stati dei processi.
Cambiamento di contesto. Creazione e terminazione di processi.
Thread. Thread a livello utente e a livello kernel.
Cooperazione e comunicazione fra processi: memoria condivisa,
messaggi. Comunicazione diretta ed indiretta.
- Scheduling: Modello a ciclo di burst di CPU-I/O.
Scheduling a lungo, medio, breve termine. Scheduling con prelazione
e cooperativo. Criteri di scheduling. Algoritmi di scheduling:
FCFS, SJF, a priorità RR, a code multiple e con feedback.
Valutazione degli algoritmi: con modelli deterministici,
probabilistici o simulazione
- Sincronizzazione fra Processi: Coerenza di dati
condivisi, operazioni atomiche. Sezioni critiche. Approccio
software alla mutua esclusione: algoritmi di Peterson e Dekker,
algoritmo del panettiere. Supporto hardware per la mutua
esclusione: test and set, swap. Costrutti per sincronizzazione:
semafori, semafori binari, mutex, monitor. Deadlock, starvation.
Alcuni problemi tipici di sincronizzazione: produttore/consumatore,
lettori/scrittore, problema dei dining philosophers .
- Deadlock: Condizioni per l'innesco di un deadlock.
Rappresentazione dello stato di un sistema con grafi di
allocazione. Tecniche di deadlock prevention. Deadlock avoidance.
Algoritmo del banchiere. Deadlock detection e recovery.
- Gestione della Memoria: Memoria primaria. Indirizzamento
logico e fisico. Rilocazione, address binding. Swapping.
Allocazione contigua della memoria. Frammentazione interna ed
esterna. Paginazione. Supporti hardware alla paginazione: registri
specializzati e TLB. Tabella delle pagine. Paginazione a piu`
livelli. Segmentazione. Tabella dei segmenti. Segmentazione con
paginazione.
- Memoria Virtuale: Paginazione su richiesta. Gestione di
page-fault. Algoritmi di sostituzione delle pagine: FIFO, ottimale,
LRU, approssimazioni LRU. Buffering di pagine. Allocazione di
frames in memoria fisica, allocazione locale o globale. Thrashing.
Località dei riferimenti. Working set model. Controllo della
frequenza di page-fault. Blocco di pagine in memoria.
- Memoria secondaria Struttura logica e fisica dei dischi.
Tempo di latenza. Scheduling del disco: algoritmi FCFS, SSTF, SCAN,
C-SCAN, LOOK, C-LOOK. Gestione della memoria di paginazione.
- Sistema di I/O: Sistemi di Input/Output Hardware per
I/O. Tecniche di I/O: programmato, con interrupt, con DMA. Device
driver ed interfaccia verso le applicazioni. Servizi di kernel per
I/O: scheduling, buffering, caching, spooling.
- File System: Concetto di file, attributi ed operazioni
relative. Tipi di file. Accesso sequenziale e diretto. Concetto di
directory. Struttura di directory. Protezioni nell'accesso a file.
Attributi e modalità di accesso. Semantica della
consistenza. Realizzazione Struttura di un file-system. Montaggio
di file-systems. Metodi di allocazione dello spazio su disco:
contigua, concatenata, indicizzata. Gestione dello spazio libero su
disco: tramite vettore di bit, tramite liste. Realizzazione delle
directory: liste lineari, tabelle hash.
- Casi di studio: Il sistema UNIX e Windows NT:: struttura
del kernel, strutture dati, implementazione delle
funzionalità principali.
La verifica del profitto avviene mediante una prova scritta che
consiste di domande teoriche ed esercizi sugli argomenti del
programma del corso e del relativo laboratorio. La votazione
riportata nella prova è quella definitiva. Il superamento
della prova porta all'acquisizione di 10 crediti.
Testi di riferimento
Autore |
Titolo |
Casa editrice |
Anno |
ISBN |
Silberschatz, Galvin |
Sistemi Operativi |
Addison Wesley |
1998 |
0-471-4174 |
W. Stallings |
Operating Systems - Internal and Design Principles |
Prentice Hall |
1998 |
0138874077 |
Realizzazione a cura di Alberto Belussi, Carlo Combi, Roberto
Posenato.