Corso di laurea

informatica

Università degli Studi di Perugia · 71 materie · 6 file condivisi

Il Corso di Laurea in Informatica ha l'obiettivo generale di rispondere alla domanda di figure professionali in grado di affrontare le esigenze della società dell'informazione in uno scenario di continua evoluzione delle tecnologie.
Per questo il laureato in Informatica dovrà possedere una solida formazione di base nel campo delle Scienze e Tecnologie Informatiche che, pur aperta a successivi affinamenti in corsi di livello superiore, consenta al laureato di inserirsi in attività lavorative che richiedono familiarità col metodo scientifico di indagine e comprensione degli strumenti matematici di supporto alle competenze informatiche necessari per la modellazione formale e l'analisi di sistemi e reti. Il corso di laurea ha solidi rapporti con realtà aziendali di interesse nazionale che collaborano ad attività congiunte rivolte agli studenti.

Il Corso ha la durata di tre anni.
Il triennio del Corso di Laurea prevede una didattica teorico-pratica, con lezioni in aula, lezioni ed esercitazioni di laboratorio, progetti individuali e di gruppo.
Nel primo anno di Corso saranno svolte attività formative (di base e caratterizzanti) per un totale di 57 CFU.
Nel secondo anno di Corso saranno svolte attività formative di base, caratterizzanti e affini o integrative (per un totale di 60 CFU).
Al terzo anno si troveranno insegnamenti caratterizzanti, affini e integrativi e a libera scelta dello studente. Alcuni degli insegnamenti caratterizzanti e affini-integrativi saranno obbligatori per tutti, mentre altri potranno essere scelti all'interno di un insieme di proposte in modo da personalizzare il proprio curriculum formativo.
Durante il terzo hanno sono previste 150 ore di tirocinio presso realtà aziendali o laboratori in convenzione, che costituisce un valore aggiunto informativo professionalizzante.

La Laurea in Informatica è prerequisito per l'accesso a Master di I livello, Lauree Magistrali in Informatica (ed eventualmente ad altre Lauree Magistrali) e all'Esame di Stato per il conseguimento del titolo di Ingegnere dell'Informazione Junior ai fini dell'iscrizione al relativo Ordine Professionale degli Ingegneri.

Laurea Triennale in Informatica - Università degli Studi di Perugia

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

Al momento abbiamo 6 files caricati sul nostro portale suddivisi nelle 71 materie appartenenti al tuo corso di laurea.

Sfoglia il materiale didattico

Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!

Materie del corso

ADVANCED AND DISTRIBUTED ALGORITHMS 1° anno · 0 file
ADVANCED AND DISTRIBUTED ALGORITHMS 1° anno · 0 file
ANALISI MATEMATICA - MODULO II 1° anno · 0 file
ARCHITETTURA DEGLI ELABORATORI 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Conoscenza e comprensione delle caratteristiche di base di un elaboratore elettronico, incluso la programmazione di basso livello

Scheda dell'insegnamento

Obiettivi formativi

Conoscenza e comprensione delle caratteristiche di base di un elaboratore elettronico, incluso la programmazione di basso livello

Programma

Richiami sulla codifica dei numeri: rappresentazione posizionale; modulo e segno; complemento a due; Addizionatore: somma; sottrazione; moltiplicazione; divisione; Numeri in virgola mobile: addizione; moltiplicazione; standard IEEE 754 a 16 bit; Automi Cellulari: cenni sul Game of Life. Scintillae e sistemi di computazione; Livelli di Astrazione: Livello Funzionale, RTL. Micro-operazioni. Controllo elaboratore. Ciclo di macchina. L'elaboratore PDP8: livello registri, livello funzionale, unità di controllo, linguaggio Assembly. Memoria Cache; Tecnica del Pipelining.

Elementi di logica e algebra di Boole

Lezioni frontali Esercitazioni Seminari

La rappresentazione dell'Informazione nell'elaboratore. Rappresentazioni dei numeri. Posizionale semplice. Modulo e segno. Complemento alla base. Complemento alla base diminuita. Rappresentazioni numeri frazionari. Rappresentazione in virgola mobile standard (half-precision). Binarie. Ottali esadecimali. BCD. Conversioni tra le basi e operazioni nelle varie rappresentazioni. Caratteri ASCI. Somma, sottrazione, moltiplicazione e divisione dei numeri binari, in complemento a due e in virgola mobile. Cenni sugli automi cellulari: The game of life; Scintillae. Applicazioni degli automi cellulari nell'architettura degli elaboratori. Componenti di un elaboratore e loro funzionalita'. Unità di Ingresso/Uscita. Unità di Memoria. Unità Aritmetico-Logica. Unità di Controllo. Livelli di Astrazione. Livello Funzionale, RTL. Micro-operazioni. Trasferimenti tra registri e possibili circuiti. Trasferimenti con memoria. Micro-operazioni aritmetiche e logiche. Controllo elaboratore. Ciclo di macchina. Esempio di architettura RISC: l'elaboratore PDP8. Interpretazione dell'informazione. Codifica delle istruzioni. Cicli di fetch, indirizzamento indiretto, execute. Set di istruzioni del PDP8 e corrispondenti cicli di execute. Pseudo istruzioni e Commenti. Metodi di indirizzamento. Programmazione Assembly. Cenni sull'architettura x86 La memoria Cache. Principi di località Spaziale e Temporale. Eventi di Miss e di Hit. Metodi di Indirizzamento. Algoritmi di Sostituzione. Tecniche di ottimizzazione della memoria cache. Programmazione Cache-friendly. Metodologia del Pipelining. Approccio a 2 e 4 stadi. Analisi delle Prestazioni. Categorie di Conflitti. Tecniche di Ottimizzazione delle pipeline.

Modalità d'esame

prova scritta

Testi di riferimento

1. F. Barsi: Architettura degli elaboratori, parte seconda: struttura dei sistemi. Margiacchi-Galeno 2. C. Hamacher, Z. Vranesic, S. Zaky, Naraig Manjikian: Introduzione all'architettura dei calcolatori III edizione. McGraw-Hill

Codice insegnamento P891050366

Analisi Matematica 1° anno · Annuale · 12 CFU · MATH-03/A · 0 file
Archivio Globale

L'insegnamento si propone di fornire agli studenti le basi dell'Analisi Matematica sia dal punto di vista metodologico che del calcolo. Al termine del Modulo I lo studente dovrà: aver acquisito le nozioni di limite,…

Scheda dell'insegnamento

Obiettivi formativi

L'insegnamento si propone di fornire agli studenti le basi dell'Analisi Matematica sia dal punto di vista metodologico che del calcolo. Al termine del Modulo I lo studente dovrà: aver acquisito le nozioni di limite, continuità, derivata; saper effettuare lo studio completo di una funzione di una variabile; sapere esporre e discutere le definizioni e i teoremi presentati a lezione.

L'insegnamento si propone di fornire agli studenti le basi dell'Analisi Matematica sia dal punto di vista metodologico che del calcolo. Al termine dell’Insegnamento lo studente dovrà: aver acquisito le principali tecniche dell'analisi di base relativamente ad integrali (anche impropri), serie, funzioni in due variabili (derivate parziali, integrali doppi); sapere esporre e discutere le definizioni e i teoremi presentati a lezione.

Programma

Funzioni. Limiti e continuità. Calcolo differenziale.

Calcolo integrale. Integrali impropri. Serie numeriche. Cenni sull'Analisi in più variabili.

Al fine di saper applicare le tecniche di calcolo impartite nell'insegnamento, è necessaria la conoscenza degli argomenti di matematica di base trattati nella scuola superiore. In particolare, è richiesta la capacità di calcolo delle equazioni e disequazioni di primo e secondo grado, razionali, irrazionali, trascendenti, nonché la conoscenza della geometria analitica di base (rette, parabole, circonferenze).

Al fine di saper applicare le tecniche di calcolo impartite nell'insegnamento, è necessaria la conoscenza degli argomenti di matematica di base trattati nella scuola superiore. In particolare, è richiesta la capacità di calcolo delle equazioni e disequazioni di primo e secondo grado, razionali, irrazionali, trascendenti, nonché la conoscenza della geometria analitica di base (rette, parabole, circonferenze).

Lezioni frontali su tutti gli argomenti del corso. Oltre ad una dettagliate esposizione teorica, per ciascun argomento saranno anche svolti gli esercizi relativi che faranno da modello a quelli proposti nelle prove d'esame.

Lezioni frontali su tutti gli argomenti del corso. Oltre ad una dettagliate esposizione teorica, per ciascun argomento saranno anche svolti gli esercizi relativi che faranno da modello a quelli proposti nelle prove d'esame. A supporto della didattica, verranno utilizzati software quali Geogebra o OneNote.

Funzioni: generalità e funzioni elementari; funzioni composte e inverse. Limiti e continuità: concetto e calcolo dei limiti; asintoti; continuità; proprietà delle funzioni continue. Calcolo differenziale: concetto e calcolo delle derivate; teoremi fondamentali del calcolo delle derivate; derivate successive; convessità; studio del grafico di una funzione. Formula di Taylor.

Integrali indefiniti: primitive; metodi di integrazione. Integrali definiti: definizione di integrale secondo Riemann; Teorema fondamentale del calcolo integrale. Integrali impropri e serie: Integrali impropri; serie numeriche; casi notevoli e criteri di convergenza. Cenni alle funzioni di due variabili: Limiti e continuità; Derivate parziali; Integrali doppi.

Modalità d'esame

La verifica del profitto del mod. I è suddivisa in due parti. La prima della durata di 2 ore è costituita da esercizi da svolgere. Essa è volta a verificare le conoscenze e le abilità relative al calcolo e fornisce un voto espresso in trentesimi. Durante la prova è consentito l'uso di: libro di testo; schede manoscritte con le proprie annotazioni personali inserite in un portalistini; fogli per brutta copia; penne, matite, righello, ... Non è invece possibile tenere con sé: borse o zaini; smartphone o notebook o calcolatrici o altri dispositivi similari; libri diversi da quello di testo. Con esito maggiore o uguale a 15/30 si ha l'idoneità all'accesso alla seconda prova. La seconda prova, della durata di un’ ora, consiste in uno scritto con domande teoriche. Essa è volta a verificare l'acquisizione del metodo, del linguaggio e delle conoscenze teoriche fondamentali della materia. Gli studenti disabili e/o con DSA possono usufruire di compensazioni o misure dispensative. Per informazioni generali sui servizi di supporto si rimanda alla pagina http://www.unipg.it/disabilita-e-dsa

