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
Matematica di base
Informatica di base
Probabilità e statistica
Algebra lineare
Algebra
Programmazione
Laboratorio di programmazione
Analisi matematica
Fisica
Architettura degli elaboratori
Laboratorio di architetture
CFU
4
4
4
6
4
8
4
8
8
8
2
60
ANNO II
INSEGNAMENTI−ESAMI
Calcolo numerico
Laboratorio di calcolo numerico
Algoritmi e strutture dati
Laboratorio di algoritmi
CFU
6
2
8
2
Architetture software
Laboratorio di architetture software
Logica matematica
Sistemi operativi
Laboratorio di sistemi operativi
Basi di dati e WEB
Laboratorio di Basi di dati e WEB
Reti di calcolatori: applicazioni
8
2
6
6
4
8
2
5
59
ANNO III
INSEGNAMENTI−ESAMI
Fondamenti dell’informatica
Linguaggi di programmazione e compilatori
Economia aziendale
Ricerca operativa
Interazione uomo−macchina e multimedia
Programmazione avanzata e di rete
CFU
6
10
4
4
5
5
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:
Fax:
045 802 7078
045 802 7928
E−mail: segreteria−ccl−[email protected]
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
Nome
Alberto Belussi
Carlo Combi
Matteo Cristani
Ruggero Ferro
Franco Fummi
Andrea Fusiello
Roberto Giacobazzi
Enrico Gregorio
Gino Mariotto
Francesca Monti
Laura Morato
Vittorio Murino
Giandomenico Orlandi
Angelo Pica
Massimo Poncino
Roberto Posenato
Giuseppe Scollo
Roberto Segala
Paola Siri
Ugo Solitro
Fausto Spoto
E−mail
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Telefono
045 802 7980
045 802 7985
045 802 7983
045 802 7909
045 802 7994
045 802 7088
045 802 7995
045 802 7937
0461 881501
045 802 7910
045 802 7904
045 802 7996
045 802 7986
045 802 7942
045 8027988
045 802 7967
045 8027940
045 802 7997
045 802 7998
045 802 7977
0458027076
Elenco degli insegnamenti attivati
Nome
Algebra
Algebra lineare
Algoritmi e strutture dati
Analisi matematica
Architettura degli elaboratori
Architetture software
Basi di dati e WEB
Calcolo numerico
Economia aziendale
Fisica
Fondamenti dell'informatica
Informatica di base
Interazione uomo−macchina e multimedia
Laboratorio di algoritmi
Laboratorio di architettura degli elaboratori
Laboratorio di architetture software
Laboratorio di basi di dati e WEB
Laboratorio di calcolo numerico
Laboratorio di programmazione
Laboratorio di sistemi operativi
Linguaggi di programmazione e compilatori
Logica matematica
Matematica di base
Probabilità e Statistica [1° anno]
Probabilità e Statistica
Programmazione
Programmazione avanzata e di rete
Reti di calcolatori: applicazioni
Ricerca operativa
Sistemi operativi
Programma degli insegnamenti
Algebra
Docente Enrico Gregorio − titolare
Crediti 4
Periodo 3º quadrimestre
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
Docente Enrico Gregorio − supplente
Crediti 6
Periodo 1º quadrimestre
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:
1. risolvere sistemi lineari;
2. trovare basi di spazi vettoriali, in particolare di sottospazi;
3. trovare basi ortogonali di spazi vettoriali (metodo di Gram−Schmidt);
4. calcolare determinanti di matrici;
5. 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à
La 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.
Si fa riferimento al testo di B. Bruno, Lezioni di algebra lineare uno, Zanichelli/Decibel e alla dispensa in rete
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
Docente
Roberto Segala − titolare
Crediti
8
Periodo
1º 2º quadrimestre
Pagina Web http://profs.sci.univr.it/~segala/asd/
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
Docente Giandomenico Orlandi − supplente
Crediti 8
Periodo 2º quadrimestre
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
Docente
Franco Fummi − supplente
Crediti
8
Periodo
2º 3º quadrimestre
Pagina Web http://www.sci.univr.it/~fummi/archi_elab
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
F.Fummi, M.Sami, C.Silvano
V.C. Hamacher, Z.G. Vranesic, S.G.
Zaky
Titolo
Progettazione Digitale
Introduzione all'Architettura dei
Calcolatori
Casa editrice Anno ISBN
McGraw−Hill 2002 8838660271
McGraw−Hill 1997 8838607486
Architetture software
Docente
Giuseppe Scollo − titolare
Crediti
8
Periodo
1º 2º quadrimestre
Pagina Web http://profs.sci.univr.it/~scollo/ais2001−2/index.html
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:
1. gestione delle configurazioni del software
2. aspetti economici dell'ingegneria del software
3. 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
A. Fuggetta, C. Ghezzi, S. Morasca, A.
Ingegneria del software
Morzenti, M. Pezzè
Ingegneria economica del
H. Sedehi
software
The Object Constraint
J. Warmer, A. Kleppe
Language
M. Fowler, K. Scott
UML distilled
Casa editrice
Anno ISBN
Mondadori Informatica 1991 8871316215
Apogeo
Addison Wesley
Longman
Addison Wesley
Longman
1997 887303358X
1999 0201379406
1997 0201325632
Basi di dati e WEB
Docente Alberto Belussi − supplente
Crediti 8
Periodo 2º 3º quadrimestre
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
linterazione con una base di dati relazionale. Le esercitazioni pratiche si svolgeranno nellambito 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. Lalgebra 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
linterazione 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
P. Atzeni, S. Ceri, S.
Paraboschi, R. Torlone
E. Baralis, A. Belussi, G.
Psaila
Titolo
Basi di dati (seconda
edizione)
Basi di dati − Temi
d'esame svolti
Calcolo numerico
Docente Angelo Pica − titolare
Crediti 6
Periodo 1º 2º quadrimestre
Casa editrice
Anno ISBN
McGraw−Hill Libri Italia srl
1999 8838608245
Progetto Leonardo Società Editrice
1999 B135655713
Esculapio Bologna
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 dellorganizzazione. 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. Lorganizzazione 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. Lorganizzazione 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
Francesca Monti − esercitatore
Gino Mariotto − supplente
Crediti 8
Periodo 2º 3º quadrimestre
Docenti
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
Fondamenti di Fisica: Vol. I − Meccanica,
Casa Editrice
D. Halliday, R.
2001 8821405389
Termologia; Vol. II − Elettrologia, Magnetismo,
Ambrosiana
Resnick, J. Walker
Ottica.
M. Alonso, E.J.
Elementi di Fisica per l'Universita': Vol. I −
Masson S.p.A. 1982 8821405486
Finn
Meccanica e Termodinamica; Vol. II − Campi e Onde
Fondamenti dell'informatica
Docente
Roberto Giacobazzi − titolare
Crediti
6
Periodo
1º quadrimestre
Pagina Web http://profs.sci.univr.it/~giaco/fondamenti3.html
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
• Calcolabilità (30h):
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
Docente Matteo Cristani − supplente
Crediti 4
Periodo 1º quadrimestre
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
Docente
Vittorio Murino − supplente
Crediti
5
Periodo
3º quadrimestre
Pagina Web http://profs.sci.univr.it/~swan/Teaching/courses.html
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 dellinformazione.
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
Docente
Roberto Posenato − supplente
Crediti
2
Periodo
2º quadrimestre
Pagina Web http://profs.sci.univr.it/~posenato/Courses/Lasd2001
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
1. Uso del meccanismo dell'Interfaccia. Esempio di applicazione con l'implementazione dell'ADT
Lista, Coda e Pila.
2. Uso dell'interfaccia Comparable. Implementazione degli algoritmi di ordinamento per inserimento
(InsertionSort) e per passo calante (ShellSort).
3. Tecniche di confronto di implementazioni. Confronto tra due implementazioni di algoritmi di
ordinamento: QuickSort e MergeSort.
4. Implementazioni dell'ADT HashTable.
5. Implementazione di un algoritmo di programmazione dinamica: ricerca massima sottosequenza
comune (MaxSSC).
6. Implementazioni dell'ADT Albero e Albero di ricerca binario. Uso dell'interfaccia Iterator.
Implementazioni metodi di visita.
7. 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
Docente Franco Fummi − titolare
Crediti 2
Periodo 2º 3º quadrimestre
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
Docente
Giuseppe Scollo − titolare
Crediti
2
Periodo
1º 2º quadrimestre
Pagina Web http://profs.sci.univr.it/~scollo/ais2001−2/index.html
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
Docente
Roberto Posenato − supplente
Crediti
2
Periodo
2º 3º quadrimestre
Pagina Web http://profs.sci.univr.it/~posenato/Courses/BDW2001
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
1. Introduzione al DBMS PostgreSQL: Connessione ad un database, uso di semplici comandi di
controllo, creazione di tabelle.
2. PostgreSQL: vincoli di integrità, politiche di reazione alle violazioni dei vincoli di integrità
referenziale.
3. PostgreSQL: interrogazioni SQL semplici.
4. PostgreSQL: interrogazioni SQL complesse.
5. Linguaggio HTML: struttura di un documento HTML, fogli di stile, marcatori fondamentali, tabelle.
6. Linguaggio HTML: form. Attivazione di un programma CGI (shell script).
7. Installazione di un engine sul server WEB per la gestione delle servlet. Esempi di servlet semplici.
Interazione servlet−dbms PostgreSQL.
8. Uso form e servlet per la gestione di dati.
9. Java bean e servlet.
10. Java Server Pages (JSP) e interazione con le form HTML.
11. 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
Docente Angelo Pica − titolare
Crediti 2
Periodo 1º 2º quadrimestre
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
Docente Andrea Fusiello − supplente
Crediti 4
Periodo 2º quadrimestre
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
Docente Massimo Poncino − supplente
Crediti 4
Periodo 2º 3º quadrimestre
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
Docente Fausto Spoto − supplente
Crediti 10
Periodo 2º 3º quadrimestre
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
Docente Ruggero Ferro − titolare
Crediti 6
Periodo 2º quadrimestre
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
Docente Ruggero Ferro − supplente
Crediti 4
Periodo 1º quadrimestre
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]
Docente Laura Morato − supplente
Crediti 4
Periodo 3º quadrimestre
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
Docente Paola Siri − supplente
Crediti 4
Periodo 3º quadrimestre
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
Docente Ugo Solitro − supplente
Crediti 8
Periodo 1º 2º quadrimestre
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
Docente Giuseppe Scollo − supplente
Crediti 5
Periodo 3º quadrimestre
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
Docente Carlo Combi − titolare
Crediti 5
Periodo 2º 3º quadrimestre
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
Fred Halsall
Douglas Comer
A. Tanenbaum
Titolo
Reti di Calcolatori e Sistemi Aperti
Internet e Reti di Calcolatori
Reti di Computer
Casa editrice
Addison−Wesley
Addison−Wesley
Prentice Hall International
Anno
1998
2000
1997
ISBN
887192049X
8871920864
8877504536
Ricerca operativa
Docente Angelo Pica − supplente
Crediti 4
Periodo 1º quadrimestre
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
Docente Massimo Poncino − titolare
Crediti 6
Periodo 2º 3º quadrimestre
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
Silberschatz, Galvin Sistemi Operativi
Operating Systems − Internal and Design
W. Stallings
Principles
Realizzazione a cura di Alberto Belussi, Carlo Combi, Roberto Posenato.
Casa editrice
Anno ISBN
Addison Wesley 1998 0−471−4174
Prentice Hall
1998 0138874077
Scarica

Facoltà di Scienze matematiche fisiche e naturali