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