La verifica del profitto del mod. II è suddivisa in due parti. La prima della durata di 2 ore è costituita da esercizi da svolgere. Essa è volta a verificare le conoscenze e le abilità relative al calcolo e fornisce un voto espresso in trentesimi. Durante la prova è consentito l'uso di: libro di testo; schede manoscritte con le proprie annotazioni personali inserite in un portalistini; fogli per brutta copia; penne, matite, righello, ... Non è invece possibile tenere con sé: borse o zaini; smartphone o notebook o calcolatrici o altri dispositivi similari; libri diversi da quello di testo. La seconda prova, della durata di un'ora, consiste in uno scritto con domande teoriche. Essa è volta a verificare l'acquisizione del metodo, del linguaggio e delle conoscenze teoriche fondamentali della materia. Gli studenti con BES e/o DSA possono usufruire di compensazioni o misure dispensative. Per informazioni generali sui servizi di supporto si rimanda alla pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Titolo: Analisi matematica 1 Autore: Canuto, C.; Tabacco, A. Editore: Pearson Anno di pubblicazione: 2021 ISBN Cartaceo: 9788891905468 ISBN Digitale: 9788891905475 https://he.pearson.it/catalogo/413 Ulteriore materiale didattico disponibile nella pagina del corso in UniStudium: - temi d'esame svolti - dispense integrative

Titolo: Analisi matematica 1 Autore: Canuto, C.; Tabacco, A. Editore: Pearson Anno di pubblicazione: 2021 ISBN Cartaceo: 9788891905468 ISBN Digitale: 9788891905475 https://he.pearson.it/catalogo/413 Ulteriore eventuale materiale didattico sarà reso disponibile nella pagina del corso in UniStudium

Codice insegnamento 419826

COMPUTABILITY AND COMPLEXITY 1° anno · 0 file
COMPUTABILITY AND COMPLEXITY 1° anno · 0 file
COMPUTATIONAL INTELLIGENCE 1° anno · 0 file
CYBERSECURITY 1° anno · 0 file
CYBERSECURITY 1° anno · 0 file
DIDATTICA DELL'INFORMATICA 1° anno · 0 file
DIDATTICA DELL'INFORMATICA 1° anno · 0 file
HIGH PERFORMANCE COMPUTING 1° anno · 0 file
HIGH PERFORMANCE COMPUTING 1° anno · 0 file
INTELLIGENT APPLICATION DEVELOPMENT 1° anno · 0 file
INTELLIGENT APPLICATION DEVELOPMENT 1° anno · 0 file
INTELLIGENT MODELS 1° anno · 0 file
INTELLIGENT MODELS 1° anno · 0 file
Logica E Reti Logiche 1° anno · 1° semestre · 6 CFU · MATH-01/A · 0 file

I risultati di apprendimento previsto sono (1) padronanza degli strumenti formali preposti al ragionamento deduttivo utilizzando la logica proposizionale e la logica a primo ordine (2) sintesi ed ed ottimizzazione di…

Scheda dell'insegnamento

Obiettivi formativi

I risultati di apprendimento previsto sono (1) padronanza degli strumenti formali preposti al ragionamento deduttivo utilizzando la logica proposizionale e la logica a primo ordine (2) sintesi ed ed ottimizzazione di reti combinatorie e reti sequenziali sincrone.

Programma

Il corso di Logica e Reti Logiche introduce lo studente alla disciplina della logica matematica come potente strumento per la modellazione ed il ragionamento formale mostrandone diverse applicazioni in ambito informatico. In particolare, il modulo di Logica introdurrà lo studente al linguaggio della logica proposizionale e della logica al prim'ordine al fine di specificare argomenti, dimostrarne o confutarne la validità ed inferire conseguenze, anche in modo automatico. Nel modulo di Reti Logiche lo studente verra' guidato nell'affascinante viaggio da Boole a Shannon, comprendendo le sinergie tra le discipline della logica, dell'informatica e della sintesi di circuiti digitali. Più' nel dettaglio, il modulo di Reti Logiche introduce le nozioni fondamentali della progettazione logica dei sistemi digitali trattando (1) le caratteristiche e le proprieta' dell'algebra booleana e di commutazione (2) la sintesi e l'ottimizzazione delle reti logiche combinatorie (3) le macchine a stati finiti (automi di Mealy e Moore) per modellare i sistemi sequenziali.

--

Lezioni frontali coadiuvate da esercitazioni.

Modulo di Reti Logiche -- Algebra di Boole e di commutazione: proprieta' dell'algebra di Boole, algebra di commutazione, funzioni ed espressioni booleane, forme canoniche, porte logiche. Reti combinatorie: sintesi di reti combinatorie, forme canoniche, minimizzazione (mappe di Karnaugh) , circuiti combinatori speciali d'uso frequente:sommatore ripple-carry, multiplexer, decoder. Circuiti sequenziali: modellazione mediante macchine a stati finiti. Macchine di Mealy, macchine di Moore, procedure di conversione dei modelli di macchina a stati finita di Moore/Mealy. Bistabili: latch SR, latch D, Flip flop D. Sintesi ed ottimizzazione di circuiti sequenziali. Modulo di Logica -- Logica proposizionale: sintassi e semantica. Connettivi logici, tabelle di verità, variabili, formule della logica proposizionale. Sistemi deduttivi per la logica proposizionale: Tableaux. Correttezza e completezza. Logica al prim'ordine: sintassi e semantica. Quantificatori, relazioni, predicati, formule della logica del primo ordine. Tableaux al prim'ordine.

Modalità d'esame

Prova scritta ed orale.

Testi di riferimento

