Corso di laurea
ingegneria informatica
Università degli studi di Pisa · 30 materie · 10 file condivisi
Per questo corso di laurea sono già disponibili 10 appunti all'interno della community, registrati subito per iniziare a studiare!
Il Corso di Laurea in Ingegneria Informatica si propone di formare laureati dotati di una preparazione culturale di base, di conoscenze ingegneristiche intersettoriali, di approfondite competenze informatiche, capaci di realizzare, configurare e gestire elaboratori e reti di elaboratori, applicazioni software, sistemi di automazione industriale, sistemi informativi aziendali, servizi di calcolo e di rete, sistemi integrati di acquisizione, elaborazione e controllo. Alla fine del percorso formativo il laureato è anzitutto un ingegnere, oltre che un buon informatico.
Il laureato in Ingegneria Informatica può accedere alle Lauree Magistrali, in particolare a quelle dei settori informatico o automatico, in base alle regole stabilite dai vari corsi di studio. Il laureato in Ingegneria Informatica ha comunque la preparazione culturale, le conoscenze tecniche e le competenze specifiche che gli consentono di inserirsi agevolmente nel contesto produttivo, recependo in modo continuativo le innovazioni del settore informatico e dei settori affini alla sua attività.
Ciascuno dei tre anni in cui è articolato il Corso di Laurea è suddiviso in due semestri, ognuno dei quali comprende due periodi disgiunti, uno di lezione ed uno di esami. Il Corso di Laurea prevede venti attività obbligatorie (oltre alla prova di lingua inglese), attività a scelta dello studente e la prova finale. Le attività formative obbligatorie consistono in insegnamenti che al primo anno forniscono una preparazione metodologico-scientifica di base e al secondo e al terzo anno danno una formazione sia ingegneristico-intersettoriale che professionalizzante.
Al momento abbiamo 10 files caricati sul nostro portale suddivisi nelle 30 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
L’insegnamento introduce i principi fondamentali per l’analisi, la progettazione e l’implementazione di algoritmi e strutture dati. Consolida le competenze di programmazione acquisite nell’insegnamento di Fondamenti di…
Scheda dell'insegnamento
Obiettivi formativi
L’insegnamento introduce i principi fondamentali per l’analisi, la progettazione e l’implementazione di algoritmi e strutture dati. Consolida le competenze di programmazione acquisite nell’insegnamento di Fondamenti di Programmazione e fornisce le basi metodologiche per affrontare insegnamenti successivi dell’area informatica e attività professionali che richiedano la progettazione, l’analisi e l’implementazione di soluzioni software. Al termine dell’insegnamento, lo studente conoscerà e comprenderà i seguenti blocchi tematici: 1. Analisi degli algoritmi nozione e proprietà di un algoritmo; correttezza degli algoritmi; complessità computazionale; notazioni asintotiche O-grande, Omega-grande e Theta-grande; analisi della complessità di programmi iterativi e ricorsivi; relazioni di ricorrenza. 2. Strutture dati fondamentali array e liste; alberi binari e alberi generici; alberi binari di ricerca; heap e code con priorità; tabelle hash; grafi orientati e non orientati e relative rappresentazioni. 3. Algoritmi fondamentali algoritmi di ricerca; algoritmi di ordinamento; algoritmi di visita di alberi e grafi; algoritmi per il calcolo di alberi ricoprenti minimi; algoritmi per il calcolo dei cammini minimi. 4. Tecniche di progettazione degli algoritmi divide et impera; programmazione dinamica; algoritmi greedy. 5. Limiti della computazione limiti inferiori alla complessità dei problemi; alberi di decisione; problemi trattabili e intrattabili; classi P e NP; riducibilità polinomiale; NP-completezza. 6. Programmazione avanzata in C++ funzioni modello; classi modello; ereditarietà semplice; gestione delle eccezioni. La programmazione avanzata in C++ costituisce un obiettivo formativo autonomo dell’insegnamento, oltre a fornire strumenti per l’implementazione delle strutture dati e degli algoritmi trattati.
Programma
1. Introduzione agli algoritmi e analisi della complessità
- Nozione di algoritmo.
- Correttezza degli algoritmi.
- Complessità computazionale.
- Notazioni asintotiche O-grande, Omega-grande e Theta-grande.
- Complessità di programmi iterativi.
- Principi e metodi della programmazione ricorsiva.
- Complessità di programmi ricorsivi.
- Relazioni di ricorrenza.
2. Strutture lineari, ricerca e ordinamento
- Array e liste.
- Ricerca lineare.
- Ricerca binaria.
- Selection sort.
- Bubble sort.
- Quicksort.
- Merge sort.
- Heapsort.
- Counting sort.
- Radix sort.
- Confronto tra algoritmi di ordinamento.
- Limiti inferiori per gli algoritmi di ordinamento basati su confronti.
- Alberi di decisione.
3. Alberi
- Definizione e rappresentazione degli alberi.
- Alberi binari.
- Alberi generici.
- Visite di alberi.
- Progettazione e implementazione di algoritmi su alberi.
- Alberi binari di ricerca.
- Operazioni di ricerca, inserimento e cancellazione.
4. Heap e tabelle hash
- Struttura dati heap.
- Operazioni fondamentali sugli heap.
- Code con priorità.
- Impiego degli heap nell’ordinamento.
- Tabelle hash.
- Funzioni hash.
- Gestione delle collisioni.
- Analisi delle operazioni di ricerca, inserimento e cancellazione.
5. Tecniche di progettazione degli algoritmi
- Divide et impera.
- Programmazione dinamica.
- Algoritmi greedy.
- Problema della più lunga sottosequenza comune.
- Algoritmo di Huffman per la codifica e la compressione dei dati.
6. Grafi
- Grafi orientati e non orientati.
- Rappresentazione dei grafi.
- Visita in profondità.
- Algoritmo di Kruskal per il calcolo di un albero ricoprente minimo.
- Algoritmo di Dijkstra per il calcolo dei cammini minimi da una sorgente.
7. Cenni alla NP-completezza
- Problemi trattabili e intrattabili.
- Classi di complessità P e NP.
- Riducibilità polinomiale tra problemi.
- Problemi NP-completi.
- Significato e implicazioni della NP-completezza.
8. Programmazione avanzata in C++
- Funzioni modello.
- Classi modello.
- Ereditarietà semplice.
- Gestione delle eccezioni.
Prerequisito obbligatorio per sostenere l’esame è il superamento dell’insegnamento di Fondamenti di Programmazione. La propedeuticità è formale e vincolante.
Per seguire proficuamente l’insegnamento, lo studente deve conoscere:
- tipi di dato fondamentali;
- strutture di controllo;
- funzioni e passaggio dei parametri;
- array e stringhe;
- puntatori e riferimenti;
- allocazione dinamica della memoria;
- principi di base relativi a classi e oggetti;
- compilazione, esecuzione e debugging di programmi in C++.
Non sono richieste conoscenze preliminari di programmazione ricorsiva o della Standard Template Library, STL.
Sono sufficienti le conoscenze matematiche richieste per l’assolvimento degli Obblighi Formativi Aggiuntivi, OFA. È consigliata la conoscenza degli elementi di analisi matematica acquisiti durante il primo semestre, in particolare per la comprensione delle funzioni utilizzate nell’analisi asintotica della complessità.
Al termine dell’insegnamento, lo studente avrà sviluppato un approccio sistematico e critico alla soluzione di problemi algoritmici e alla valutazione delle relative implementazioni.
In particolare, avrà sviluppato:
- autonomia nel valutare l’efficienza e l’adeguatezza di differenti soluzioni algoritmiche;
- capacità di formulare giudizi motivati sulla scelta di algoritmi, strutture dati e tecniche di progettazione;
- attenzione alla correttezza, all’efficienza e alla robustezza delle soluzioni software;
- capacità di affrontare problemi algoritmici non identici a quelli già esaminati;
- capacità di utilizzare una terminologia tecnica appropriata per descrivere strutture dati, algoritmi e programmi;
- capacità di comunicare e motivare le scelte progettuali e implementative adottate;
- capacità di approfondire autonomamente algoritmi, strutture dati e funzionalità del linguaggio C++ non trattati esplicitamente durante il corso.
Le attività didattiche e le prove di verifica sono svolte individualmente.
Modalità d'esame
Durante il corso, l’acquisizione delle capacità viene favorita e verificata in modo formativo attraverso:
- esercizi individuali di analisi e progettazione di algoritmi;
- attività pratiche individuali al calcolatore;
- discussione in aula delle possibili soluzioni;
- esercizi corredati da soluzione;
- simulazioni e prove di autovalutazione;
- analisi di testi di esame degli anni precedenti.
Queste attività non concorrono direttamente alla determinazione del voto finale.
La verifica sommativa delle capacità avviene principalmente mediante la prova scritta individuale di programmazione. Lo studente deve progettare e implementare in C++ la soluzione di un problema, scegliendo le strutture dati e le tecniche algoritmiche appropriate. La prova verifica la capacità di trasformare le conoscenze acquisite in una soluzione corretta, completa, efficiente e robusta.
La prova è valutata considerando:
- correttezza algoritmica della soluzione;
- completezza rispetto alle specifiche;
- correttezza dell’output;
- adeguatezza delle strutture dati utilizzate;
- complessità computazionale;
- qualità e leggibilità del codice;
- corretta gestione dei casi limite;
- capacità di spiegare e, se richiesto, modificare la soluzione proposta.
La capacità di analizzare criticamente la soluzione e motivare le scelte effettuate viene ulteriormente verificata durante il colloquio orale conclusivo.
L’esame è individuale ed è costituito da tre momenti: test a risposta multipla; prova scritta di programmazione al calcolatore; breve colloquio orale. Il test e la prova scritta sono obbligatori e devono essere sostenuti nello stesso appello. Il superamento del test è condizione necessaria per accedere alla prova scritta. Il mancato superamento della prova scritta annulla il risultato conseguito nel test. Test a risposta multipla Il test è composto da 15 domande relative all’intero programma dell’insegnamento e ha una durata di 20 minuti. Il punteggio viene attribuito secondo i seguenti criteri: 1 punto per ogni risposta corretta; 0 punti per ogni risposta errata; 0 punti per ogni risposta non fornita. Le risposte errate non comportano penalizzazioni. Per accedere alla prova scritta è necessario conseguire un punteggio superiore a 8/15. Il test verifica la conoscenza e la comprensione delle strutture dati, degli algoritmi, delle tecniche di progettazione, dei metodi di analisi della complessità e degli elementi avanzati del linguaggio C++ compresi nel programma. Prova scritta di programmazione La prova scritta ha generalmente una durata di due ore e consiste in un esercizio individuale di progettazione e implementazione di un algoritmo in C++. La prova si svolge di norma in laboratorio. Il docente può richiedere agli studenti di utilizzare il proprio computer portatile con l’ambiente di lavoro indicato per il corso. Durante la prova è consentita la consultazione di materiale cartaceo. Non è consentito accedere a materiale digitale, risorse online o Internet. Il codice deve essere consegnato tramite la piattaforma online indicata dal docente. La prova scritta viene valutata considerando: correttezza algoritmica; completezza rispetto alle specifiche; correttezza dell'output; adeguatezza delle strutture dati scelte; complessità computazionale; qualità e leggibilità del codice; corretta gestione dei casi limite; capacità di spiegare e modificare la soluzione. Il superamento della prova scritta è determinato da un giudizio complessivo di sufficienza e non è associato rigidamente a una specifica soglia numerica. Colloquio orale Il colloquio orale si svolge contestualmente alla discussione dell’elaborato prodotto nella prova scritta di programmazione al calcolatore e comprende: spiegazione della soluzione proposta; motivazione delle scelte algoritmiche e delle strutture dati utilizzate; eventuale modifica della soluzione; analisi della complessità computazionale; una breve domanda autonoma sugli argomenti del corso. Il colloquio verifica la padronanza dei concetti, la capacità di analizzare criticamente la soluzione e l’uso di una terminologia tecnica appropriata. Determinazione del voto finale Il test a risposta multipla e la prova scritta sono valutati su una scala di 15 punti e hanno uguale peso. La somma dei punteggi del test e della prova scritta costituisce la base della valutazione, che viene successivamente confermata o modificata sulla base del colloquio orale. Per superare l’esame con una valutazione pari almeno a 18/30, lo studente deve: superare il test a risposta multipla; ottenere un giudizio di sufficienza nella prova scritta; dimostrare nel colloquio di comprendere la soluzione proposta e i relativi elementi fondamentali di progettazione e analisi. Le valutazioni più elevate sono attribuite agli studenti che dimostrano: conoscenza completa degli argomenti; capacità di progettare soluzioni algoritmiche corrette ed efficienti; scelta appropriata delle strutture dati; capacità di analizzare la complessità computazionale; padronanza del linguaggio C++; capacità di motivare e modificare autonomamente la soluzione; uso preciso della terminologia tecnica. Per conseguire la valutazione di 30/30 e lode è necessario: ottenere 15/15 nel test a risposta multipla; presentare una prova scritta interamente corretta rispetto a correttezza algoritmica, completezza, complessità, scelta delle strutture dati, qualità del codice e gestione dei casi limite; dimostrare, durante il colloquio orale, una piena padronanza dei concetti del corso. La commissione d’esame è costituita secondo le disposizioni del Corso di Studio e dell’Ateneo ed è pubblicata attraverso i canali istituzionali previsti.Testi di riferimento
Il docente mette a disposizione sulla piattaforma Microsoft Teams:
- slide delle lezioni;
- appunti e dispense;
- dispensa De Francesco-Martini;
- materiale utilizzato durante le esercitazioni e le attività pratiche;
- esercizi corredati da soluzione;
- simulazioni e prove di autovalutazione;
- testi di precedenti prove d’esame.
Le slide e le dispense fornite dal docente coprono integralmente il programma dell’insegnamento e costituiscono il materiale principale per la preparazione dell’esame.
Testi consigliati per lo studio e l’approfondimento:
- Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, Algoritmi e strutture dati, seconda edizione.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduzione agli algoritmi e strutture dati, terza edizione.
I testi sono consigliati come supporto allo studio e come riferimento per eventuali approfondimenti. Non sostituiscono le indicazioni sul programma e sul materiale fornite dal docente attraverso il Team del corso.
Codice insegnamento P030285163
Al termine dell'insegnamento lo studente/la studentessa sara' in grado di fornire dimostrazioni corrette, usando la terminologia appropriata e citando i risultati fondamentali che vengono impiegati, usando il principio…
Scheda dell'insegnamento
Obiettivi formativi
Al termine dell'insegnamento lo studente/la studentessa sara' in grado di fornire dimostrazioni corrette, usando la terminologia appropriata e citando i risultati fondamentali che vengono impiegati, usando il principio di induzione, la dimostrazione per assurdo e mostrando padronanza nel determinare la valdita' dei risultati ottenuti.
Inoltre conoscerà e comprenderà:
- I concetti fondamentali del calcolo differenziale e integrale per funzioni reali di una variabile reale.
- La struttura rigorosa dell'insieme dei numeri reali e dei numeri complessi.
- Le nozioni di limite, continuità e regolarità per successioni, serie numeriche e di potenze.
- I teoremi fondamentali del calcolo differenziale e integrale e le relative dimostrazioni.
- I principi base per la risoluzione di equazioni differenziali ordinarie (ODE) del primo ordine e lineari di secondo ordine a coefficienti costanti.
Programma
Lo studente/la studentessa potrà acquisire:
- Rigore logico-formale nell'impostazione e nella dimostrazione di enunciati matematici.
- Capacità di modellizzazione e di problem solving per la formalizzazione di problemi applicativi ingegneristici.
- Capacità di comunicazione chiara e accurata tramite l'uso del linguaggio simbolico e formale proprio della matematica.
Modalità d'esame
- In vista dell'esame durante le lezioni verranno risolti problemi proposti alla classe nei giorni precedenti, con possibilita' di discussione;
- A meta' e al fine corso ci saranno due prove di autovalutazione in classe (senza alcun valore per l'esame finale, che e' solo alla fine del corso).
Prova Scritta: Risoluzione articolata di problemi ed esercizi complessi relativi al programma svolto. Prova Orale: Discussione sulla risoluzione degli esercizi dello scritto e risoluzione estemporanea di problemi teorici o applicativi alla lavagna/foglio.
L'esame è volto a verificare il raggiungimento degli obiettivi formativi ed è articolato in una Prova Scritta e una Prova Orale.
Per presentarsi all'esame e' necessario avere colmato eventuali debiti formativo.
1) l'iscrizione alla prova scritta tramite il portale valutami e' obbligatoria (entro i termini stabiliti) per ogni prova scritta che si vuole sostenere.
2) La prova scritta e' una, ma divisa in due parti, (una a risposta multipla e una con esercizi da svolgere completamente) che si svolgono in successione e devono essere sostenute e superate nello stesso giorno. La prova scritta viene valutata in trentesimi.
3) La prova e' superata se il punteggio finale e' maggiore o uguale a 18/30
4) La prova orale e' obbligatoria solo per chi supera la prova scritta con punteggio strettamente maggiore di 26/30 e deve essere eventualmente sostenuta nella stessa sessione di esame.
La prova orale consiste in un colloquio con la commissione sugli argomenti del programma (definizioni, semplici esercizi, teoremi e dimostrazioni) e sulla discussione dello scritto.
5) Le intenzioni di sostenere o meno la prova orale vanno comunicate inderogabilmente alla ri-consegna della prova scritta corretta, che avviene nel giorno e ora di inizio ufficiale delle prove orali del relativo appello.
Testi di riferimento
Testo consigliato: C. Pagani, S. Salsa, Analisi Matematica 1, Zanichelli. Raccolte di esercizi: S. Salsa, A. Squellati, Esercizi di Analisi Matematica 1, Zanichelli. Ulteriori indicazioni bibliografiche, che possono variare di anno in anno, verranno date durante le lezioni. Per alcuni argomenti del programma sono disponibili note sulla pagina web del docente
Codice insegnamento P969681820
Acquisizione dei concetti di base dell'algebra lineare: spazi vettoriali, basi, dimensione, applicazioni lineari e matrici, diagonalizzazione, applicazioni bilineari, basi ortogonali, segnatura di un prodotto scalare,…
Scheda dell'insegnamento
Obiettivi formativi
Acquisizione dei concetti di base dell'algebra lineare: spazi vettoriali, basi, dimensione, applicazioni lineari e matrici, diagonalizzazione, applicazioni bilineari, basi ortogonali, segnatura di un prodotto scalare, teorema spettrale.
Programma
Elementi di algebra. Polinomi. Numeri complessi.
Spazi vettoriali. Definizione ed esempi. Gli spazi R^n e C^n. Dipendenza lineare, generatori e basi. Coordinate. Dimensione. Sottospazi vettoriali. Somma, intersezione, formula di Grassmann, somma diretta.
Applicazioni lineari e matrici. Definizioni ed esempi. Nucleo e immagine. Rango. Algebra delle matrici. Applicazione lineare associata ad una matrice. Matrice associata ad un'applicazione lineare. Cambio di base.
Determinante. Definizione e proprietà caratterizzanti. Sviluppo di Laplace. Teorema di Binet e matrice inversa.
Sistemi lineari e sottospazi affini. Metodo di Gauss. Sistemi omogenei. Teorema di Rouché-Capelli. Equazioni parametriche e cartesiane di un sottospazio affine. Rette e piani nello spazio.
Autovalori ed autovettori. Sottospazi invarianti, autovalori, autovettori ed autospazi. Polinomio caratteristico. Esistenza di basi di autovettori e diagonalizzabilità.
Spazi euclidei. Forme bilineari. Prodotti scalari. Segnatura. Norma, ortogonalità. Basi ortonormali. Procedimento di ortonormalizzazione di Gram-Schmidt. Prodotto scalare canonico in R^n. Trasformazioni ortogonali. Trasformazioni autoaggiunte. Teorema spettrale.
- numeri interi, razionali e reali,
- geometria euclidea del piano,
- trigonometria piana,
- polinomi: definizione, divisione, radici
- linguaggio della teoria elementare degli insiemi,
- familiarità con il concetto di dimostrazione.
Modalità d'esame
Esame scritto e orale.
Esame scritto e orale.Testi di riferimento
Bruno Martelli, "Geometria e algebra lineare".
Rita Fioresi, Marta Morigi, "Introduzione all'algebra lineare".
Supporti aggiuntivi dalla pagina web del corso.
Codice insegnamento 64676
Al termine dell'insegnamento, lo studente avrà acquisito conoscenze e capacità di comprensione dei principi, dei modelli e delle tecniche fondamentali alla base dei sistemi di basi di dati relazionali. In particolare, il…
Scheda dell'insegnamento
Obiettivi formativi
Al termine dell'insegnamento, lo studente avrà acquisito conoscenze e capacità di comprensione dei principi, dei modelli e delle tecniche fondamentali alla base dei sistemi di basi di dati relazionali. In particolare, il corso copre i seguenti blocchi tematici: # Sistemi di basi di dati e fondamenti del modello relazionale - dati, informazione, basi di dati e sistemi di gestione di basi di dati (DBMS); - proprietà e funzioni di un DBMS; - modello relazionale, relazioni, attributi, chiavi e vincoli di integrità; - algebra relazionale e suoi principali operatori. # Progettazione di basi di dati - analisi dei requisiti; - progettazione concettuale mediante il modello Entity-Relationship; - costrutti E-R di base e avanzati; - progettazione logica e traduzione dallo schema concettuale allo schema relazionale; - ristrutturazione degli schemi concettuali. # Teoria delle basi di dati e normalizzazione - dipendenze funzionali; - chiavi e chiusura degli attributi; - forme normali; - Terza Forma Normale e Forma Normale di Boyce-Codd; - decomposizione e qualità degli schemi relazionali. # SQL e programmazione delle basi di dati - interrogazione dei dati mediante SQL; - join, aggregazione e raggruppamento; - sottointerrogazioni annidate e correlate; - condizioni esistenziali e universali; - stored procedure e SQL procedurale; - cursori; - trigger ed eventi pianificati; - viste materializzate; - funzioni analitiche/window. # Gestione e implementazione delle basi di dati - principi di base dell'elaborazione e ottimizzazione delle interrogazioni; - transazioni e gestione della concorrenza; - principi di base dell'affidabilità e dell'implementazione dei DBMS.
Programma
# 1. Introduzione ai sistemi di basi di dati - dati e informazione; - basi di dati e DBMS; - proprietà e servizi dei sistemi di gestione di basi di dati; - transazioni e architettura di base di un DBMS. # 2. Modello relazionale e algebra relazionale - relazioni, schemi, tuple e attributi; - chiavi e vincoli di integrità; - operatori insiemistici; - selezione, proiezione e ridenominazione; - prodotto cartesiano e join; - join esterni; - quantificazione e divisione; - espressioni relazionali equivalenti; - introduzione all'elaborazione e ottimizzazione delle interrogazioni. # 3. Progettazione concettuale - analisi dei requisiti; - modello Entity-Relationship; - entità, associazioni, attributi e cardinalità; - identificatori; - generalizzazioni; - attributi multivalore; - costrutti E-R avanzati; - metodologia di progettazione. # 4. Progettazione logica - ristrutturazione degli schemi E-R; - traduzione nel modello relazionale; - rappresentazione di associazioni e generalizzazioni; - chiavi esterne e integrità referenziale. # 5. SQL - istruzione SELECT; - condizioni e operatori logici; - stringhe e dati temporali; - gestione dei duplicati; - funzioni aggregate; - join; - operatori insiemistici; - query annidate; - sottointerrogazioni correlate e non correlate; - EXISTS e NOT EXISTS; - IN, ANY e ALL; - GROUP BY e HAVING; - formulazione di query SQL complesse. # 6. Dipendenze funzionali e normalizzazione - dipendenze funzionali; - chiusura degli attributi e chiavi; - forme normali; - Forma Normale di Boyce-Codd; - Terza Forma Normale; - decomposizione degli schemi. # 7. Programmazione delle basi di dati - stored procedure; - parametri e variabili; - istruzioni di controllo; - cicli; - cursori e handler; - trigger; - eventi pianificati. # 8. SQL avanzato e funzionalità dei DBMS - viste materializzate; - strategie di refresh; - funzioni analitiche/window; - partizioni; - funzioni di ranking; - LAG e LEAD. # 9. Transazioni e concorrenza - proprietà delle transazioni; - esecuzione concorrente; - anomalie; - serializzabilità; - principi di gestione della concorrenza.
Il superamento di "Fondamenti di Programmazione" costituisce una propedeuticità obbligatoria, secondo quanto previsto dal regolamento del Corso di Studio. Lo studente deve possedere familiarità con: - costrutti fondamentali della programmazione; - variabili, tipi di dato ed espressioni; - istruzioni condizionali e iterative; - funzioni e procedure; - strutture dati elementari; - espressioni booleane e logica proposizionale; - lettura, comprensione e scrittura di semplici programmi. Non è richiesta una conoscenza preliminare dei sistemi di basi di dati o del linguaggio SQL.
Il corso promuove: - accuratezza e precisione nella modellazione delle basi di dati e nella formulazione delle interrogazioni; - autonomia di giudizio nella scelta tra soluzioni alternative di progettazione e formulazione delle query; - verifica sistematica della correttezza di schemi, interrogazioni e programmi per basi di dati; - analisi critica degli errori e delle scelte progettuali inappropriate; - capacità di giustificare le proprie scelte tecniche utilizzando una terminologia appropriata; - capacità di confrontare soluzioni alternative discutendone vantaggi e limiti; - capacità di approfondire autonomamente argomenti relativi alle basi di dati attraverso la documentazione tecnica.
Modalità d'esame
Le capacità applicative sono sviluppate e verificate attraverso numerose esercitazioni guidate durante il corso. Gli studenti svolgono esercizi di progettazione di basi di dati, algebra relazionale, SQL, normalizzazione, programmazione lato DBMS e gestione della concorrenza, sia individualmente sia mediante attività supervisionate in aula. La valutazione finale comprende problemi pratici che richiedono allo studente di progettare una base di dati a partire da una specifica testuale e di risolvere problemi di programmazione e interrogazione della base di dati.
L'esame verifica sia le conoscenze teoriche sia la capacità di applicare le tecniche di progettazione e programmazione delle basi di dati. L'accesso all'esame richiede il superamento di un pretest a risposta multipla. Il pretest è superato rispondendo correttamente ad almeno il 60% delle domande. Il relativo punteggio non concorre alla determinazione del voto finale. Una volta superato, il pretest rimane valido per gli appelli successivi. L'esame comprende due parti: # Prova pratica Lo studente deve progettare una base di dati a partire da una specifica testuale, producendo i relativi schemi concettuale e relazionale, e risolvere un problema di programmazione o interrogazione della base di dati. # Prova teorica Lo studente risponde a domande aperte e svolge esercizi relativi agli argomenti teorici e metodologici trattati durante il corso. Gli elaborati prodotti vengono successivamente discussi individualmente con i docenti. Durante il colloquio può essere richiesto allo studente di spiegare il ragionamento seguito, giustificare le scelte progettuali, correggere eventuali errori o rispondere a domande integrative. La prova pratica e quella teorica sono valutate separatamente in trentesimi. Il voto finale è costituito dalla media aritmetica dei due voti.
Testi di riferimento
Testo principale: P. Atzeni et al., *Basi di Dati*, McGraw-Hill, VI edizione, 2023. Può essere utilizzata anche la V edizione (2018) per gli argomenti corrispondenti. Le slide delle lezioni, gli esercizi, gli esempi SQL e il materiale didattico integrativo fornito dai docenti costituiscono parte del materiale del corso e sono resi disponibili attraverso la piattaforma e-learning. La documentazione specifica relativa al DBMS e alle funzionalità SQL utilizzate nelle attività pratiche sarà indicata attraverso la piattaforma del corso.
Codice insegnamento P429774737
Lo studente che completerà il corso si impadronirà del metodo e dei concetti di base della meccanica e dell' elettromagnetismo.
Scheda dell'insegnamento
Obiettivi formativi
Lo studente che completerà il corso si impadronirà del metodo e dei concetti di base della meccanica e dell' elettromagnetismo.
Programma
Concetti fondamentali di meccanica ed elettromagnetismo.
Grandezze fisiche e unità di misura. Sistema Internazionale (SI). Potenze di dieci. Notazione scientifica e cifre significative. Dimensioni e analisi dimensionale. Cenni di struttura della materia. Valutazione attraverso ordini di grandezza. Calcolo dimensionale di relazioni elementari. Sistemi di riferimento. Sistemi inerziali e sistemi non inerziali. Sistemi di coordinate cartesiane e coordinate polari. Grandezze scalari e vettoriali e operazioni fra vettori. Rappresentazione cartesiana di vettori e versori.
Cinematica del punto materiale: traiettoria ed equazione oraria. Moto generico lungo una curva. Moto in una o più dimensioni. Equazione oraria del moto rettilineo. Velocità media e velocità istantanea. Traiettoria, velocità e accelerazione. Equazioni orarie del moto uniformemente accelerato. Moto rettilineo uniforme. Caduta libera di gravi. Accelerazione tangenziale e centripeta. Equazione oraria per moti in 2 e 3D. Moto circolare uniforme. Periodo, frequenza velocità angolare. Accelerazione tangenziale e centripeta nel moto circolare vario. Moti relativi. Sistemi di riferimento non-inerziali.
Principi di Newton. Esempi di forze. Forza gravitazionale e forza peso. Cadute di gravi e moti circolari. Reazioni vincolari. Forze elastiche e molle ideali. Diagramma delle forze. Tensione di un filo inestensibile. Forza di attrito statico e dinamico. Attrito viscoso. Equazione differenziale del moto in presenza di attrito viscoso. Caduta libera di gravi in aria.
Moti periodici e moti armonici. Dinamica del moto circolare. Forze tangenziali e forze centripete. Moto circolare uniforme trattato come combinazione di moti armonici su assi perpendicolari. Moti ellittici. Equazione differenziale dell' oscillatore armonico semplice. Massa oscillante attaccata a una molla. Equazione del moto del pendolo semplice per le piccole oscillazioni.
Lavoro di una forza. Integrale di linea e circuitazione. Caso particolare di forza costante. Lavoro di forza peso, forza elastica, forza gravitazionale. Energia cinetica. Teorema delle forze vive. Potenza sviluppata da una forza. Forze conservative, definizione e proprietà. Energia potenziale. Relazione fra energia potenziale e forza conservativa associata. Definizione di energia meccanica. Legge di conservazione dell'energia meccanica per forze conservative. Ricavare forza da energia potenziale.
Quantità di moto di un corpo e di un sistema di corpi. Forze interne ed esterne. Prima equazione cardinale della dinamica dei sistemi. Principio di conservazione della quantità di moto. Impulso di una forza. Forze impulsive. Centro di massa di un sistema di particelle. Proprietà del centro di massa e calcolo del centro di massa. Moto del centro di massa di un sistema. Velocità e accelerazione del centro di massa di un sistema.
Momento di una forza rispetto a un polo. Equazione della dinamica rotazionale. Momento della quantità di moto per un punto materiale e II equazione cardinale della dinamica. Componente assiale del momento angolare. Principio di conservazione del momento angolare.
Urti elastici e anelastici. Teoremi di Koenig. Prima e seconda equazione cardinale per un corpo rigido. Forze equivalenti. Centro di massa di un corpo rigido. Equilibrio di un corpo rigido. Momento d’inerzia. Teorema di Steiner. Esempi di calcolo di momenti d’inerzia. Lavoro potenza ed energia nel moto rotatorio. Lavoro meccanico ed energia cinetica nel moto rotatorio di corpi rigidi. Rotazione di corpi rigidi intorno ad assi fissi ed assi mobili. Pendolo fisico.
Moto di rotolamento e sue condizioni. Momento dell’impulso e momento di una forza: applicazioni al caso del moto di strisciamento e rotolamento; condizioni per il puro rotolamento. Urti elastici e anelastici tra corpi rigidi e tra corpi rigidi e punti materiali.
Carica elettrica e legge di conservazione. Carica del protone e dell' elettrone. Forza di Coulomb. Principio di sovrapposizione. Forza totale esercitata da un sistema di cariche puntiformi. Proprietà di simmetria del campo elettrostatico. Campo elettrico generato da distribuzioni continue di cariche: sbarretta, anello, disco, piastra indefinita, filo indefinito.
Flusso del vettore di campo elettrico attraverso una superficie. Teorema di Gauss. Differenza di potenziale e potenziale elettrico. Esempi di calcolo del potenziale per anello, disco, sbarretta, dipolo elettrico. Linee di campo e superfici equipotenziali. Energia di un sistema di cariche puntiformi.
Conduttori ed isolanti. Condensatori e capacità. Esempi di condensatori a lastre piane parallele, sferici, cilindrici. Condensatori in serie e in parallelo. Dielettrici e meccanismi di polarizzazione. Energia immagazzinata in condensatori. Rottura di dielettrici. Conduttori, flusso di cariche e densità di corrente. Resistività e legge di Ohm. Conduttori, isolanti, semiconduttori e superconduttori. Potenza elettrica ed effetto Joule. Resistenze in serie e in parallelo. Circuiti e leggi di Kirchoff. Carica e scarica di condensatori. Generalità sul campo magnetico. Forza di Lorentz. Forza indotta da un campo magnetico su fili percorsi da corrente. Corrente come sorgente di campo magnetico. Legge di Biot-Savart. Esempi di calcolo di campi magnetici a partire da fili percorsi da corrente. Filo indefinito. Calcolo del campo prodotto da una spira circolare. Momento di dipolo magnetico di una spira. Forza fra due conduttori percorsi da corrente. Legge di Ampere. Calcolo di campi magnetici mediante la legge di Ampere. Campo magnetico all' interno di un filo percorso da corrente. Campo prodotto da un toroide e da un solenoide. Concetto di flusso magnetico.
Legge di Faraday. Spire e sbarrette rotanti in campo magnetico. Legge di Lenz. Attrito elettromagnetico. Generatori e motori elettrici. Fenomeno dell' autoinduzione. Induttanza e calcolo dell' induttanza in un solenoide. Corrente di Ampere generalizzata e corrente di spostamento in un circuito oscillante LC. Circuiti RC, RL e LC. Carica e scarica di condensatori e induttanze. Legge di Ampere-Maxwell. Equazioni di Maxwell in formulazione integrale. Cenni sulle onde.
Conoscenze di base di trigonometria, algebra, analisi matematica.
È richiesta una partecipazione il più possibile attiva degli studenti durante le lezioni e le esercitazioni ed in particolare di:
- ripassare e verficare le proprie conoscenze relative ai prerequisiti del corso
- cercare di eseguire autonomamente gli esercizi proposti dal docente durante le esercitazioni in aula e successivamente a casa
- partecipare ed essere disponibili alle interazioni con il docente, soprattutto durante le esercitazioni.
Modalità d'esame
Prova scritta e colloquio orale.
L'esame si compone di una prova scritta ed una orale. La prova scritta ha la durata di 2.30 ore e consiste in esercizi di meccanica ed elettromagnetismo con domande di diverso livello di difficoltà. Per essere ammessi alla prova orale è richiesto un punteggio di almeno 18/30
In sede di esame orale è possibile, dopo una discussione sull’elaborato e a discrezione dello studente, convalidarne il voto, superando quindi l'esame con lo stesso voto conseguito nella prova scritta.
Tuttavia, nel caso in cui dalla discussione emergano macroscopiche difformità nella preparazione dello studente tra quanto evincibile dalla prova scritta e quanto risulta dalla discussione orale, l'esame non viene convalidato.
È data la possibilità, allo scopo di ottenere un voto più alto, di sostenere un orale tradizionale con esercizi e teoria sugli argomenti di meccanica ed
elettromagnetismo. In questo caso l’esito della prova orale tradizionale può essere migliorativo o peggiorativo rispetto alla valutazione ottenuta per la prova scritta.
Nella prova orale si potrà chiedere di:
- rispondere a domande di natura teorica sui vari argomenti del corso
- enunciare e spiegare argomenti trattati nelle lezioni ed esercitazioni
- discutere la prova scritta effettuata o altre prove scritte assegnate in precedenza;
- risolvere nuovi esercizi basati sugli argomenti del corso
Informazioni importanti:
- È obbligatorio iscriversi, via web, alle prove di esame scritte ed orali.
- La consegna di una prova scritta costituisce un'esplicita rinuncia della prove scritte precedenti, ma il numero di prove scritte che possono essere sostenute in un anno non è soggetto a limitazioni.
- Gli studenti con OFA (debiti formativi) hanno restrizioni sulla possibilità di sostenere gli esami.
- Durante gli scritti non è consentito consultare libri o quaderni ma solamente un formulario
- La prova orale deve essere effettuata nello stesso appello della prova scritta (necessariamente se si intende convalidare il voto dello scritto) oppure in uno degli appelli della stessa sessione. In caso di fallimento della prova orale la prova scritta deve essere ripetuta.
Testi di riferimento
R. Serway, Principi di Fisica (Volume Unico) Edises
oppure
R. Serway, Fisica per le Scienze e Ingegneria (Vol I e II) Edises
o altri volumi adatti indicati durante il corso.
Codice insegnamento P684333326
Dato un problema, lo studente deve essere in grado di progettare le strutture dati e l'algoritmo capace di risolverlo. Qualora per le soluzione del problema sia opportuno creare un nuovo tipo di dato astratto, lo…
Scheda dell'insegnamento
Obiettivi formativi
Dato un problema, lo studente deve essere in grado di progettare le strutture dati e l'algoritmo capace di risolverlo. Qualora per le soluzione del problema sia opportuno creare un nuovo tipo di dato astratto, lo studente deve essere in grado di progettare in maniera accurata e corretta la relativa classe, utilizzando il linguaggio di Programmazione C++.
Programma
Concetti di base della programmazione. Rappresentazione dell'informazione.
Programmare in C. Concetti di base della programmazione a oggetti.
Programmare in C++. Progettare ed implementare tipi di dato astratti.
Non richiesti.
N/A
Modalità d'esame
Lo studente dovrà dimostrare di aver acquisito i concetti base della programmazione strutturata e della programmazione mediante tipi di dato astratti.
L'esame consiste di una prova scritta a risposta chiusa (quiz), una prova pratica (al calcolatore) e una prova orale. Per accedere alla prova pratica occorre aver risposto correttamente ad almeno quattro delle sei domande della prova a quiz. Il quiz e la prova pratica si svolgono contestualmente, mentre la prova orale può essere sostenuta in un appello diverso. Per iscriversi alla prova orale occorre aver superato la prova pratica. Per partecipare ad una delle prove calendarizzate (prova pratica/prova orale), OCCORRE ISCRIVERSI CON ALMENO 4 GIORNI DI ANTICIPO. Sul calendario degli appelli troverete la data della prova pratica e non quella della prova scritta a risposta chiusa: è sottointeso che il giorno della prova pratica si inizia con la prova scritta a risposta chiusa. La prova scritta verrà corretta subito. Chi avrà raggiunto la sufficienza (almeno quattro risposte corrette su sei) potrà accedere alla prova pratica, come già detto sopra. IL NUMERO DI VOLTE IN CUI CI SI PUO' PRESENTARE ALLA PROVA PRATICA E' MINORE O UGUALE A QUATTRO. Pertanto, se lo studente fallisse per quattro volte (anche non di seguito) la sola prova scritta, non potrà più presentarsi all'esame in quell'anno accademico. Deve pertanto attendere la prima prova invernale dell'anno accademico successivo. Stessa cosa se lo studente fallisse per quattro volte l'appello orale.
Testi di riferimento
1) Andrea Domenici, Graziano Frosini, "Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++",
Milano: Franco Angeli (va bene dalla quinta edizione in poi)
2) Paolo Corsini e Graziano Frosini, "Note sull’organizzazione di un calcolatore e Rappresentazione dell’informazione", Edizioni ETS, Pisa, 2011
3) Slide del corso, in formato PDF, pubblicate sul sito del corso
Codice insegnamento P995961826
Al termine del corso lo studente conoscerà l'architettura AMD64 e comprenderà: 1. i principali meccanismi hardware per la gestione della memoria, dell'I/O, delle interruzioni, della protezione e della paginazione; 2.…
Scheda dell'insegnamento
Obiettivi formativi
Al termine del corso lo studente conoscerà l'architettura AMD64 e comprenderà: 1. i principali meccanismi hardware per la gestione della memoria, dell'I/O, delle interruzioni, della protezione e della paginazione; 2. il percorso che porta dal codice sorgente all'esecuzione di un sistema, inclusi assemblaggio, collegamento, formato ELF, caricamento e bootstrap; 3. come i meccanismi dell'architettura siano utilizzati per realizzare processi, sincronizzazione, memoria virtuale e gestione dell'I/O in un nucleo multiprogrammato.
Programma
1. Architettura di base e AMD64. Componenti hardware e software di un sistema di elaborazione; flusso di controllo; registri e istruzioni AMD64; indirizzi, offset, intervalli, allineamento e byte enable; memoria RAM e bus; convenzioni di chiamata, record di attivazione e programmazione mista C++/Assembly.
2. Strumenti di sviluppo e formato dei programmi. Compilazione e assemblaggio; codice macchina, simboli, sezioni e rilocazioni; file oggetto e formato ELF; archivi e librerie statiche; collegamento, linker script, caricamento e ispezione di eseguibili.
3. Bootstrap. Stato dell'architettura x86 al reset; firmware e boot loader; inizializzazione minima della macchina; preparazione delle strutture necessarie e passaggio all'esecuzione a 64 bit; caricamento e avvio dei moduli; realizzazione di un firmware didattico sostitutivo del BIOS di QEMU.
4. Memoria cache e periferiche. Località; cache ad accesso diretto e associativa ad insiemi; politiche write-through e write-back; interfacce programmate e memory-mapped; tastiera, video in modalità testo, timer e hard disk ATA.
5. Interruzioni e protezione. Interruzioni singole, vettorizzate, annidate e relative priorità; controllore APIC; eccezioni; IDT e gate; livelli di privilegio, pile utente e sistema, attraversamento dei gate e IRETQ.
6. Sistema multiprogrammato. Processi e contesto; stati di esecuzione, code, scheduling e preemption; salvataggio e ripristino dello stato; creazione e terminazione dei processi; primitive di sistema e atomicità; mutua esclusione, sincronizzazione, semafori e sospensione temporizzata.
7. Memoria virtuale. Motivazioni della paginazione; MMU AMD64 e tabelle a quattro livelli; TLB; rappresentazione delle tabelle tramite TRIE; iterazione, creazione e modifica delle traduzioni; gestione dei frame fisici e degli spazi di indirizzamento; memoria privata e condivisa.
8. I/O nel nucleo multiprogrammato. Bus PCI, spazio di configurazione e BAR; primitive di sistema e driver; modulo I/O, handler, processi esterni e attesa delle interruzioni; DMA, coerenza con cache e memoria virtuale, PCI bus mastering e trasferimenti con dispositivi ATA.
È prevista la propedeuticità formale dell'insegnamento di Reti Logiche. Sono inoltre richieste conoscenze di programmazione in C++, inclusi puntatori, array, strutture, classi e allocazione dinamica; conoscenze di base del linguaggio Assembly x86 a 32 bit, inclusi registri, indirizzamento, pila e chiamate di funzione; conoscenze di reti logiche e rappresentazione binaria ed esadecimale dell'informazione.
Lo studente svilupperà un approccio sistematico all'analisi dei malfunzionamenti, imparando a distinguere i sintomi dalle cause e a formulare e verificare ipotesi sulla base dello stato osservabile del sistema. Svilupperà inoltre autonomia nel consultare documentazione tecnica e nel valutare la correttezza di soluzioni che coinvolgono più livelli hardware e software.Modalità d'esame
Le esercitazioni in aula prevedono la traduzione e l'analisi di codice, l'uso degli strumenti di sviluppo e la modifica guidata del nucleo didattico; hanno funzione formativa e non concorrono al voto finale. Le capacità saranno valutate nella prova pratica al calcolatore, nella quale lo studente dovrà produrre codice funzionante e coerente con i meccanismi studiati.
L'esame è composto da una prova pratica individuale al calcolatore e da una prova orale. La prova pratica dura 2 ore e 30 minuti e comprende due esercizi di programmazione: un esercizio di programmazione mista C++/Assembly, valutato fino a 5 punti, e un esercizio di modifica del nucleo didattico per aggiungere primitive e/o driver, valutato fino a 25 punti. La prova pratica non è superata se lo studente non realizza, nel tempo assegnato, una parte funzionalmente sufficiente del secondo esercizio o se commette errori che rivelano una comprensione gravemente inadeguata dei meccanismi fondamentali dell'architettura. La prova è considerata buona se lo studente ha individuato una soluzione architetturale coerente, anche se non funzionante in qualche caso o per qualche dettaglio. Per accedere alla prova orale è necessario ottenere almeno 15/30 nella prova pratica. La prova orale, normalmente della durata di circa 20 minuti, comprende una o due domande sugli argomenti del corso. Valuta la conoscenza dei meccanismi fondamentali e la capacità di collegare architettura, firmware e software di sistema. La prova orale non è superata in presenza di una conoscenza inadeguata di interruzioni, protezione o paginazione, o di gravi fraintendimenti sul funzionamento del sistema. La prova è considerata buona se lo studente è in grado di rispondere correttamente alle domande secondarie che nascono durante la sua risposta alla domanda principale. La prova è considerata eccellente se lo studente è in grado di ragionare autonomamente e correttamente su problemi non discussi a lezione. La prova pratica deve precedere la prova orale e viene conservata per tre appelli. Il voto finale è espresso in trentesimi ed è una media del voto della prova pratica e della prova orale. L'esame è superato se il voto complessivo è sufficiente e se il voto della prova orale, preso da solo, è anch'esso sufficiente.
Commissione d'esame: Titolare del corso, cultore della materia.
Testi di riferimento
Il materiale necessario per la preparazione dell'esame è costituito dalle dispense, dalla documentazione e dal codice di esempio forniti dal docente e pubblicati sul sito del corso. Sono inoltre disponibili i testi delle prove d'esame precedenti e registrazioni di lezioni di anni passati; le registrazioni hanno funzione integrativa e non sostituiscono il programma corrente.
Per consultazione e approfondimento facoltativo sono indicati sul sito del corso il System V AMD64 ABI, la specifica ELF e la documentazione tecnica Intel e AMD.
Codice insegnamento P117753978
L'insegnamento ha l'obiettivo di fornire le conoscenze di base del Calcolo Numerico per la risoluzione di sistemi lineari, equazioni e sistemi non lineari, calcolo di auvalori ed autovettori, l'approssimazione di…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento ha l'obiettivo di fornire le conoscenze di base del Calcolo Numerico per la risoluzione di sistemi lineari, equazioni e sistemi non lineari, calcolo di auvalori ed autovettori, l'approssimazione di funzioni ed il calcolo di integrali definiti.
Programma
ANALISI DELL’ERRORE. Rappresentazione in base dei numeri reali. Numeri di macchina. Troncamento e Arrotondamento. Errori di rappresentazione. Operazioni con i numeri di macchina. Cancellazione numerica. Condizionamento di un problema. Stabilità di un algoritmo.
RICHIAMI di ALGEBRA LINEARE. Autovalori ed autovettori. Trasformazione di matrici per similitudine. Localizzazione degli autovalori: teoremi di Gerschgorin. Norme di vettori e di matrici.
SISTEMI LINEARI. Condizionamento del problema. Metodi diretti: metodo di Gauss; strategia del pivoting; fattorizzazioni LU e QR. Metodi iterativi: costruzione dei metodi; condizioni di convergenza; criteri di arresto. Metodi iterativi classici: Jacobi e Gauss-Seidel.
EQUAZIONI NON LINEARI. Convergenza e ordine di convergenza di una successione. Metodo di bisezione. Metodo delle secanti. Metodo di Newton. Metodi iterativi stazionari ad un punto: teorema di convergenza locale; ordine di convergenza. Criteri di arresto.
AUTOVALORI. Metodo delle potenze. Matrici di Hessenberg ed il metodo QR per il calcolo di autovalori.
INTERPOLAZIONE ED APPROSSIMAZIONE. Interpolazione polinomiale: esistenza ed unicità del polinomio interpolante. Formula di Lagrange. Differenze divise e polinomio interpolante nella base di Newton. Errore nella interpolazione polinomiale. Interpolazione di Hermite. Errore nella interpolazione di Hermite. Interpolazione mediante funzioni spline. Metodo dei minimi quadrati nel discreto.
INTEGRAZIONE NUMERICA. Formule di quadratura di tipo interpolatorio. Errore e grado di precisione. Formule di Newton-Cotes. Formule gaussiane.
Conoscenza degli strumenti forniti nei corsi di Algebra Lineare, Analisi Matematica I e Analisi Matematica II.
L'insegnamento ha l'obiettivo di sensibilizzare gli studenti sulla necessità di un approccio matematicamente rigoroso nell'utilizzo degli algoritmi numerici.
Modalità d'esame
La verifica delle capacità è effettuata tramite confronto e discussione durante le lezioni e, dopo la prova scritta, si conclude durante la prova orale.
Prova scritta e successiva prova orale.
Testi di riferimento
- Dispense del corso
- Bini-Capovani-Menchi: Metodi Numerici per l'Algebra Lineare, Zanichelli, Bologna, 1988
- Bevilacqua-Bini-Capovani-Menchi: Metodi Numerici, Zanichelli, Bologna, 1992
Codice insegnamento P471634449
Coerentemente con i Descrittori di Dublino per i Corsi di Laurea di Primo Ciclo (Triennali) e con la SUA-CdS di Ingegneria Informatica, al termine dell'insegnamento lo/la studente/ssa avrà acquisito conoscenze e capacità…
Scheda dell'insegnamento
Obiettivi formativi
Coerentemente con i Descrittori di Dublino per i Corsi di Laurea di Primo Ciclo (Triennali) e con la SUA-CdS di Ingegneria Informatica, al termine dell'insegnamento lo/la studente/ssa avrà acquisito conoscenze e capacità di comprensione relative ai seguenti Blocchi Tematici:
- Blocco Tematico 1 — Impresa, Decisioni e Teoria dei Sistemi: Concetto di impresa come sistema complesso adattivo; principio di scarsità delle risorse, creazione di valore, trade-off economico-tecnologici, costo opportunità e bias cognitivi nei processi decisionali (Status Quo, Sunk Cost Fallacy, Confirmation Bias).
- Blocco Tematico 2 — Forme Giuridiche, Capitale e Governance: Differenza tra impresa e azienda (Art. 2082 e 2555 c.c.); tipologie societarie (S.n.c., S.r.l., S.p.A.) e grado di autonomia patrimoniale; Società Benefit; struttura degli organi di governance nelle S.p.A., problema di agenzia, ruolo degli amministratori indipendenti e diritti spettanti ai soci/azionisti.
- Blocco Tematico 3 — Il Bilancio d'Esercizio: Struttura e logica dello Stato Patrimoniale e del Conto Economico; principio di competenza economico-temporale vs. logica di cassa; dinamica degli ammortamenti, determinazione del reddito d'esercizio e del capitale di funzionamento secondo i principi contabili.
- Blocco Tematico 4 — Analisi di Bilancio e Indici di Performance: Tecniche di riclassificazione dei prospetti contabili; calcolo e interpretazione degli indici di redditività (ROE, ROI, ROS), di solidità patrimoniale e di liquidità; analisi delle leve (operativa e finanziaria).
- Blocco Tematico 5 — Modelli di Business, Costi e Decisioni Operative: Progettazione dell'architettura di valore mediante Business Model Canvas; classificazione dei costi (fissi/variabili, diretti/indiretti, di prodotto/di periodo); allocazione dei costi tramite Activity-Based Costing (ABC) e metodi tradizionali; Break-Even Analysis (margine di contribuzione e punto di pareggio) e logiche di pricing.
Programma
Attraverso le metodologie didattiche adottate, lo/la studente/ssa potrà sviluppare e affinare le seguenti competenze trasversali (Soft Skills):
- Autonomia di giudizio: Capacità di analizzare criticamente le decisioni strategiche e i dati economico-finanziari di un'azienda, riconoscendo ed evitando i bias cognitivi nei processi decisionali.
- Comunicazione e rigore terminologico: Capacità di esprimere problemi economico-gestionali e soluzioni tecniche utilizzando un linguaggio aziendale appropriato ed efficace sia verso interlocutori tecnici sia verso il management.
- Capacità di apprendimento e sintesi: Capacità di astrarre e modellare situazioni aziendali complesse a partire da dati quantitativi e qualitativi limitati.
Modalità d'esame
- Verifica supervisionata (Formativa): Svolgimento in aula di esercitazioni numeriche e problemi pratici guidati dal docente mediante l'uso di tablet PC condiviso in tempo reale.
- Verifica finale (Sommativa): Inserimento nel test digitalizzato di quesiti numerico-applicativi sull'intero programma ed eventuale discussione di problemi operativi durante la prova orale opzionale.
Coerentemente con quanto previsto dal Paragrafo B.8 delle Linee Guida 2027, le modalità d'esame sono descritte nei dettagli di seguito:
a) Struttura e svolgimento delle prove
L'esame (Regime EOA 2026/2027) si compone di:
- Test Valutativo Scritto Digitalizzato (Obbligatorio): Da svolgersi in presenza su piattaforma informatica di Ateneo. Il test ha una durata commisurata al numero dei quesiti (variabile tra 25 e 40) e verte sull'intero programma del corso. Include:
- Quesiti a risposta chiusa/multipla (scelta singola/multipla, vero/falso) per la verifica delle conoscenze teoriche su tutto il programma.
- Quesiti numerico-applicativi semi-strutturati per la verifica delle capacita di calcolo (es. riclassificazione bilancio, indici ROE/ROI, calcolo BEP, allocazione ABC, calcolo VAN).
- Prova Orale Opzionale: Gli studenti che hanno superato il test scritto digitalizzato possono sostenere un colloquio orale facoltativo nello stesso appello. La prova orale dura mediamente 25 minuti e consiste in una discussione approfondita su concetti, problemi ed esercizi del programma.
N.B. Per gli studenti appartenenti a coorti precedenti (2024 e 2025) che optano per i programmi di tali anni, rimangono in vigore le modalità specifiche previste in quelle edizioni (Test Valutativo + Project Work di gruppo). Gli esiti parziali devono essere verbalizzati entro un anno solare dal superamento, pena la decadenza della prova.
b) Regole di formulazione del voto finale
- La valutazione finale è espressa in trentesimi (18/30 - 30/30 con eventuale lode).
- Per chi non sostiene la prova orale, il voto finale è determinato dal punteggio conseguito nel test scritto digitalizzato.
- Per chi sostiene la prova orale opzionale, il voto finale modula l'esito del test digitalizzato in base alla qualità della prestazione resa nel colloquio. La mancata accettazione del voto o il mancato superamento dell'orale comporta il rifacimento dell'intero test scritto in un appello successivo.
c) Tassonomia della valutazione (Criterî di attribuzione del voto)
- 18/30 – 21/30 (Sufficiente): Raggiungimento delle conoscenze essenziali sui concetti di bilancio, forme societarie e costi; dimostrazione di sufficiente capacita applicativa negli esercizi numerici base, pur con residue incertezze; linguaggio tecnico elementare.
- 22/30 – 24/30 (Discreto): Conoscenza soddisfacente dei contenuti del corso; corretta esecuzione delle procedure di calcolo (BEP, indici di bilancio, ABC); adeguata proprieta di linguaggio e chiarezza espositiva.
- 25/30 – 27/30 (Buono / Distinto): Conoscenza approfondita di tutti i blocchi tematici; elevata precisione nel calcolo e nell'interpretazione dei dati finanziarî e dei costi; buona capacita di collegamento tra teoria e casi applicativi.
- 28/30 – 30/30 (Ottimo): Padronanza completa ed esaustiva dell'intero programma; esecuzione impeccabile dei quesiti numerici e concettuali; capacita di analisi critica ed esposizione fluida con rigore terminologico.
- 30/30 e Lode (Eccellente): Eccellente capacita di rielaborazione personale, spiccata autonomia di giudizio e brillante applicazione dei concetti teorici a contesti ed esempi aziendali complessi.
Testi di riferimento
Materiale Obbligatorio:
- Slide, dispense ufficiali del corso e casi studio da discutere forniti dal docente e disponibili sulla pagina Moodle EOA 2027.
- Raccolta di esercitazioni numeriche svolte e quiz di verifica pubblicati su Moodle EOA 2027.
Materiale Consigliato e Integrativo:
- Playlist video YouTube ufficiale contenente le registrazioni delle lezioni EOA 2022 e focus tematici.
Codice insegnamento P414821941
Lo studente che completa il corso con successo imparerà ad effettuare l'analisi di circuiti lineari in continua, a regime periodico sinusoidale e in presenza di discontinuità (transitorio). Imparerà inoltre a…
Scheda dell'insegnamento
Obiettivi formativi
Lo studente che completa il corso con successo imparerà ad effettuare l'analisi di circuiti lineari in continua, a regime periodico sinusoidale e in presenza di discontinuità (transitorio). Imparerà inoltre a descrivere il comportamento dei componenti elettrici multi-polo in termini di relazioni matriciali tensione-corrente, e a studiare i circuiti equivalenti a minore complessità.
Programma
Componenti a due porte e loro interconnessioni; principi di Kirchhoff; teorema di sostituzione; principio di sovrapposizione degli effetti; teoremi di Thevenin e Norton; elementi di teoria dei grafi; metodi generali per l'analisi dei circuiti: tableau (correnti di ramo), tensioni di nodo e correnti di maglia. Forme d'onda sinusoidali; rappresentazione complessa di segnali sinusoidali; rappresentazione fasoriale delle relazioni tensione/corrente; teoremi sulla potenza (Tellegen e Boucherot). Circuiti multiterminali e multiporta; componenti a due porte; rappresentazioni Z, Y, h e T, e interconnessioni di circuiti a due porte. Fenomeni transitori nei circuiti; trasformata di Laplace; relazioni tensioni/corrente nel dominio di Laplace; risposta di un circuito nel dominio di Laplace; analisi di circuiti tempo-varianti. Circuiti magnetici; legge di Hopkinson; trasformatore ideale e reale; conversione elettro-meccanica dell'energia; macchina asincrona.
Modalità d'esame
Tramite esame scritto e orale.
Prova scritta (3 ore) + prova orale (domanda scritta collettiva su una macchina elettrica + orale individuale di durata circa 15 minuti).
Testi di riferimento
Libri di testo:
- Marco Raugi, Lezioni di Elettrotecnica. Edizioni Plus, Pisa;
- Francesco Bertoncini, Eserciziario di Elettrotecnica. Edizioni Plus, Pisa.
Letture consigliate:
- C.A. Desoer, E. S. Kuh, Basic circuit theory. McGrawHill.
- A. E. Fitzgerald, C. Kingsley Jr., S. Umans, Electric Machinery. McGrawHill.
Codice insegnamento P986025106
Il corso si propone di fornire concetti di base per l’analisi ed il controllo di sistemi dinamici continui. Vengono presentate le tecniche principali per la valutazione della stabilità e delle proprietà strutturali.…
Scheda dell'insegnamento
Obiettivi formativi
Il corso si propone di fornire concetti di base per l’analisi ed il controllo di sistemi dinamici continui. Vengono presentate le tecniche principali per la valutazione della stabilità e delle proprietà strutturali. Viene affrontata la sintesi in frequenza di sistemi di controllo su applicazioni ingegneristiche di processi industriali. Al termine del corso, lo studente sarà in grado di:
- Rappresentare analiticamente una classe di processi dinamici naturali ed ingegneristici, che possano essere descritti da modelli basati su equazioni differenziali lineari.
- Definire le linee di massima per il progetto di sistemi di controllo standard.
- Usare metodologie progettuali basate sulla sistemistica e la valutazione analitica di processi dinamici.
- Usare strumenti numerici e di calcolo quali Python o Matlab, come supporto all’analisi ed alla sintesi.
Programma
Il corso introduce la progettazione di sistemi di controllo in retroazione, seguendo i contenuti del testo di riferimento: Fondamenti di Controlli Automatici, IV Edizione, di P. Bolzern, R. Scattolini, N. Schiavoni, McGraw Hill, Milano. I principali argomenti trattati includono:
Introduzione ai Sistemi di Controllo
- Panoramica sui sistemi di controllo in retroazione, incluse proprietà, vantaggi e applicazioni.
- Introduzione a Python e Jupyter Notebook per l’analisi e la simulazione di sistemi di controllo.
Rappresentazione e Modellazione dei Sistemi
- Sistemi a ciclo aperto vs. ciclo chiuso.
- Funzioni di trasferimento e trasformata di Laplace per la rappresentazione dei sistemi.
- Diagrammi a blocchi e interconnessioni.
Risposta del Sistema e Misure di Prestazione
- Risposta nel dominio del tempo di sistemi del primo e del secondo ordine.
- Risposta in frequenza e diagrammi di Bode.
- Metriche di prestazione, come tempo di salita, tempo di assestamento e sovraelongazione.
Analisi della Stabilità
- Concetto di stabilità, criteri di stabilità e grado di stabilità.
- Teorema del Valore Finale ed errore a regime.
- Stabilità del sistema tramite il criterio di Nyquist.
Tecniche di Progettazione nel Dominio della Frequenza
- Metodo del Luogo delle Radici per la progettazione e analisi dei controllori.
- Diagrammi di Bode per la progettazione nel dominio della frequenza.
- Margini di guadagno e fase e loro implicazioni per la stabilità.
Controllori e Compensatori
- Progettazione e taratura di controllori PID.
- Funzioni di sensibilità e prestazioni robuste.
- Compensatori anticipatori e ritardatori per migliorare le dinamiche del sistema.
Analisi nello Spazio di Stato
- Introduzione ai modelli nello spazio di stato e loro applicazioni nel controllo.
- Analisi di controllabilità, osservabilità e retroazione di stato.
I prerequisiti sono quelli richiesti dal regolamento di corso di studio
Durante il corso, agli studenti è richiesto di:
- Partecipare attivamente alle lezioni e alle discussioni in aula, contribuendo in modo costruttivo e rispettoso.
- Dimostrare impegno nell’approfondire autonomamente i concetti appresi, anche attraverso eventuali suggerimenti forniti durante le lezioni per esercizi da svolgere a casa.
- Collaborare in modo aperto e rispettoso con i compagni nelle discussioni, mostrando disponibilità ad ascoltare e considerare prospettive diverse.
Modalità d'esame
La verifica sarà fatta mediante colloquio diretto con il docente.
L'esame consiste in una prova orale. Essa consiste in un colloquio tra il candidato e il docente, o anche tra il candidato e altri collaboratori del docente titolare. Durante la prova orale potrà essere richiesto al candidato di risolvere anche problemi/esercizi scritti, davanti al docente oppure ad altri membri della commissione.
Nel caso di esame eseguito tramite piattaforme digitali (solo per studenti con requisiti specifici):
- Gli esami sono solamente orali, come da storico, e richiedono che lo studente sia in grado di mostrare all’esaminatore il foglio dove contestualmente descrive il lavoro e l’audio con cui relaziona con l’esaminatore stesso. Lo studente dovrà posizionare la telecamera con cui è in collegamento in modo da inquadrare il foglio su cui sta svolgendo l'esercizio e, almeno parzialmente, lo studente stesso, in modo da renderlo sempre riconoscibile. È possibile usare una o più telecamere aggiuntive (smartphone, webcam, ecc. e relativi software tipo IVCAM) per rendere più agevole l’operazione.
- L’iscrizione agli esami segue la procedura standard nella quale, al giorno dell’appello, lo studente si iscrive, indicando la propria email strutturata di riferimento. A causa di possibili conflitti con altri esami nello stesso giorno, lo studente potrà presentare dei giorni alternativi che saranno presi in dovuta considerazione compatibilmente con i vincoli di conflitto.
- L’aula Teams di svolgimento dell’esame verra' decisa prima della data dell'esame. Se vi saranno cambiamenti e/o modifiche provenienti dal sistema informatico di Ateneo, lo studente verrà informato al momento della chiusura delle iscrizioni.
- Il numero di occasioni di esame è fissato a 2 su 3.
Testi di riferimento
Il materiale didattico è il libro di testo Fondamenti di Controlli Automatici, IV Edizione, di P. Bolzern, R. Scattolini, e N. Schiavoni (McGraw Hill, Milano). Questo testo copre i concetti fondamentali di teoria e applicazione dei controlli automatici, e rappresenta una base solida per affrontare le diverse tematiche del corso.
Per chi fosse interessato ad approfondire ulteriormente gli argomenti trattati, si raccomanda la consultazione dei seguenti testi e risorse:
- K. Ogata, Modern Control Engineering, Prentice Hall, Quinta Edizione, 2010: uno dei testi di riferimento a livello internazionale per l’ingegneria dei controlli moderni. Disponibile in lingua inglese e italiana, fornisce un’analisi dettagliata di vari metodi di controllo, accompagnata da esempi pratici.
- The Control Handbook: una guida completa e di riferimento sui numerosi aspetti dei sistemi di controllo automatico, con un approccio enciclopedico e specialistico, adatta per approfondimenti avanzati.
- F.L. Lewis, A Mathematical Approach to Classical Control: disponibile per il download, questo testo adotta un approccio matematico rigoroso per lo studio dei controlli classici, utile per chi desidera un’analisi teorica e quantitativa delle principali metodologie di controllo.
- K.J. Åström e R.M. Murray, Feedback Systems: questo testo, disponibile per il download, copre i fondamenti dei sistemi a retroazione con un focus particolare su esempi pratici e applicazioni in ambito ingegneristico.
- Wiki Control Systems e Signals and Systems: portali online che offrono spiegazioni e materiali su svariati argomenti di sistemi di controllo e teoria dei segnali, utili per una rapida consultazione e per approfondimenti mirati.
Codice insegnamento P646049877
L'insegnamento introduce principi, linguaggi e strumenti per progettare e sviluppare applicazioni Web client-server. Al termine del corso, lo studente avrà acquisito conoscenze e capacità operative relative allo sviluppo…
Scheda dell'insegnamento
Obiettivi formativi
L'insegnamento introduce principi, linguaggi e strumenti per progettare e sviluppare applicazioni Web client-server. Al termine del corso, lo studente avrà acquisito conoscenze e capacità operative relative allo sviluppo di interfacce, alla programmazione lato client e lato server, all'integrazione con basi di dati e alla valutazione di alcuni requisiti di accessibilità e sicurezza.
Conoscenze:
- Architetture e protocolli del Web: reti a pacchetto, Internet, indirizzi IP, DNS, URI/URL/URN, modello client-server e protocollo HTTP.
- Fondamenti dello sviluppo lato client: struttura e semantica di documenti HTML, CSS, layout responsive e accessibilità delle interfacce Web.
- Programmazione JavaScript: sintassi, strutture dati, funzioni, oggetti, DOM, eventi, moduli ed esecuzione asincrona.
- Programmazione lato server con PHP: strutture del linguaggio, gestione di form e file, programmazione a oggetti, gestione degli errori e dello stato dell'applicazione.
- Accesso a basi di dati da PHP, query e principali misure di prevenzione della SQL injection.
- Principi introduttivi di sicurezza delle applicazioni Web e tecnologie connesse: autenticazione, autorizzazione, HTTPS, hash delle password e cross-site scripting.
Programma
Il Web: fondamenti di sistemi distribuiti, il paradigma client-server, il protocollo HTTP.
Tecnologie lato client: HTML 5 e CSS.
Programmazione lato client: JavaScript, Document Object Model (DOM), usare il DOM in JavaScript, esecuzione asincrona.
Programmazione lato server: PHP, programmazione Object Oriented in PHP, interazione con database.
Cenni di sicurezza e accessibilità nel Web.
Sono richieste conoscenze di base di programmazione e di progettazione di basi di dati.
Per sostenere l'esame di Progettazione Web è obbligatorio aver superato l'esame di Basi di Dati.
Autonomia nell'organizzazione delle fasi di progettazione e sviluppo di un'applicazione Web.
Accuratezza nell'implementazione e nella verifica critica delle soluzioni adottate.
Capacità di motivare le scelte progettuali con un linguaggio tecnico appropriato.
Modalità d'esame
Le capacità applicative sono verificate nella prova pratica e nella discussione del progetto individuale. Il progetto deve includere una componente lato client e una componente lato server, essere eseguibile con i browser inclusi nel pacchetto software dell'insegnamento e usare le tecnologie previste: HTML, CSS, JavaScript, PHP e MySQL.
L'esame è composto da una prova pratica e da una prova orale.
Non è possibile sostenere l'orale, che consiste nella discussione del progetto, prima di aver superato la prova pratica.
Prova pratica. La prova consiste nello sviluppo di un'applicazione Web lato client (HTML, CSS e JavaScript). Dura 2 ore e si svolge nelle aule informatiche della Scuola di Ingegneria usando i relativi calcolatori. Sono consentiti esclusivamente le slide usate a lezione e i manuali inclusi nel pacchetto software del corso. La prova pratica è superata se il candidato dimostra padronanza delle tecnologie e adotta soluzioni progettuali adeguate.
Accesso all'orale. Con un voto della prova pratica pari o superiore a 15/30 è possibile accedere alla prova orale. Il voto della prova pratica è valido per tre appelli, incluso quello in cui è stata sostenuta la prova; è consigliato sostenere le due prove nello stesso appello.
Progetto e prova orale. Il progetto è individuale e deve realizzare un servizio completo e logicamente definito, con funzionalità coese, non ridondanti, modulari e leggibili.
Consegna. Il progetto deve essere compresso in un file .zip e consegnato entro il terzo giorno solare precedente la data dell'esame (entro le 23:59:59); le consegne successive non sono considerate. Un documento condiviso mediante il Team dell'insegnamento contiene le specifiche dettagliate del progetto e i dettagli per la consegna.
Valutazione dell'orale. Il candidato illustra il progetto e motiva le proprie scelte. Sono valutati, oltre ai criteri sul prodotto software indicati nella sezione relativa ai comportamenti, la chiarezza espositiva e l'uso della terminologia tecnica. Se il progetto non è originale, lo studente deve ripetere la prova pratica e l'orale non è limitato alla discussione del progetto: tutti gli argomenti del corso, inclusi quelli teorici, possono essere oggetto del colloquio.
Testi di riferimento
Il materiale didattico comprende le slide del corso e esempi di codice condivisi tramite il Team dell'insegnamento. Testi e soluzioni delle prove pratiche sono disponibili all'indirizzo https://github.com/alessiovecchio/PWEB
Codice insegnamento 64952
Lo studente che completa il corso sara' in grado di dimostrare conoscenze su: 1) teoria dei circuiti logici ed architettura del calcolatore; 2) linguaggi di descrizioni dell'hardware per circuiti logici; 3) descrizione e…
Scheda dell'insegnamento
Obiettivi formativi
Lo studente che completa il corso sara' in grado di dimostrare conoscenze su: 1) teoria dei circuiti logici ed architettura del calcolatore; 2) linguaggi di descrizioni dell'hardware per circuiti logici; 3) descrizione e sintesi di circuiti logici.
Programma
Linguaggio Assembler: Descrizione Linguaggio macchina, mnemonico, assembler. Indirizzamento degli operandi. istruzioni operative: trasferimento, aritmetiche, traslazione/rotazione, logiche. Istruzioni di controllo. Istruzioni per operandi stringa. Assemblaggio e debugging. Utilizzo del debugger GDB. Sottoprogrammi e passaggio dei parametri.
Reti combinatorie: Le porte AND, OR, NOT, NAND e NOR; il decodificatore/demultiplatore; il multiplatore. Le porte a tre strati e le loro applicazioni. Modalità di descrizione, trattazione algebrica e sintesi ottima delle reti combinatorie.
Reti sequenziali asincrone: I flip-flop SR, D latch e D edge-triggered. Le memorie RAM.
Reti sequenziali sincronizzate: L'elemento di registro; i registri in traslazione e i contatori. Reti sequenziali sincronizzate di Moore, di Mealy e di Mealy Ritardato: modelli funzionali, modalità di descrizione, modelli implementativi. Il flip-flop J-K. Reti sequenziali complesse: descrizione in un linguaggio di trasferimento tra registri, sintesi in accordo al modello strutturale con parte operativa e parte controllo (con particolare riferimento ai modelli microprogrammati).
Struttura fisica di un calcolatore: Moduli di base e loro collegamento. Struttura interna del processore; della memoria e di alcune interfacce (parallele, seriali, di conteggio e per la conversione A/D e D/A). L'ingresso/uscita dati a controllo di programma. Cenni al meccanismo di interruzione. (La trattazione della maggior parte degli argomenti elencati in questo capoverso costituisce anche una esemplificazione sull'uso di reti combinatorie e sequenziali).
Algoritmi e reti di tipo aritmetico: Richiami sulla rappresentazione dei numeri naturali, interi e reali; gli algoritmi e le reti fondamentali per una aritmetica dei numeri naturali e dei numeri interi.
Gli studenti devono avere conoscenze approfondite dei fondamenti dell'informatica, in particolare di un linguaggio di programmazione di alto livello (e.g., C++). Devono inoltre possedere conoscenze di base dell'organizzazione a blocchi del calcolatore e della rappresentazione dell'informazione (numeri naturali ed interi).
L'insegnamento ha l'obiettivo di indicare agli studenti un comportamento progettuale articolato in fasi successive da quella più creativa della modellazione, a quella più formale della descrizione a quella finale e più tecnica della implementazione.
Modalità d'esame
Le capacita' verranno verificate facendo svolgere al candidato esercizi di descrizione e sintesi di reti complesse, e di Assembler, sia nell'ambito della prova scritta che di quella orale.
L'esame consiste in:
- una prova scritta, ulteriormente divisa in:
- domande a crocette, riguardanti tutto il programma svolto ed il cui superamento e' condizione necessaria per il prosieguo dell'esame (durata 20 minuti)
- esercizi di Assembler e di descrizione e sintesi di reti complesse, da svolgersi al calcolatore (durata 2.5-3 ore)
- una prova orale, che puo' essere svolta da chi ha superato la prova scritta (durata 1.5-2 ore).
Modalita' d'esame straordinarie a seguito dell'emergenza CoVid19
Fino alla ripresa della normale operativita' delle universita', l'esame verra' tenuto in questo modo:
- una prova scritta, da tenersi online ulteriormente divisa in:
- domande a crocette, riguardanti tutto il programma svolto ed il cui superamento e' condizione necessaria per il prosieguo dell'esame (durata 20 minuti)
- esercizi di Assembler e descrizione e sintesi di reti complesse (durata 2.5-3 ore)
- una prova orale, che puo' essere svolta da chi ha superato la prova scritta (durata 1.5-2 ore).
Entrambe le prove vengono tenute in remoto, utilizzando Google Meets e/o Microsoft Teams.
Ulteriori istruzioni sono riportate alla pagina del docente.
Testi di riferimento
Testi ufficiali:
- Paolo Corsini, “dalle porte AND, OR, NOT al Sistema calcolatore”, edizioni ETS
- Paolo Corsini, “circuiti logici per le operazioni sui numeri naturali e sui numeri interi”, edizioni ETS
- Paolo Corsini, "Il Calcolatore Didattico C86.32", edizioni ETS
Sulla pagina web del docente sono disponibili dispense che coprono gran parte del programma.
Codice insegnamento P938952110
Il corso si prefigge l'obiettivo di guidare lo studente nella formulazione di modelli matematici per problemi di ottimizzazione lineare (discreta e continua) e non lineare a risorse limitate (vincoli), e di illustrare…
Scheda dell'insegnamento
Obiettivi formativi
Il corso si prefigge l'obiettivo di guidare lo studente nella formulazione di modelli matematici per problemi di ottimizzazione lineare (discreta e continua) e non lineare a risorse limitate (vincoli), e di illustrare tecniche algoritmiche per la loro risoluzione.
Lo studente acquisirà competenze che gli permetteranno di formulare modelli di ottimizzazione lineare continua e discreta, compresi quelli di flusso su reti, e non lineare. Apprenderà inoltre proprietà matematiche che lo condurranno alla progettazione di approcci algoritmici di base per importanti classi di problemi di ottimizzazione: problemi di flusso su rete, programmazione lineare, ottimizzazione non lineare non vincolata e vincolata.
Programma
Formulazione di problemi di ottimizzazione: dati, variabili, vincoli. Problemi di produzione, di trasporto, di assegnamento. Variabili discrete e continue. Modelli standard per software matlab. Programmazione Lineare. Soluzioni ammissibili ed ottime. Poledri e loro rappresentazione geometrica e matriciale. Teorema fondamentale della PL. Soluzioni di base e vertici. Teoria della dualità e test di ottimalità. Algoritmo del simplesso primale. Algoritmo del simplesso duale. Il problema ausiliario. Il caso delle variabili intere e binarie. Le valutazioni superiori ed inferiori. Algoritmi "greedy". Il metodo dei piani di taglio. Piani di taglio di Gomory.
Problemi su reti. Cammini minimi, flusso massimo, flusso di costo minimo. Matrici di incidenza, capacità, costi, bilanci. Alberi di copertura e basi. Poliedro dei flussi. Flussi di base su reti non capacitate e capacitate. La tecnica della tripartizione degli archi. Problema dei potenziali. Potenziali di base. Teorema di Bellman. Algoritmo del simplesso su reti non capacitate; algoritmo del simplesso su reti capacitate. L'algoritmo di Ford-Fulkerson. L'algoritmo di Dijkstra.
Il metodo del "Branch and Bound". Il problema dello zaino, il problema del "bin-packing", il problema del "commesso viaggiatore" ed i problemi di "copertura".
Metodi di ottimizzazione continua non vincolata: discesa e gradiente. La teoria di Lagrange-Kuhn-Tucker per l'ottimizzazione vincolata. Il caso convesso. Metodi di ottimizzazione vincolata: metodo del gradiente proiettato e metodo di Frank-Wolfe.
Elementi di algebra lineare: operazioni tra matrici, rango, determinante ed inversa di una matrice. Indipendenza lineare, sistemi lineari e loro risoluzione.
Calcolo per funzioni reali di più variabili: gradiente, derivata direzionale, hessiana, massimi e minimi liberi.
L'insegnamento ha l'obiettivo di rendere consapevoli gli studenti del corretto utilizzo dei metodi e degli algoritmi di ottimizzazione.
Modalità d'esame
Tramite l'esame finale.
Prova scritta della durata di due ore composta da 4 esercizi/problemi, seguita da una prova orale. E' fortemente consigliato aver superato la prova scritta prima di accedere alla prova orale.
Testi di riferimento
- M.Pappalardo-M.Passacantando, Ricerca Operativa, Casa Editrice Pisa University Press.
- A.Carpignani-M.Pappalardo, Theory and Methods of Optimization, Unitext N.175, SPRINGER.
- Slides del docente disponibili in rete.
Codice insegnamento P947812866
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.