Cristiana Bolchini, Carlo Brandolese, Fabio Salice, Donatella Sciuto. Reti Logiche. Maggioli Editore, 2015, Apogeo Education. Johan van Benthem, Hans van Ditmarsch, Jan van Eijck, Jan Jaspars. Logic in Action. 2016 (https://www.logicinaction.org/docs/lia.pdf)

Codice insegnamento 419821

MACHINE LEARNING 1° anno · 0 file
MACHINE LEARNING 1° anno · 0 file
MATEMATICA DISCRETA - MODULO I 1° anno · 0 file
Matematica Discreta 1° anno · Annuale · 12 CFU · MATH-02/B · 0 file

L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le conoscenze di base della matematica, in particolare dell'algebra lineare, in modo da poter usare gli strumenti matematici sia nell'ambito…

Scheda dell'insegnamento

Obiettivi formativi

L'obiettivo principale dell'insegnamento consiste nel fornire agli studenti le conoscenze di base della matematica, in particolare dell'algebra lineare, in modo da poter usare gli strumenti matematici sia nell'ambito dell'informatica teorica sia nel campo delle applicazioni informatiche. Particolare cura è data alla comprensione delle argomentazioni e al rigore nella presentazione dei concetti e dei ragionamenti. Conoscenze e comprensione: Comprensione matematica degli argomenti proposti e conoscenze della teoria svolta e degli esempi fondamentali. Modalità di verifica delle conoscenze: Esame scritto. Capacità: Essere capaci di leggere e comprendere, in modo autonomo, testi di base di Algebra Lineare. Collegare gli argomenti, trovare esempi e controesempi. Essere in grado di comprendere e risolvere problemi ed esercizi non conosciuti, ma chiaramente correlati a quanto svolto nella teoria e a lezione. Modalità di verifica delle capacità: Esame scritto. Autonomia di giudizio: L’esposizione dei contenuti e delle argomentazioni sarà svolta in modo da migliorare la capacità dello studente di riconoscere dimostrazioni rigorose, di individuare ragionamenti fallaci e di adottare strategie ottimali per risolvere problemi ed esercizi. Abilità comunicative: La presentazione degli argomenti sarà svolta in modo da consentire l’acquisizione di una buona capacità di comunicare problemi, idee e soluzioni, sia in forma scritta che orale.

L’obiettivo principale dell’insegnamento consiste nel fornire agli studenti le conoscenze di base della matematica, in particolare dell’algebra e della combinatoria, in modo da poter usare gli strumenti matematici sia nell’ambito dell’informatica teorica sia nel campo delle applicazioni informatiche. Particolare cura è data alla comprensione delle argomentazioni e al rigore nella presentazione dei concetti e dei ragionamenti. Conoscenze e comprensione: Comprensione matematica degli argomenti proposti e conoscenze della teoria svolta e degli esempi fondamentali. Modalità di verifica delle conoscenze: Esame scritto. Capacità: Essere capaci di leggere e comprendere, in modo autonomo, testi di base di Algebra e Combinatoria. Collegare gli argomenti, trovare esempi e controesempi. Essere in grado di comprendere e risolvere problemi ed esercizi non conosciuti, ma chiaramente correlati a quanto svolto nella teoria e a lezione. Modalità di verifica delle capacità: Esame scritto. Autonomia di giudizio: L’esposizione dei contenuti e delle argomentazioni sarà svolta in modo da migliorare la capacità dello studente di riconoscere dimostrazioni rigorose, di individuare ragionamenti fallaci e di adottare strategie ottimali per risolvere problemi ed esercizi. Abilità comunicative: La presentazione degli argomenti sarà svolta in modo da consentire l’acquisizione di una buona capacità di comunicare problemi, idee e soluzioni, sia in forma scritta che orale.

Programma

1. Spazi Vettoriali 2. Matrici 3. Sistemi Lineari 4. Applicazioni Lineari 5. Diagonalizzabilità di matrici 6. Complementi (Campi finiti, Gruppi e permutazioni, Cenni di Crittografia)

  • Nozioni di Matematica di Base e Strutture Algebriche. - Insiemi e Funzioni. - Relazioni d'equivalenza e d'ordine. - Induzione e ricorsività. - Calcolo Combinatorio. - Numeri interi e algoritmi: divisori, divisione Euclidea, Identità di Bézout, Massimo Comun Divisore. - Congruenze modulo n. - Equazioni diofantee. Teorema Cinese dei Resti. - Polinomi. - Grafi.

Conoscenza delle nozioni di Matematica delle scuole superiori (ad es. Teoria degli Insiemi. Funzioni e Applicazioni. Relazioni di equivalenza e partizioni. Operazioni elementari: somma, sottrazione, moltiplicazione, divisione, potenze. Operazioni binarie. Numeri complessi. Polinomi: divisione, radici, scomposizione e riducibilità. Calcolo Algebrico e Letterale. Geometria elementare: punti, segmenti, rette, distanze. Figure geometriche elementari e formule di area e perimetro: triangolo, quadrato, poligoni regolari, trapezi, circonferenza). Contenuti del primo modulo del corso di Matematica Discreta.

Conoscenza delle nozioni di Matematica delle scuole superiori (ad es. Teoria degli Insiemi. Funzioni e Applicazioni. Relazioni di equivalenza e partizioni. Operazioni elementari: somma, sottrazione, moltiplicazione, divisione, potenze. Operazioni binarie. Numeri complessi. Polinomi: divisione, radici, scomposizione e riducibilità. Calcolo Algebrico e Letterale. Geometria elementare: punti, segmenti, rette, distanze. Figure geometriche elementari e formule di area e perimetro: triangolo, quadrato, poligoni regolari, trapezi, circonferenza).

Il corso è organizzato in lezioni frontali in aula su tutti gli argomenti del corso. Parte di ogni lezione sarà dedicata alla soluzione di problemi ed esercizi.

Il corso è organizzato in lezioni frontali in aula su tutti gli argomenti del corso. Parte di ogni lezione sarà dedicata alla soluzione di problemi ed esercizi.

1. Spazi vettoriali: dipendenza lineare, basi. 2. Matrici: operazioni, rango, invertibilità, determinante. Trasformazioni elementari e riduzione a scala. 3. Sistemi di equazioni lineari: risultati di base e teoremi di Rouché-Capelli e Cramer. 4. Applicazioni lineari: matrice associata, proprietà. 5. Diagonalizzabilità di matrici: autovalori, autovettori, molteplicità algebrica e geometrica. 6. Algebra lineare in Campi finiti. 7. Complementi: Gruppi. Gruppi finiti. Teorema di Lagrange e Teorema di Eulero. Gruppi di permutazione. Matrice di Adiacenza, Matrice di Incidenza di un Grafo

Nozioni di Matematica di Base: teoria degli insiemi. Funzioni. Strutture algebriche: Gruppi, Campi, Anelli. Relazioni binarie. Relazioni di equivalenza. Partizioni. Relazioni d'ordine. Ordine totale e parziale. Numeri naturali: ordine e operazioni. Divisibilità. Numeri primi. Induzione. Cardinali finiti. Analisi combinatoria, teorema binomiale di Newton. Definizioni di semigruppo, monoide, anello, campi. Elementi cancellanti e invertibili. Definizione di gruppo, anello, campo. Anello di numeri interi. Divisibilità. divisione euclidea. Massimo comune divisore e minimo comune multiplo. Algoritmo euclideo. L'identità di Bézout. Congruenza modulo n. Classi di anelli di congruenza: 0-divisori, elementi invertibili, inversione modulare. Soluzione di equazioni di congruenza lineare. Teorema cinese del resto. Polinomi. Polinomi sui razionali, sui reali e sui numeri complessi. Polinomi su campi finiti. Grafi: Cenni di teoria dei grafi, sottografi, cammini, matrice di adiacenza. Gruppi. Gruppi finiti. Teorema di Lagrange e Teorema di Eulero. Gruppi di permutazione.

Modalità d'esame

Gli esami sono strutturati in più prove, come segue. 1) Prova teorica (test a risposta multipla): n domande a risposta multipla. La valutazione avviene assegnando i seguenti punteggi: +3 per una risposta giusta, -1 per una risposta sbagliata, 0 per una domanda lasciata senza risposta. La piena sufficienza nella prova teorica corrisponde a un punteggio di almeno 3n/2; tuttavia, per essere ammessi alla valutazione della prova scritta è sufficiente ottenere un punteggio di almeno 4n/3 (circa 44,4%). Generalmente i quesiti sono 12: in tal caso il punteggio minimo di ammissione è 16 e la piena sufficienza corrisponde a 18. Chi ottiene nella prova teorica un punteggio pari o inferiore a 15 (cioè inferiore a 4n/3, per n=12) non viene ammesso alla valutazione della prova scritta e l'esame si considera non superato. 2) Prova scritta, in cui si devono risolvere alcuni esercizi (come quelli svolti nelle esercitazioni) in 120 minuti, giustificando per bene tutti i passaggi. Il punteggio minimo per non essere esclusi è 15/30; la piena sufficienza nella prova scritta corrisponde a 18/30. Non saranno valutate le prove di chi ha ottenuto un punteggio nella prova teorica inferiore a 4n/3. La prova teorica e la prova scritta si svolgono nello stesso giorno, una di seguito all'altra. Non è consentita la consultazione di libri ed appunti durante lo svolgimento della prova scritta. Il voto finale (in trentesimi) è la media pesata dei voti conseguiti nella prova teorica e nella prova scritta, con pesi rispettivamente di 1 e 3. L'esame è superato se, contemporaneamente: 1) il punteggio della prova teorica è almeno 4n/3 (16, per n=12); 2) il punteggio della prova scritta è almeno 15/30; 3) il voto finale (media pesata) è almeno 18/30. Una prova orale facoltativa può svolgersi a richiesta del docente o dello studente, per oggettivi e comprovati motivi. La prova orale non è garantita. La verifica del profitto si basa sulle due prove, valutate sulla base della correttezza, della completezza, del rigore e della chiarezza delle risposte fornite. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visitare la pagina di ateneo: https://www.unipg.it/disabilita-e-dsa . Studenti con esigenze particolari (ad esempio studenti disabili, studenti DSA, studenti lavoratori, studenti non-frequentanti) sono pregati di contattare il docente almeno 15 giorni prima dell'esame. Eventuali strumenti compensativi sono a cura degli studenti stessi.

Gli esami sono strutturati in più prove, come segue. 1) Prova teorica (test a risposta multipla): n domande a risposta multipla. La valutazione avviene assegnando i seguenti punteggi: +3 per una risposta giusta, -1 per una risposta sbagliata, 0 per una domanda lasciata senza risposta. La piena sufficienza nella prova teorica corrisponde a un punteggio di almeno 3n/2; tuttavia, per essere ammessi alla valutazione della prova scritta è sufficiente ottenere un punteggio di almeno 4n/3 (circa 44,4%). Generalmente i quesiti sono 12: in tal caso il punteggio minimo di ammissione è 16 e la piena sufficienza corrisponde a 18. Chi ottiene nella prova teorica un punteggio pari o inferiore a 15 (cioè inferiore a 4n/3, per n=12) non viene ammesso alla valutazione della prova scritta e l'esame si considera non superato. 2) Prova scritta, in cui si devono risolvere alcuni esercizi (come quelli svolti nelle esercitazioni) in 120 minuti, giustificando per bene tutti i passaggi. Il punteggio minimo per non essere esclusi è 15/30; la piena sufficienza nella prova scritta corrisponde a 18/30. Non saranno valutate le prove di chi ha ottenuto un punteggio nella prova teorica inferiore a 4n/3. La prova teorica e la prova scritta si svolgono nello stesso giorno, una di seguito all'altra. Non è consentita la consultazione di libri ed appunti durante lo svolgimento della prova scritta. Il voto finale (in trentesimi) è la media pesata dei voti conseguiti nella prova teorica e nella prova scritta, con pesi rispettivamente di 1 e 3. L'esame è superato se, contemporaneamente: 1) il punteggio della prova teorica è almeno 4n/3 (16, per n=12); 2) il punteggio della prova scritta è almeno 15/30; 3) il voto finale (media pesata) è almeno 18/30. Una prova orale facoltativa può svolgersi a richiesta del docente o dello studente, per oggettivi e comprovati motivi. La prova orale non è garantita. La verifica del profitto si basa sulle due prove, valutate sulla base della correttezza, della completezza, del rigore e della chiarezza delle risposte fornite. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visitare la pagina di ateneo: https://www.unipg.it/disabilita-e-dsa . Studenti con esigenze particolari (ad esempio studenti disabili, studenti DSA, studenti lavoratori, studenti non-frequentanti) sono pregati di contattare il docente almeno 15 giorni prima dell'esame. Eventuali strumenti compensativi sono a cura degli studenti stessi.

Testi di riferimento

Testi consigliati: 1. M. Abate "Algebra Lineare" McGraw-Hill 2. M. Abate, C. de Fabritiis "Esercizi di Geometria" McGraw-Hill Altri Testi: 1. E. Schlesinger "Algebra lineare e geometria" Zanichelli 2. L. Mauri E. Schlesinger "Esercizi di algebra lineare e geometria" Zanichelli 3. S. Lang "Algebra Lineare" Bollati-Boringhieri 4. G. Catino, S. Mongodi "Esercizi svolti di geometria e algebra lineare" Esculapio 5. F. Bottacin, “Linear Algebra and Geometry”, Esculapio Gli studenti sono incoraggiati a dotarsi di un testo tra quelli elencati, o che trattino argomenti relativi all'insegnamento. Il docente non fornisce alcun testo o dispense. Eventuali strumenti compensativi sono a cura degli studenti stessi.

Testo Consigliato: 1. G.M. Piacentini Catteneo, "Matematica Discreta e applicazioni", Zanichelli. Altri Testi: 1. C. Delizia, P. Longobardi, M. Maj, C. Nicotera "Matematica Discreta", McGraw Hill. 2. A. Facchini "Algebra e Matematica Discreta" Decibel - Zanichelli. 2. K.H. Rosen, "Discrete Mathematics and Its Applications", McGraw Hill. Gli studenti sono incoraggiati a dotarsi di un testo tra quelli elencati, o che trattino argomenti relativi all'insegnamento. Il docente non fornisce alcun testo o dispense. Eventuali strumenti compensativi sono a cura degli studenti stessi.

Codice insegnamento 419822

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI CON LABORATORIO 1° anno · 2° semestre · 9 CFU · INFO-01/A · 0 file

Comprensione dei concetti riguardanti la programmazione orientata agli oggetti ed agli eventi. Capacità di realizzare applicazioni. Capacità di comparare più soluzioni possibili per poter scegliere la migliore.…

Scheda dell'insegnamento

Obiettivi formativi

Comprensione dei concetti riguardanti la programmazione orientata agli oggetti ed agli eventi. Capacità di realizzare applicazioni. Capacità di comparare più soluzioni possibili per poter scegliere la migliore. Capacità di applicare schemi di soluzione classici a nuovi problemi. Capacità di progettare la gerarchia di oggetti adatta al problema specifico. Capacità di realizzare programmi con interfacce di tipo professionale.

Programma

PROGRAMMAZIONE AD OGGETTI Modello degli oggetti per riferimento; Incapsulamento; Ereditarietà; Polimorfismo. INTRODUZIONE AL LINGUAGGIO JAVA Istruzioni strutturate; Array; Classi e metodi; Programmi stand-alone; Applet; Librerie Java; Eccezioni; Multithreading; Input ed Output; Istruzioni, espressioni, operazioni; Programmazione orientata agli eventi. Socket; Applicazioni client-server. ESEMPI DI ALGORITMI Ricorsione

E' utile aver sostenuto l'esame di Programmazione procedurale. In particolare è importante avere familiarità con i seguenti concetti: puntatori, gestione dinamica della memoria, algoritmi elementari.

lezioni frontali, esercitazioni al calcolatore.

Compilazione ed interpretazione. PROGRAMMAZIONE ORIENTATA AGLI OGGETTI Modello di oggetti per riferimento. Ereditarietà Incapsulazione. Polimorfismo dati. Typecasting. Polimorfismo metodi. Eary e late binding. Sovraccarico (overloading) e riscrittura metodi. Costruttori. Classi astratte INTRODUZIONE AL LINGUAGGIO JAVA Tipi di dato. Espressioni, Istruzioni Istruzioni semplici blocco Istruzioni condizionali if switch ? : Istruzioni iterative while for do while Istruzioni di interruzione return break continue Array. Classi e metodi; Librerie Java; Modificatore final e costanti. Metodi e campi statici. Ricorsione Gestione memoria in ricorsione. Ricorsione di coda. Parametri main. Garbage collection e finalizzazione. Programmazione orientata agli eventi. Eventi mouse e tastiera Listener e Adattatori Realizzazione applicazioni grafiche Metodi di disegno. Font e Colori. Componenti grafici principali: etichette, bottoni, campi di testo. Evento azione. Disposizione componenti. Classe JDialog, Menu Eccezioni, definizione e gestione eccezioni definite dall'utente. Flussi di input e flussi di output Thread e multithreading Scheduling thread. Gruppi di thread. Sincronizzazione thread. Applicazioni client-server Produzione di documentazione Javadoc. ESEMPI DI ALGORITMI Introduzione complessità Ricerca binaria ricorsiva e iterativa e loro complessità. Complessità Fibonacci esponenziale Fibonacci lineare. Liste concatenate Algoritmi elementari su liste ed array ricerca conteggio somma elementi media massimo e minimo Pile e code. Algoritmi di ordinamento Bubblesort e sua complesstità Quicksort ricorsivo e sua complessità Quiksort non ricorsivo. Torri di Hanoi. NOTA In particolare i seguenti argomenti sono descritti nei testi indicati che sono reperibili in biblioteca: Passaggio dei parametri Java1 I fondamenti C. S. Horstmann - G. Cornell cap 4 (Parametri dei metodi) Thread Java2 Tecniche avanzate C. S. Horstmann - G. Cornell cap 1 (fino a sincronizzazione inclusa) Programmazione in rete Java2 Tecniche avanzate C. S. Horstmann - G. Cornell cap 3 (Connessione a Server, Implementazione server, Programmazione avanzata dei socket)

Modalità d'esame

Prova scritta e prova orale. Sono previste prove in itinere esoneranti per lo lo scritto finale. La prova scritta prevede la soluzione di tre esercizi a stimolo chiuso e risposta aperta ed è finalizzata a verificare la capacità di applicare correttamente le conoscenza teoriche e la capacità di comprensione delle problematiche proposte. Il tempo di svolgimento previsto è di tre ore. La prova orale consiste in una discussione della durata di circa 30 minuti finalizzata a accertare il livello di conoscenza e di comprensione sui contenuti teorici del corso raggiunto dallo studente. Inoltre la prova orale consentirà di verificare la capacità di comunicazione dello studente con proprietà di linguaggio ed organizzazione autonoma dell'esposizione. Su richiesta dello studente l'esame può essere sostenuto anche in lingua Inglese. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Libri di testo: Concetti di informatica e fondamenti di Java settima edizione per Java 8, 9, 10 e 11 di Cay Horstmann Maggioli Editore Core Java 2 vol.2 di Cay S. Horstmann, Gary Cornell - Pearson - 2005 Di questo libro tratteremo solo due capitoli: Multithreading e Programmazione di rete; Altri libri che possono essere consultati: Java 2 Guida completa - L.Lemay, C.L. Perkins, Edizioni Sams net Java 2 i fondamenti - Cay S. Horstmann e Gary Cornell - Mc Graw Hill 2005; in Inglese: Core Java Volume I--Fundamentals, 9th Edition, Cay S. Horstman, Prentice Hall. Part of the Pearson Custom Library: Computer Science series. Core Java, Volume II--Advanced Features, 9th Edition, Cay S. Horstman, Prentice Hall. Part of the Pearson Custom Library: Computer Science series. Tutti i testi sono disponibili in Biblioteca.

Codice insegnamento P574570005

PROGRAMMAZIONE PROCEDURALE CON LABORATORIO 1° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file

Lo studente apprenderà i concetti di base dei linguaggi di programmazione e di problem solving. Inoltre acquisirà una conoscenza avanzata del linguaggio di programmazione C, che lo renderà in grado di scrivere…

Scheda dell'insegnamento

Obiettivi formativi

Lo studente apprenderà i concetti di base dei linguaggi di programmazione e di problem solving. Inoltre acquisirà una conoscenza avanzata del linguaggio di programmazione C, che lo renderà in grado di scrivere direttamente del codice in questo linguaggio. Infine, sarà in grado di gestire le operazioni base su una lista dinamica (per esempio inserzione e cancellazione).

Programma

Introduzione alla programmazione. Linguaggio di programmazione C. Liste dinamiche.

Nessun prerequisito in particolare.

Lezioni frontali con slide in inglese. Esercizi a casa. Esempi di compilazione in aula. Esercitazioni in aula.

  • Esplicitazione del parallelismo fra metodologie informatiche e metodologie didattiche: tecniche di problem solving costruttivo; - Approccio epistemologico ai problemi; - Metodi cooperativi di sviluppo delle soluzioni. - Introduzione ai linguaggi di programmazione - Linguaggi interpretati e compilati - Nomi e visibilità - Sistemi di versionamento (GitHub) - Linguaggio C nello specifico: Language Basics Types Literals Type conversions Expressions and operators Statements Loops Conditional statements Functions Arrays Pointers Structures and Unions Dynamic Memory Management Input e Output Direttive Pre-processing Compilazione con GCC Debugging di Programmi C con GDB - Liste dinamiche

Modalità d'esame

Prova scritta che consiste in 9-10 esercizi basati sulla comprensione di alcune porzioni di codice C, e su scrittura di codice su carta (durata 1 ora e 45). Il superamento della prova scritta consente l'accesso ad una prova di laboratorio (durata 1 ora) in cui verrà richiesto di modificare il progetto di programmazione assegnato a casa (da consegnare prima della prova pratica). In base alle due prove, possono essere poste alcune domande di teoria, alla fine della prova pratica. La prova scritta è valutata in trentesimi, a cui si possono sommare fino a 4-5 punti per il progetto. La restante prova orale è utilizzata per verificare le competenze e modificare la votazione finale. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Il linguaggio C. Fondamenti e tecniche di programmazione. Ediz. Mylab. Con espansione online, Paul J. Deitel and Harvey M. Deitel (Authors), Publisher: Pearson; 9 edizione, ISBN-10: 8891906239, Pages: 736, 2022. C Pocket Reference, Peter Prinz, Ulla Kirch-Prinzm, Publisher: O'Reilly Media, ISBN-10: 0596004362, Pages: 144, 2002.

Codice insegnamento P550122064

ALGORITMI DI APPROSSIMAZIONE 2° anno · 0 file
ALGORITMI DI APPROSSIMAZIONE 2° anno · 0 file
ALGORITMI E STRUTTURE DATI CON LABORATORIO - MODULO I 2° anno · 0 file
ALGORITMI E STRUTTURE DATI CON LABORATORIO - MODULO II 2° anno · 0 file
APPLIED IMAGE AND SIGNAL PROCESSING 2° anno · 0 file
APPLIED IMAGE AND SIGNAL PROCESSING 2° anno · 0 file
Algoritmi E Strutture Dati Con Laboratorio 2° anno · Annuale · 12 CFU · INFO-01/A · 0 file

Il corso fornisce le competenze algoritmiche di base, caratterizzanti per il Corso di Studio. L'obiettivo principale dell’insegnamento consiste nel fornire agli studenti le basi per comprendere, valutare, e proporre…

Scheda dell'insegnamento

Obiettivi formativi

Il corso fornisce le competenze algoritmiche di base, caratterizzanti per il Corso di Studio. L'obiettivo principale dell’insegnamento consiste nel fornire agli studenti le basi per comprendere, valutare, e proporre algoritmi deterministici, simili a quelli studiati nel corso, ma estesi a nuovi contesti. Le principali conoscenze acquisite saranno: la capacità di valutare l'efficienza di un algoritmo; la conoscenza degli algoritmi per l'ordinamento; la conoscenza e l' utilizzo di strutture dati.

Il modulo fornisce conoscenze e competenze per comprendere, applicare e analizzare i principali algoritmi su grafi. Al termine del modulo lo studente sarà in grado di scegliere una rappresentazione adeguata per un grafo; applicare algoritmi di visita, connettività, ordinamento topologico, copertura minima e cammino minimo; distinguere le condizioni di applicabilità dei diversi algoritmi; analizzarne correttezza e complessità; confrontare soluzioni alternative in relazione alle caratteristiche del grafo. Lo studente saprà inoltre adattare gli algoritmi studiati alla soluzione di problemi in nuovi contesti.

Programma

Progettazione degli algoritmi e analisi della complessità in tempo e spazio. Algoritmi di ordinamento, incluso il problema delle statistiche d'ordine. Heapsort. Binary Search Trees. Tecnica Divide-et-impera.

Grafi orientati e non orientati e loro rappresentazione. Visite in ampiezza e in profondità. Grafi aciclici, ordinamento topologico e componenti fortemente connesse. Alberi di copertura minimi. Cammini minimi da sorgente singola e tra tutte le coppie di vertici nei grafi pesati. Analisi della correttezza e della complessità degli algoritmi.

Elementi di Analisi Matematica, Matematica Discreta e un linguaggio di programmazione imperativo.

Conoscenze di programmazione mediante un linguaggio imperativo, matematica discreta e analisi matematica di base. Sono inoltre richieste le conoscenze acquisite nel Modulo I: analisi della complessità, notazione asintotica, ricorrenze, ordinamento, heap, code di priorità e strutture per insiemi disgiunti.

Lezioni frontali in classe.

Il modulo comprende 47 ore di lezioni frontali ed esercitazioni. Le lezioni alternano la presentazione dei concetti teorici, la descrizione degli algoritmi mediante pseudocodice, l’analisi della correttezza e della complessità e lo svolgimento guidato di esercizi. Particolare attenzione è dedicata all’esecuzione passo per passo degli algoritmi e alla scelta della soluzione più appropriata in funzione delle caratteristiche del grafo.

Algoritmi: correttezza, terminazione, complessità (caso pessimo, caso medio). InsertionSort: analisi della complessita' in tempo e spazio nel caso pessimo e nel caso medio. Fondamenti di Matematica: Principio di Induzione, Ordine di grandezza di funzioni. Base, tetto, esponenziali, Logaritmi. Sommatorie e serie. Metodi di progetto: Divide et Impera. MergeSort e Ricerca Binaria. Analisi di complessita' di algoritmi ricorsivi. Equazioni di ricorrenza. Il Teorema dell'esperto. Ordinamento: Quicksort con analisi della complessita' in tempo nel caso pessimo e nel caso medio. Costruzione di uno heap. HeapSort. Limiti teorici della complessità di ordinamento per confronto. CountingSort. Radix Sort. Limiti inferiori e superiori per la complessità in tempo per il calcolo del minimo e del massimo in una sequenza. Mediana e statistiche d'ordine. Grafi:generalità e rappresentazione in memoria. Schema generale di visita di grafi. Alberi di copertura e componenti connesse.Visita in ampiezza (BFS), visita in profondità (DFS) e loro proprietà (classificazione degli archi). Grafi aciclici e ordine topologico. Componenti fortemente connesse. Algoritmo di Djikstra. Albero di copertura di costo minimo: algoritmo di Kruskal, algoritmo di Prim.

1. Definizioni e proprietà fondamentali dei grafi orientati e non orientati. Grafi pesati. 2. Rappresentazione dei grafi mediante liste e matrici di adiacenza. Analisi dei costi delle rappresentazioni. 3. Visita in ampiezza, albero BFS e cammini minimi nei grafi non pesati. 4. Visita in profondità, foresta DFS, tempi di scoperta e fine e classificazione degli archi. 5. Grafi aciclici orientati e ordinamento topologico. 6. Componenti connesse e componenti fortemente connesse. 7. Strutture dati per insiemi disgiunti e loro applicazione agli algoritmi su grafi. 8. Alberi di copertura minimi e proprietà di taglio. Algoritmi di Kruskal e Prim. 9. Cammini minimi da sorgente singola. Sottostruttura ottima, rilassamento e alberi dei cammini minimi. 10. Algoritmo di Bellman-Ford e rilevazione dei cicli di peso negativo. 11. Cammini minimi nei grafi aciclici orientati. 12. Algoritmo di Dijkstra e implementazione mediante code di priorità. 13. Cammini minimi tra tutte le coppie di vertici nei grafi pesati. 14. Algoritmo analogo alla moltiplicazione di matrici e relativa versione accelerata. 15. Algoritmo di Floyd-Warshall e chiusura transitiva. 16. Algoritmo di Johnson per grafi sparsi. 17. Confronto tra gli algoritmi per cammini minimi, condizioni di applicabilità e analisi della complessità.

Modalità d'esame

L'esame è unico per i due moduli. Le modalità di verifica includono una prova scritta e una prova orale su richiesta dello studente. La prova scritta consiste nella risoluzione di esercizi per valutare la capacità di applicare le conoscenza acquisite e comprenderne il trasferimento a nuovi contesti. La prova orale verte su tutto il programma e consiste sia in domande di teoria, sia nella risoluzione di esercizi e ha una durata approssimativa di 20-25 minuti. Il voto finale è composto considerando sia l'esito della prova scritta sia l'andamento della prova orale. La prova orale non è obbligatoria se il voto dello scritto è sufficiente. Per gli studenti frequentanti è possibile sostenere due prove scritte in itinere, ciascuna composta da alcuni esercizi. Nel caso in cui lo studente intenda anticipare l’esame in un anno precedente a quello programmato nel piano di studio, si raccomanda di frequentare il ciclo delle lezioni e di sostenere l’esame nel primo appello utile dopo che le lezioni medesime siano terminate, nel rispetto quindi del semestre di programmazione dell’insegnamento. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

La verifica è integrata con quella del Modulo I. L’esame prevede una prova scritta ed eventualmente una prova orale. La prova scritta comprende esercizi finalizzati a valutare la capacità di applicare gli algoritmi studiati, mostrarne i passaggi principali, motivare le scelte effettuate e determinarne la complessità. La prova orale, se sostenuta, verte sul programma dei due moduli e comprende domande teoriche e discussione di esercizi. La valutazione considera la correttezza delle soluzioni, la capacità di applicare le conoscenze a nuovi contesti, la qualità dell’analisi e la chiarezza espositiva.

Testi di riferimento

T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (terza edizione), McGraw-Hill, 2010, ISBN: 978-88-386-6515-8 I materiali didattici utilizzati durante le lezioni sono, solitamente, resi disponibili anche su Unistudium.

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduzione agli algoritmi e strutture dati, terza edizione, McGraw-Hill, 2010. M. T. Goodrich, R. Tamassia, Algorithm Design and Applications, Wiley, 2015. Slide, esercizi e materiali integrativi sono messi a disposizione sulla piattaforma UniStudium.

Codice insegnamento 419832

Architettura Reti E Internet 2° anno · 1° semestre · 9 CFU · IINF-05/A · 0 file

L'obiettivo principale dell'insegnamento è quello di introdurre lo studente allo studio delle reti locali e geografiche, in particolare della rete Internet e dei Servizi che sono alla base della straordinaria…

Scheda dell'insegnamento

Obiettivi formativi

L'obiettivo principale dell'insegnamento è quello di introdurre lo studente allo studio delle reti locali e geografiche, in particolare della rete Internet e dei Servizi che sono alla base della straordinaria evoluzione della comunicazione e dell'accesso alle informazioni, in modo da essere protagonisti attivi delle tecnologie emergenti ICT. Le principali conoscenze acquisite saranno:Topologia e metodi di accesso per le reti locali, in particolare del protocollo di rete Ethernet; Tecnologie per la realizzazione di reti local e geografiche; Autonomous Systems e Protocolli di Routing, sia di tipo Interior Gateway Protocol (OSPF, RIP) che Exterior Gateway Protocol (BGP) Protocollo Ipv4, IPv6 and IPv8. Famiglia dei protocolli TCP/IP. Servizi di Rete Internet: loro disegno e relativa implementazione Firewall e sicurezza di rete Monitoraggio di reti e servizi. Le principali abilità (vale a dire la capacità di applicare le conoscenze) acquisite sono: Capacità di disegnare e implementare una rete di trasmissione dati, evitandone le possibili criticità; Capacità di disegnare e implementare i servizi di rete Internet, con capacità di evitare i principali problemi; Capacità di pianificare ed implementare una efficiente sicurezza di rete; Capacità di pianificare ed implementare il monitoraggio della rete e dei servizi per prevenire possibili problemi e interruzioni.

Fornire conoscenze ed esperienze sui protocolli di rete e sulla gestione del hardware di rete, dei servizi Internet e degli strumenti per la messa in sicurezza delle reti.

Programma

Viene presentata la rete Internet e le architetture delle reti locali e geografiche. Viene presentato il modello di riferimento ISO/OSI ed i servizi di rete con i relativi protocolli TCP/IP coinvolti: DNS, SSH, FTP e Telnet, NIS, NFS, Automount, Email, HTTP, SNMP, Firewall e Sicurezza di Rete. Verrà discussa l’evoluzione del protocollo IP (IPv4, IPv6, IPv8). Verranno discussi alcuni casi di studio.

Introduzione Fondamenti e modelli di rete Codifica e rappresentazione dati Classificazione e topologie di rete Metriche prestazionali e strumenti Teoria dei segnali e filtri Tecniche di modulazione del segnale Limiti trasmissivi e alterazioni Codifica di canale e sincronismo Rilevamento e controllo errori Tecniche di multiplazione Interfacce fisiche e standard seriali Tecnologie modem e reti xDSL Reti in fibra ottica Gerarchie digitali di trasporto Sistemi radiomobili e wireless Reti dedicate, ISDN e videoconferenza Protocolli di livello Data Link Esempi ed esercitazioni

Nessun prerequisito è richiesto allo studente; si considera che lo studente abbia comunque dimestichezza con i servizi della rete Internet almeno dal punto di vista utente. La conoscenza approfondita dei sistemi operativi open source come Linux agevola l'acquisizione dei concetti del corso. Nel corso delle lezioni verranno comunque forniti esempi e casi d'uso volti ad agevolare l'apprendimento dei concetti illustrati a lezione.

Nessun prerequisito richiesto

Lezione frontale con l'ausilio di strumenti multimediali (slides, video, etc). Esercitazione in sala computer.

Il corso prevede lezioni teoriche e discussioni in classe. Le lezioni saranno frontali e si svolgeranno in aula presso il DMI secondo il calendario pubblicato sul sito del dipartimento.

Presentazione delle reti Locali e Geografiche. Viene illustrato il modello di riferimento ISO/OSI e le principali architetture di reti locali e reti geografiche. In particolare vengono presentate in dettaglio le tecnologie Ethernet e le sue varianti. Vengono illustrati in dettaglio la famiglia dei protocolli TCP/IP, collocandoli nel Modello di Riferimento ISO/OSI. Vengono presentate le versioni 4, 6 e 8 del protocollo IP. Vengono illustrati e discussi i principali servizi Internet ed i protocolli TCP/IP coinvolti: DNS, SSH, FTP, Telnet, NIS, NFS, Automount, Email (protocollo di trasporto SMTP e Mail User Agent), HTTP, SNMP, Firewall e Sicurezza di rete. Vengono presentati il concetto di Autonous System ed i protocolli di routing dinamici OSPF, RIP (Interior Gateway Protocols) e BGP (Exterior Gateway Protocols). Viene presentata la sicurezza di rete, il Firewall e i sistemi di prevenzione e identificazione di intrusioni nella rete. Sono presentati e discussi i principali file di configurazione di questi servizi e vengono discussi alcuni casi di studio tipici. Viene presentata l'architettura e le problematiche di gestione e governo della rete Internet, indicandone i principali momenti fondamentali per il suo sviluppo.

Introduzione Modelli ISO/OSI e TCP/IP Codifiche dati e codici numerici Flussi trasmissivi e apparati DTE/DCE Tipologie e topologie di rete Architetture di rete Wireless Mesh Parametri prestazionali e strumenti diagnostici Segnali elettrici e spettro frequenziale Serie di Fourier e filtri Modulazioni analogiche AM, FM, PM Modulazione a impulsi e PCM Teoremi di Nyquist e Shannon Modulazioni digitali ASK, FSK, PSK Modulazioni multilivello QAM e Trellis Diagrammi a costellazione ed EVM Degrado, rumore ed interferenza ISI Trasmissioni sincrone, asincrone e clock Codifiche di linea e scrambling Delimitazione trame e tecniche stuffing Controllo d'errore parità e CRC Multiplazione a divisione FDM/TDM Multiplazione ottica WDM ed EDFA Interfacce fisiche Centronics e RS-232 Interfacce seriali RS-422, USB, FireWire Modem analogici e tecnologia ADSL Reti d'accesso FTTx e PON Gerarchie digitali PDH, SDH, SONET Linee dedicate CDN e ISDN Standard di videocomunicazione e DVB-H Reti mobili 2G, 3G, 4G, 5G Controllo di flusso RTS/CTS, XON/XOFF Protocolli ARQ e finestra scorrevole Protocolli di linea XMODEM, BSC, HDLC Esercitazioni pratiche in aula guidate dal docente

Modalità d'esame

L'esame prevede una prova scritta da sostenere al computer con il sistema LibreEOL, nel quale vengono presentate allo studente un insieme di test che prevedono diversi tipi di risposta: multiple choice e/o multiple response e/o drag and drop e/o a risposta aperta. Inoltre è previsto un esame orale di circa 20 minuti nel quale lo studente deve dimostrare la padronanza dei concetti richiesti, una adeguata proprietà di linguaggio e la capacità di organizzare i concetti da esporre in modo adeguato.

La valutazione del corso avverrà tramite un esame scritto da svolgere in aula tramite LibreEOL.

Testi di riferimento

Andrew S. Tanenbaum, David J. Wetherall, Computer Networks, Pearson ISBN13: 978-0-13-212695-3 Douglas E. Comer, Internetworking With TCP/IP Volume 1: Principles Protocols, and Architecture, 6th edition, 2013. ISBN-10: 0-13-608530-X ISBN-13: 9780136085300. Materiale didattico fornito dal docente con riferimenti bibliografici

Materiale multimediale fornito dal Docente.

Codice insegnamento 419829

CALCOLO DELLE PROBABILITA' E STATISTICA MATEMATICA 2° anno · 1° semestre · 6 CFU · MATH-03/B · 0 file

Conoscenza e capacità d'utilizzo nozioni base di probabilità, statistica descrittiva ed inferenziale. Gli studenti saranno in grado di affrontare e risolvere problemi sia pratici che teorici relativi alla statistica…

Scheda dell'insegnamento

Obiettivi formativi

Conoscenza e capacità d'utilizzo nozioni base di probabilità, statistica descrittiva ed inferenziale. Gli studenti saranno in grado di affrontare e risolvere problemi sia pratici che teorici relativi alla statistica descrittiva e inferenziale, la regressione lineare e i test d'ipotesi.

Programma

Nozione di base di statistica descrittiva. Regressione lineare semplice. Nozioni di base di probabilità. Principali distribuzioni discrete e continue. Stima parametrica. Stima intervallare. Verifica di ipotesi. Principio di coerenza.

Nozioni base di analisi matematica, con particolare attenzione al calcolo differenziale e integrale. Nozioni base di algebra e calcolo combinatorio e di alfabetizzazione informatica. Per poter al meglio comprendere gli argomenti del corso sono fondamentali le nozioni sviluppate negli insegnamenti Analisi Matematica e Programmazione procedurale con Laboratorio.

Lezioni teoriche in aula su tutti i contenuti & svolgimento esercizi pratici anche con software R.

Statistica descrittiva: distribuzioni statistiche unitarie, di frequenze e in classi; rappresentazioni grafiche distribuzioni; valori medi: moda, mediana, media aritmetica, medie alla Chisini; proprietà valori medi; indici di variazione; quantili; Boxplots; distribuzione campionaria doppia: frequenze congiunte, marginali, condizionate, indice di dipendenza chi-quadro (assoluto e relativo).Regressione lineare semplice: metodo dei minimi quadrati; previsioni; indice di accostamento lineare R2. Principali distribuzioni di probabilità: binomiale, geometrica, Poisson, uniforme, esponenziale, normale. Distribuzioni di statistiche campionarie: chi-quadro e t-student. Stima parametrica: principali stimatori e loro proprietà. Stima intervallare: tecnica generale individuazione intervalli di confidenza, casi particolari per la media e la varianza popolazione normale. Verifica di ipotesi: test parametrici con loro definizioni generali, casi particolari campionamento da popolazione normale; test non parametrici: test binomiale, di adattamento, d’indipendenza. Principio di coerenza e sue implicazioni:

Modalità d'esame

Test preliminare atto a verificare l’apprendimento delle nozioni teoriche fondamentali. Per chi supera il test preliminare, in seguito dovrà affrontare una prova in R per verificare le capacità ad affrontare e risolvere problemi pratici di statistica di base. Il test preliminare consta di 10 domande teoriche a risposta semi-aperta. La prova pratica in R consta di 4 o 5 punti da sviluppare su base di dati simulati o direttamente forniti. Deve essere svolta entro un'ora. Per poter essere ammessi alla prova pratica in R bisogna raggiungere il punteggio minimo di 18/30 nel test preliminare. PER GLI STUDENTI FREQUENTANTI: sono previste due prove parziali con le stesse modalità di verifica complessiva relativa al test preliminare e alla prova pratica in R, ma su argomenti pertinenti solo la prima o la seconda parte del corso. Il voto medio delle due parti concorrerà a stabilire il voto complessivo. Per lo svolgimento della prova pratica in R il materiale di riferimento è principalmente quello all'interno del primo testo consigliato (laboratorio di statistica in R) e il materiale presente in Unistudium. Per il test preliminare si fa riferimento a quanto contenuto nei restanti testi consigliati. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Iacus S.M., Masarotto G.: Laboratorio di statistica con R. McGraw-Hill. Scozzafava R.: Incertezza e Probabilità,Zanichelli Ed. S. Ross, Introduction to probability and Statistics for Engineers and Scientists, Academic Press.

Codice insegnamento P673574301

COMPUTATIONAL INTELLIGENCE 2° anno · 0 file
CRIPTOGRAPHY AND APPLICATION: MODULO 1 2° anno · 0 file
CRIPTOGRAPHY AND APPLICATION: MODULO 2 2° anno · 0 file
CRIPTOGRAPHY AND APPLICATIONS - MODULE 1 2° anno · 0 file
Calcolo Numerico 2° anno · 1° semestre · 6 CFU · MATH-05/A · 0 file
Archivio Globale

Capacità di esaminare analiticamente le proprietà di un metodo numerico. Abilità di implementare semplici algoritmi numerici su calcolatore. Familiarizzare con i concetti di costo computazionale e stabilità numerica.

Scheda dell'insegnamento

Obiettivi formativi

Capacità di esaminare analiticamente le proprietà di un metodo numerico. Abilità di implementare semplici algoritmi numerici su calcolatore. Familiarizzare con i concetti di costo computazionale e stabilità numerica.

Programma

Elementi di base di Analisi Numerica. Laboratorio del corso di calcolo numerico.

Algebra lineare. Studio di funzioni di una variabile reale. Elementi di programmazione.

Lezioni frontali e laboratorio su calcolatore usando il software MATLAB.

Introduzione ai concetti di base dell'analisi numerica: numeri di macchina, stabilità numerica, costo computazionale. Prodotto matrice-vettore, eliminazione gaussiana, metodi iterativi. Applicazione alle reti complesse. Determinazione di zeri di funzioni.

Modalità d'esame

Sono due le prove da dovere superare per poter superare l'esame. La prima è una prova scritta. Lo scopo di tale prova è quello di invogliare lo studente nello studio di soluzioni di problemi tramite l'applicazione delle tecniche teoriche studiate nella materie. Tale fase è fondamentale al fine di far comprendere tutte le potenzalità e gli scopi della teoria. La prova viene svolta in aula e in maniera indipendente dallo studente. Allo studente vengono proposti alcuni esercizi con il relativo punteggio. La prova ha durata illimitata e lo studente è libero di consulatere libri e appunti e di usare il computer. La prova viene valutata controllando il corretto svolgimento dell'esercizio. La prova è superata se si ottiene un voto maggiore o uguale a 16. Il superamento di tale prova permette l'ammissione alla seconda prova d'esame. La seconda prova è orale. Lo scopo di tale prova è quello di verificare le competenza teoriche e la padronanza della materia da parte dello studente. La prova può essere sostenuta in qualsiasi momento successivo al superamento della prima prova ed ha la durata di circa mezz'ora. Il risultato di tale prova determinerà il voto finale dell'esame. Entrambe le prove su richiesta dello studente possono essere sostenute in lingua inglese. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Dispense fornite dal docente.

Codice insegnamento 419837

DIAGNOSTICA PER IMMAGINI 2° anno · 0 file
DIAGNOSTICA PER IMMAGINI 2° anno · 0 file
DIDATTICA DELL'INFORMATICA 2° anno · 0 file
DIDATTICA DELL'INFORMATICA 2° anno · 0 file
Diritto Privato Dell'Informatica E Data Protection 2° anno · 1° semestre · 6 CFU · GIUR-01/A · 0 file

La finalità del corso consiste nell’acquisizione dei principi generali e degli istituti del diritto civile dell’informatica e della data protection, anche attraverso la loro applicazione alla redazione di clausole…

Scheda dell'insegnamento

Obiettivi formativi

La finalità del corso consiste nell’acquisizione dei principi generali e degli istituti del diritto civile dell’informatica e della data protection, anche attraverso la loro applicazione alla redazione di clausole contrattuali, all’analisi di casi pratici e alla predisposizione di brevi commenti a sentenze, con eventuale approccio comparatistico.

Programma

Istituti fondamentali del diritto civile, le situazioni giuridiche soggettive e la loro tutela, con particolare riferimento alla tutela dei dati personali e delle libertà fondamentali, e alla regolamentazione delle tecnologie digitali.

Contenuti acquisiti nel corso istituzionale di diritto privato e nel percorso formativo: Capacità logico argomentative.

Lezioni frontali e esercitazioni pratiche

Analisi e comprensione della regolamentazione giuridica delle tecnologie, nella sistematica degli istituti fondamentali del diritto civile. Costituiranno oggetto di studio, in particolare: - i soggetti di diritto e la regolamentazione dell'intelligenza artificiale, - capacità di agire, tutela dei minori online e strumenti di verifica dell'età - cyberbullismo e rimozione dei contenuti online. - diritti fondamentali, e in specie: identità personale e identità digitale, neurodiritti, privacy e protezione dei dati personali, diritto d'autore e IA. - Dati personali e contratti di scambio di dati personali - successione nel patrimonio digiitale - sicurezza informatica e direttiva NIS2 - Responsabilità delle piattaforme, digital services act e digital markets act - Responsabilità per danno da IA - smart contract e tecnologia blockchain - patrimonio digitale, NFT e diritti di privativa intellettuale - responsabilità civile per l'uso di IA e per illecito trattamento dei dati personali

Modalità d'esame

La prova finale consiste in un esame orale; le domande vertono sul programma come descritto dal docente nella relativa scheda, avendo riguardo alla conoscenza della materia, alla capacità di ragionamento, alla logicità dell’argomentazione e all’apprendimento della metodologia propria del singolo insegnamento, la durata dell’esame varia secondo l’andamento della prova. La valutazione terrà conto anche delle attività di preparazione alla verifica e verifica in itinere.

Testi di riferimento

S. Stefanelli, Diritto civile del digitale, Ali&no ed., 2023

Codice insegnamento 419839

FISICA GENERALE 2° anno · 2° semestre · 6 CFU · PHYS-01/A · 0 file
Archivio Globale

Apprendere le conoscenze di base della meccanica classica e dell'elettromagnetismo e risolvere semplici problemi. di fisica classica.

Scheda dell'insegnamento

Obiettivi formativi

Apprendere le conoscenze di base della meccanica classica e dell'elettromagnetismo e risolvere semplici problemi. di fisica classica.

Programma

Il corso propone insegnamenti di base dei fenomeni fisici, ovvero di una selezione di argomenti formativi della fisica classica, tra cui meccanica del punto materiale, conservazioni, elettrostatica, correnti elettriche e circuiti, magnetismo ed elettromagnetismo.

Conoscenze di base di algebra, geometria analitica, trigonometria piana, calcolo differenziale ed integrale.

Lezione frontale ed esercitazioni.

Grandezze fisiche, unità di Misura, ordini di grandezza. Scalari e vettori. Posizione, velocità, accelerazione e legge oraria. Moto uniforme ed uniformemente accelerato; moto circolare uniforme. Sistemi di riferimento in moto relativo uniforme. Forza e massa. Le tre leggi di Newton. Le forze di attrito. Lavoro ed energia: energia cinetica e teorema dell'energia cinetica, forze conservative e non conservative, energia potenziale, conservazione dell'energia; potenza. Centro di massa, quantità di moto, conservazione della quantità di moto. Impulso di una forza, urti (elastici e anelastici). Rotazione di un corpo rigido: momento d'inerzia, teorema degli assi paralleli; energia cinetica di rotazione. Cariche elettriche. Isolanti e conduttori. Legge di Coulomb. Campo elettrico e sua definizione operativa. Campo elettrico delle cariche puntiformi. Teorema di Gauss. Cariche in un conduttore in condizioni statiche, teorema di Coulomb, campi elettrici generati da distribuzioni di cariche a simmetria piana, cilindrica e sferica. Potenziale elettrostatico: definizione operativa. Potenziale per distribuzioni di carica puntiformi e continue. Condensatori: capacità, calcolo nel casi di condensatore piano. Condensatori in serie e parallelo. Energia immagazzinata in un condensatore carico. Energia e densità di energia del campo elettrico. Corrente elettrica. Densità e intensità di corrente elettrica. Velocità di deriva. Resistenza e resistività. Legge di Ohm (in forma macroscopica e microscopica). Potenza nei circuiti elettrici e legge di Joule. Generatori: forza elettromotrice e resistenza interna. Circuiti con resistori. Resistenze in serie, in parallelo. Leggi di Kirchhoff. Campo di induzione magnetica B. Forza di Lorentz agente su una particella carica. Moto di una carica in campo magnetico uniforme. Forza magnetica agente su un filo percorso da corrente. Momento meccanico agente su una spira percorsa da corrente. Campo magnetico generato da una corrente: la legge di Biot-Savart. Uso della legge di Biot-Savart per il calcolo di B in alcuni sistemi semplici. Teorema della circuitazione (di Ampère). Applicazioni. Il solenoide. Forze agenti tra circuiti percorsi da correnti. Legge di Faraday-Neumann-Lenz. Induzione e trasferimento di energia.

Modalità d'esame

L’esame consiste in una prova orale. Nella prova orale è richiesto di risolvere semplici problemi e quesiti, motivando le scelte, in modo da valutare il lilevello di conoscenza della materia raggiunto dallo studente.

Testi di riferimento

Halliday, Resnick, Walker, "Fondamenti di Fisica", Casa Editrice Ambrosiana.

Codice insegnamento P989890344

INFORMATION SECURITY AUDITING, CERTIFICATION AND DIGITAL FORENSICS 2° anno · 0 file
INFORMATION SECURITY AUDITING, CERTIFICATION AND DIGITAL FORENSICS 2° anno · 0 file
KNOWLEDGE REPRESENTATION AND AUTOMATED REASONING 2° anno · 0 file
KNOWLEDGE REPRESENTATION AND AUTOMATED REASONING 2° anno · 0 file
LINGUAGGI FORMALI E COMPILATORI 2° anno · 2° semestre · 6 CFU · INFO-01/A · 1 file

Le principali conoscenze fornite riguarderanno - i fondamenti della teoria dei linguaggi formali - la comprensione degli aspetti formali sintattico/semantici dei linguaggi di programmazione - il funzionamento di…

Scheda dell'insegnamento

Obiettivi formativi

Le principali conoscenze fornite riguarderanno - i fondamenti della teoria dei linguaggi formali - la comprensione degli aspetti formali sintattico/semantici dei linguaggi di programmazione - il funzionamento di interpreti e compilatori. L'insegnamento fornirà allo studente la capacità di progettare analizzatori lessicali e analizzatori sintattici per semplici linguaggi di programmazione.

Programma

Fasi della compilazione. Automi a stati finiti, linguaggi regolari, grammatiche lineari destre, lemma di iterazione, analizzatori lessicali. Grammatiche non contestuali, grammatiche ambigue, forme normali, automi a pila, algoritmi di parsing. La gerarchia di Chomsky. Analisi semantica: cenni

Per seguire con profitto il corso lo studente dovrebbe conoscere le nozioni fondamentali della Matematica Discreta e, in particolare quelle di funzione, relazione, equivalenza, insieme ordinato, semigruppo, grafo. Risulterà utile inoltre la conoscenza dei più semplici algoritmi su grafi diretti (accessibilità, verifica della connessione, ecc.).

Lezioni frontali

Generalità sui linguaggi di programmazione e compilatori, esempi, problemi Alfabeto, parole, linguaggi, grammatiche, operazioni tra linguaggi Analisi lessicale: automi a stati finiti, modello deterministico e non deterministico, linguaggi regolari e teorema di Kleene, automa minimo e teorema di Myhill-Nerode, grammatiche lineari destre, lemma di iterazione, analizzatori lessicali, proprietà di chiusura dei linguaggi regolari. Analisi sintattica: grammatiche non contestuali, grammatiche ambigue e linguaggi inerentemente ambigui, lemma di iterazione per linguaggi non contestuali, forme normali di Chomsky e Greibach, automi a pila, riconoscimento per pila vuota e stato finale, caratterizzazione dei linguaggi non contestuali mediante automi a pila, algoritmo CYK, parsing predittivo, grammatiche LL(1). La gerarchia di Chomsky: linguaggi contestuali e monotoni, linguaggi ricorsivi e ricorsivamente enumerabili. Analisi semantica: cenni

Modalità d'esame

L'esame prevede una prova scritta e una prova orale. La prova scritta, di durata non superiore a 90 minuti, consiste nella soluzione di quattro problemi di carattere algoritmico/computazionale. Tale prova ha l'obbiettivo di verificare la capacità di applicare le conoscenze apprese durante il corso alla soluzione di problemi pratici. La prova orale consiste in una discussione della durata di circa 30 minuti con l'obbiettivo di verificare la effettiva comprensione dei contenuti teorici del corso, nonché il livello di conoscenza degli argomenti previsti dal programma. Tale prova consentirà inoltre di verificare la capacità espositiva dello studente, in particolare con l'uso di un adeguato linguaggio tecnico. La prova scritta, una volta superata, conserva la sua validità per 12 mesi. Trascorso tale termine, lo studente che non abbia completato l'esame dovrà sostenere l'intero esame. Gli studenti che lo desiderano, potranno sostenere l'esame in lingua Inglese o Francese. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

J. Hopcroft, R. Motwani, J. Ullman, Automi, linguaggi e calcolabilità, Pearson, 2009 A.V. Aho, R. Sethi, J.D. Ullman, Compilers. Principles, Techniques and Tools, Addison Wesley, 1988 D. Grune, C.J.H. Jacobs, Parsing techniques, Springer, 2008 (1. edizione disponibile on line) A. de Luca, F.D'Alessandro, Teoria degli Automi Finiti, Springer, 2013

Codice insegnamento P914498179

METODI PER L'OTTIMIZZAZIONE 2° anno · 0 file
METODI PER L'OTTIMIZZAZIONE 2° anno · 0 file
NUMERICAL METHODS FOR INFORMATION TECHNOLOGIES 2° anno · 0 file
NUMERICAL METHODS FOR INFORMATION TECHNOLOGIES 2° anno · 0 file
SIMULAZIONE 2° anno · 0 file
SIMULAZIONE 2° anno · 0 file
SISTEMI OPERATIVI CON LABORATORIO 2° anno · 2° semestre · 9 CFU · INFO-01/A · 1 file

Il corso si propone di fornire competenze relative ai concetti di base comuni ai sistemi operativi, alla loro architettura e loro principali funzionalità. Parimenti si vuole fornire nozioni e competenze relative alle…

Scheda dell'insegnamento

Obiettivi formativi

Il corso si propone di fornire competenze relative ai concetti di base comuni ai sistemi operativi, alla loro architettura e loro principali funzionalità. Parimenti si vuole fornire nozioni e competenze relative alle tecnologie e tecniche HW e SW sviluppate per la soluzione delle principali problematiche insite nel processo di progetto, realizzazione ed utilizzo di un sistema operativo. Attraverso la attività pratiche in laboratorio lo studente acquisirà capacità nell'analizzare e risolvere i problemi tipici relativi alla gestione, sincronizzazione e comunicazione tra processi.

Programma

Generalità sui sistemi operativi. Processi e thread. Scheduling della CPU. Sincronizzazione dei processi. Blocco critico. Gestione della memoria centrale. Memoria virtuale. File system. Nozioni base sul sistema di I/O. La bash di Unix. Programmazione di sistema in C/UNIX: le system call e il loro impiego.

Al fine di comprendere a pieno i contenuti del corso, lo studente deve aver acquisito conoscenza delle seguenti nozioni: Matematica discreta: nozioni di relazione, albero, grafo. Architettura degli elaboratori: funzioni logiche e loro rappresentazione; la rappresentazione dei numeri e aritmetica di macchina; architettura a livello del processore; indirizzamento ed esecuzione delle istruzioni; dispositivi di memoria. Programmazione: basi della programmazione in C; costrutti di controllo; headers e compilazione separata; strutture dati (array, struct, union) e allocazione dinamica della memoria; operazioni di I/O; funzioni e argomenti funzione.

Lezioni frontali in aula su tutti gli argomenti del corso. Lezioni teorico-pratiche in laboratorio sulla parte di programma indicata come "Laboratorio".

Lezioni teoriche: --------------------- Generalità sui sistemi operativi: Cosa è un Sistema Operativo. Organizzazione di un sistema di calcolo. Architettura degli elaboratori. Struttura del sistema operativo. Attività del sistema operativo. Gestione dei processi. Gestione della memoria. Gestione della memoria di massa. Protezione e sicurezza.. Struttura e Servizi dei Sistemi Operativi: Servizi di un sistema operativo. Interfaccia con l'utente del sistema operativo. Le system call. Categorie di system call. Programmi di sistema. Progettazione e realizzazione di un sistema operativo. Struttura del sistema operativo. Macchine virtuali. Generazione di sistemi operativi. Avvio del sistema. Processi: Concetto di processo. Stato di un processo. Il PCB. Code di processi. Scheduling dei processi. Short/mid/long term scheduler. Il caso di UNIX. Operazioni sui processi. Il meccanismo exit/wait in UNIX. Cooperazione tra processi. Comunicazione tra processi. Memoria condivisa. Scambio messaggi. Comunicazione diretta/indiretta e sincrona/asincrona. Comunicazione nei sistemi client-server. I thread: motivazioni, vantaggi e svantaggi. Modelli di programmazione multithread. Scheduling della CPU: Concetti fontamentali sullo scheduling. Ciclicità delle fasi di elaborazione: CPU-burst e I/O-burst. Scheduler e dispatcher. Criteri e obiettivi di scheduling. Scheduling con o senza prelazione. Algoritmi di scheduling. Algoritmo FCFS. Algoritmo SJF. Algoritmo SRTF. Stima delle durate dei CPU-burst. Algoritmo HRRF. Uso di priorità. Tecnica di aging. Round robin (RR). Scheduling con code multiple e con retroazione. Comparazione vantaggi e svantaggi dei vari algoritmi. Cenni allo scheduling in UNIX e Linux. Scheduling di thread. Sincronizzazione: Introduzione. Concorrenza e problematiche connesse. Nozioni di sezione critica, race condition, mutua esclusione, deadlock, starvation. Esempio: produttore/consumatore con buffer limitato. Problema della sezione critica e sua soluzione. Semplici tentativi di soluzione e soluzione di Peterson. Hardware per la sincronizzazione. I semafori (Semafori Mutex e gestione della sezione critica. Semafori di sincronizzazione. Spin-lock. Semafori senza busy-waiting.) Problemi: deadlock e starvation. Problemi tipici di sincronizzazione: Produttori e consumatori con buffer limitato; Lettori e scrittori (con priorità a lettori o a scrittori); I cinque filosofi. Soluzioni di questi problemi tramite l'uso dei semafori. Soluzioni che evitano deadlock e starvation. Motivazioni per l'introduzione dei monitor. Il costrutto di monitor. Soluzione di problemi tipici di sincronizzazione con l'uso di monitor. Deadlock: Introduzione: Il problema del deadlock. Modello del sistema. Caratterizzazione delle situazioni di stallo. Metodi per la gestione del deadlock. Algoritmo "dello struzzo". Deadlock prevention. Deadlock avoidance. Deadlock detection&recovery. Approccio combinato. Esercizi ed esempi. Gestione della Memoria Principale: Nozioni generali. Spazio degli indirizzi. Binding. Collegamento statico e dinamico. Caricamento statico e dinamico. Swapping. Rilocazione. Tecniche di allocazione contigua della memoria. Problema della frammentazione. Il "buddy system". Paginazione. Tecniche di implementazione per la tabella delle pagine. Condivisione di pagine. Segmentazione. Confronto tra paginazione e segmentazione. Segmentazione paginata. Cenni al caso di Linux/Pentium. Memoria Virtuale: Concetti generali e motivazioni. Paginazione su richiesta. Sostituzione delle pagine. Anomalia di Belady. Allocazione dei frame. Paginazione degenere. Working-set e page-fault frequency. Cenni al File System: Concetto di file e sue caratteristiche. Directory. Strutturazione e realizzazione del file system, Metodi di allocazione. Spazio libero. Laboratorio: ------------------- La bash di Unix: Concetti fondamentali: la shell, struttura del file system unix, i principali comandi. La shell e le modalità di esecuzione dei comandi (job control, redirezione, variabili di shell, espansioni dei comandi, ...). Scripting di shell. File di configurazione/inizializzazione. Programmazione di sistema in linguaggio C: Il comando make. Le system call di Unix, concetti introduttivi. I processi e la loro creazione. L'ambiente di un processo. Accesso a file e directory. Pipe. Memory-mapped I/O e gestione della memoria allocata ad un processo. Comunicazione e sincronizzazione tra processi (segnali; semafori; shared memory; code di messaggi; socket). I pthread.

Modalità d'esame

La prova d'esame prevede una parte scritta e una orale. La prova scritta, della durata indicativa di 90 minuti, comprende domande a risposta multipla, domande con risposta aperta, e svolgimento di esercizi. Scopo della prova è verificare l'acquisizione di competenze ed evidenziare le capacità risolutive di problemi pratico-teorici inerenti argomenti compresi nel programma svolto. La prova orale consiste in un colloquio, della durata massima indicativa di 1 ora, e mira a verificare le competenze e le capacità acquisite dal candidato ed al contempo la sua abiliità nell'applicare in modo adeguato le tecniche risolutive nel affrontare e risolvere problemi pratici. Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa

Testi di riferimento

Operating Systems. Internals and design Principles. W.Stallings. Quinta edizione (anche in italiano). 2005. Sistemi Operativi. A.Silberschatz, P.Galvin, G.Gagne. Nona edizione, Wiley (Also in English: Operating system concepts, A.Silberschatz, P.Galvin, G.Gagne. 9th edition. Wiley.) Manuale on-line del sistema operativo unix/linux (man). Unix for Programmers and Users. Graham Glass e King Ables, terza edizione, Pearson-PrenticeHall, 2003. Unix systems programming. K.A.Robbins e S.Robbins, PrenticeHall, 2003. System programming with C and UNIX. A. Hoover, Pearson, 2010. J.G.Brookshear e S.G.Kochan. Fondamenti di informatica e programmazione in C. Pearson, 2014.

Codice insegnamento P156914261

STATISTICAL METHODS FOR DATA SCIENCE 2° anno · 0 file
ARCHITETTURA RETI 3° anno · 0 file
BASI DI DATI E SISTEMI INFORMATIVI CON LABORATORIO 3° anno · 1° semestre · 9 CFU · INFO-01/A · 0 file
HUMAN-COMPUTER INTERACTION 3° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file
INGEGNERIA DEL SOFTWARE 3° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file
INTRODUZIONE ALL'INTELLIGENZA ARTIFICIALE 3° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file
INTRODUZIONE ALLA SICUREZZA INFORMATICA 3° anno · 1° semestre · 6 CFU · INFO-01/A · 0 file
PROGRAMMAZIONE WEB E MOBILE CON LAB. 3° anno · 2° semestre · 6 CFU · INFO-01/A · 1 file
SISTEMI DI REALTA VIRTUALE 3° anno · 2° semestre · 6 CFU · IINF-05/A · 0 file
SISTEMI DISTRIBUITI E PARALLELI 3° anno · 0 file
Tecniche Di Acquisizione Dati 1 3° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

Recensioni del corso

Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.

★

Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.