Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
1049269 -
ALGORITHMS
(obiettivi)
Obiettivi generali Introduzione ai metodi di base per la progettazione e l'analisi degli algoritmi, iterativi e ricorsivi, ed alla valutazione della loro efficienza computazionale.
Obiettivi specifici Conoscenza e comprensione: Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, alcuni modi per scandire tali strutture, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio: Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative: Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un'idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento successivo: Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell'ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati di base.
-
CHIERICHETTI FLAVIO
( programma)
Il corso è di introduzione all'algoritmica --- saranno studiati vari algoritmi, e problemi, basilari dell'area. Saranno introdotte le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi (15 ore); le strutture dati elementari (10 ore); algoritmi di ordinamento (5 ore); algoritmi per l'analisi dei grafi (10 ore); algoritmi greedy (10 ore); programmazione dinamica (10 ore).
"Algorithm Design", Kleinberg, Tardos
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595099 -
CALCULUS
(obiettivi)
Obiettivi generali:
Acquisire una conoscenza delle tecniche elementari del Calcolo Differenziale e delle principali applicazioni a problemi di massimo-minimo e allo studio del grafico di funzioni; fornire strumenti di analisi matematica di base come integrali, serie numeriche e di potenze ed equazioni differenziali.
Il corso e' organizzato in due unita': Calculus Unit 1 e Calculus Unit 2. Si rimanda a queste unita' per gli Obiettivi Specifici.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali: Lo scopo del corso è fornire strumenti di analisi matematica di base come integrali, serie numeriche e di potenze ed equazioni differenziali.
Obiettivi specifici:
Conoscenza e comprensione: L'obiettivo è che lo studente apprenda alcune tecniche di integrazione per calcolare integrali definiti ed indefiniti usando la formula di integrazione per parti e l'integrazione per sostituzione. Lo studente sara’ in grado di studiare la convergenza delle serie numeriche e approssimare, in alcuni casi, la loro somma e studierà le serie di potenze e gli sviluppi in serie di Taylor delle funzioni elementari. Infine imparerà a risolvere alcune equazioni differenziali ordinarie del primo ordine a variabili separabili e lineari del primo ordine ed equazioni differenziali del secondo ordine lineari con coefficienti costanti omogenee e non.
Applicazione di conoscenza e comprensione: al termine del corso lo studente sarà in grado di risolvere semplici integrali di funzioni di una variabile, convergenza di successioni e serie, calcolo esplicito delle soluzioni equazioni differenziali del secondo ordine lineari con coefficienti costanti omogenee e non.
Autonomia di giudizio: lo studente avra' le basi per utilizzare il calcolo integrale e differenziale come strumento di analisi di una situazione concreta descrivibile matematicamente.
Abilità comunicative: lo studente sara' in grado di comprendere un testo scientifico di complessita' non elevata e di riassumerne i concetti principali.
Capacita' di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o impartito in un corso, relativo ad aspetti piu' avanzati del Calcolo Differenziale e Integrale.
-
ANSINI NADIA
( programma)
Integrali (definiti and indefiniti) in una e piu’ variabili, successioni e serie di potenze, EDO del primo e secondo ordine a coefficienti costanti. Cenni di Analisi Complessa
Calculus, T.M.Apostol
Mathematical Methods in the Physical Sciences 2nd Edition [Mary Boas] [Wiley-1983]
(Date degli appelli d'esame)
|
6
|
MAT/05
|
24
|
-
|
-
|
-
|
Attività formative di base
|
ENG |
10595546 -
COMPUTER ARCHITECTURE
(obiettivi)
Obiettivi generali: Metodologie di progettazione di circuiti combinatori e sequenziali e far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing. Obiettivi specifici: codifica binaria di vari tipi di dato, algebra booleana, analisi e sintesi di circuiti combinatori, flip-flop, analisi e sintesi di circuiti sequenziali, registri, interconnesione tra registri e altri moduli. Inoltre, il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly. Conoscenza e comprensione: Conoscere e capire come l'elaboratore gestisce ed elabora l'informazione. Inoltre, lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.
Applicare conoscenza e comprensione: Dimostrare di saper progettare semplici circuiti combinatori e sequenziali in grado di svolgere determinati compiti. Inoltre, le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.
Capacità critiche e di giudizio: saper scegliere il miglior approccio, tra i vari studiati, per risolvere un determinato compito. Inoltre, lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.
Capacità comunicative: essere in grado di valutare e motivare le proprie scelte nella progettazione di un circuito. Formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento: Capire le differenze e i vantaggi delle varie tecniche di progettazione. Inoltre, il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali: L’obiettivo dell'insegnamento di Architettura degli elaboratori è di far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing.
Obiettivi specifici: Il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly.
Conoscenza e comprensione: Lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.
Applicazione di conoscenza e comprensione: Le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.
Autonomia di giudizio: Lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.
Abilità comunicative: Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento successivo: Il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.
-
MEI ALESSANDRO
( programma)
1. Il set di istruzioni e il simulatore Mars; 2. il processore; 3. pipelining e branch prediction; 4. gerarchie di memorie; 5. I/O; 6. multiprocessor e multicore.
D. A. Patterson and J. L. Hennessy. “Computer Organization and Design, The Hardware/Software Interface”, 5th edition, Morgan Kaufmann, 10 Oct 2013. ISBN: 9780124077263.
(Date degli appelli d'esame)
|
6
|
INF/01
|
24
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ENG |
10595523 -
PHYSICS
(obiettivi)
OBIETTIVI GENERALI: 1) Insegnare agli studenti le leggi fondamentali della fisica e la loro applicazione a situazioni del mondo reale.
2) Sviluppare le abilità di problem-solving descrivendo i fenomeni fisici con formule matematiche da un lato, ed intuizione fisica dall’altro.
OBIETTIVI SPECIFICI: Conoscenza e comprensione 3) Conoscere le nozioni di base della Meccanica Newtoniana, fisica dei fluidi, termodinamica, elettricita’ e magnetismo. 4) Conoscere I concetti fondamentali di forza, momento della forza, lavoro, energia potenziale, energia cinetica, energia meccanica, potenza, impulso, quantita’ di moto e momento angolare. 5) Conoscere alcune leggi di conservazione della fisica e la loro importanza. 6) Conoscere I concetti di temperatura, calore ed entropia applicati a semplici sistemi termodinamici. 7) Conoscere i concetti di campo elettrico e potenziale, campo magnetico e correnti elettriche. 8) Comprendere il testo di un esercizio di fisica.
Capacità applicative Lo studente sara’ in grado di: 9) Risolvere una grande varieta’ di problemi di fisica formalizzando la loro soluzione dal punto di vista matematico. 10) Risolvere un problema di fisica in modo coerente, sia dal punto di vista formale che quantitativo. 11) Valutare gli effetti dominanti in un problema fisico. 12) Applicare le leggi di Newton per descrivere il moto di un punto materiale, di sistemi di punti e la rotazione di corpi rigidi. 13) Risolvere problemi di dinamica utilizzando i concetti di lavoro, energia cinetica, energia potenziale ed energia meccanica. 14) Utilizzare la conservazione dell’energia, della quantità di moto e del momento angolare in un'ampia gamma di situazioni. 15) Risolvere semplici problemi riguardanti la statica e la dinamica dei fluidi. 16) Risolvere semplici problemi riguardanti l'energia termica utilizzando il primo principio della termodinamica. 17) Descrivere il significato del concetto di entropia e della seconda legge della termodinamica. 18) Descrivere i campi elettrici e il loro potenziale nel caso di cariche stazionarie. 19) Descrivere i campi magnetici generati da correnti stazionarie e I fenomeni legati all’induzione elettromagnetica.
Capacita’ critiche e di giudizio
20) Essere in grado di stabilire se una relazione tra grandezze fisiche o una legge sono corrette, anche da un punto di vista dimensionale.
21) Sviluppo di doti di ragionamento quantitativo e analitico utili per studiare, modellizzare e comprendere problemi di fisica.
Capacita’ comunicative 22) Saper parlare di fisica usando una terminologia appropriata. 23) Saper descrivere un problema complesso, isolandone i contributi più rilevanti.
Capacità di apprendimento 24) Avere la capacità di consultare un testo che parla di fisica.
-
PISANO GIAMPAOLO
( programma)
MECCANICA - Grandezze fisiche e misure, lunghezza, tempo, massa, unita' di misura. - Vettori, versori, somma e sottrazione di vettori, prodotto scalare e vettoriale. - Moto lungo una linea retta, spostamento, velocita', accelerazione. - Moto in due e tre dimensioni, moto del proiettile, moto circolare. - Forze, leggi di Newton, applicazioni delle leggi di Newton, attrito. - Energia cinetica, lavoro, potenza, energia potenziale, conservazione dell'energia. - Centro di massa, seconda legge di Newton per sistemi di particelle, quantita' di moto, impulso, urti, conservazione della quantita' di moto, quantita' di moto e energia cinetica negli urti, urti elastici in una dimensione. - Rotazione, energia cinetica nelle rotazioni, momento di inerzia, momento di una forza, seconda legge di Newton per le rotazioni, lavoro e energia cinetica rotazionale. - Momento angolare, seconda legge di Newton in forma angolare, momento angolare di un corpo rigido, conservazione del momento angolare. - Legge di gravitazione di Newton, principio di sovrapposizione, campo gravitazionale all'interno della Terra e sulla sua superficie, energia potenziale gravitazionale.
FISICA DEI FLUIDI & TERMODINAMICA - Densita', pressione, statica dei fluidi, principio di Pascal, principio di Archimede, equazione di continuita'. - Temperatura, assorbimento del calore, primo principio della termodinamica, meccanismi per la trasmissione del calore, gas ideali. - Entropia, secondo principio della termodinamica.
ELETTRICITA' & MAGNETISMO - Legge di Coulomb, campi elettrici, campi elettrici generati da una carica elettrica, un dipolo e da distribuzioni lineari di carica. Carica puntiforme in un campo elettrico. - Flusso elettrico, legge di Gauss, conduttori carichi isolati, applicazioni della legge di Gauss. - Potenziale elettrico, superfici equipotenziali, potenziale generato da un carica elettrica e da una distribuzione continua di carica, calcolo del campo a partire dal potenziale. - Capacita' elettrica, condensatori in parallelo e in serie. - Corrente elettrica, densita' di corrente, resistenza, legge di Ohm, potenza, circuiti. - Campi magnetici, moto carica in un campo magnetico, forza magnetica su fili percorsi da correnti. - Campi magnetici generati da correnti elettriche, forza tra correnti elettriche parallele, legge di Ampere, solenoidi. - Legge di Faraday, legge di Lenz, induzione, induttanza, auto-induzione. - Legge di Gauss per i campi magnetici, campi magnetici indotti, corrente di spostamento, equazioni di Maxwell’s, onde elettromagnetiche.
Testo principale: - Halliday & Resnick’s Principles of Physics, 11th Edition, Global Edition (Wiley)
Altri testi: - Halliday, Resnick, Walker, Fundamentals of Physics (Wiley) - Serway & Jewett, Physics for Scientists and Engineers with Modern Physics (Cengage Learning)
(Date degli appelli d'esame)
|
6
|
FIS/01
|
24
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ENG |
10595102 -
PROGRAMMING
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
|
|
-
UNIT 2
(obiettivi)
Obiettivi generali Questo corso introduce agli studenti i metodi di base per la progettazione e l’analisi degli algoritmi. Studieranno vari ben noti algoritmi che risolvono problemi di base come l’ordinamento o la ricerca, insieme con i più semplici strumenti per analizzarli dal punto di vista dell’efficienza.
Obiettivi specifici:
Conoscenza e comprensione Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le strutture dati elementari, i principali algoritmi di ordinamento e le implementazioni più elementari dei dizionari.
Applicare conoscenza e comprensione: Al termine del corso gli studenti avranno acquisito familiarità con le principali strutture dati di base, in particolare quelle che implementano i dizionari. Sapranno spiegarne gli algoritmi e analizzarne la complessità, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti; sapranno spiegare i principali algoritmi di ordinamento, illustrando le strategie di progetto sottostanti e le relative analisi di complessità; saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi studiati; saranno in grado di progettare soluzioni ricorsive di problemi e di analizzare asintoticamente gli algoritmi risultanti.
Capacità critiche e di giudizio Lo studente avrà le basi per analizzare la qualità di un algoritmo e delle relative strutture dati, sia dal punto di vista della effettiva risoluzione del problema che da quello della efficienza computazionale con la quale il problema viene risolto.
Capacità comunicative Lo studente acquisirà la capacità di esporre in modo chiaro ed organizzato le proprie conoscenze, capacità che verrà verificata sia mediante i quesiti presentati nelle prove scritte che durante la prova orale. Lo studente sarà in grado di esprimere un’idea algoritmica in modo rigoroso ad alto livello, in pseudocodice.
Capacità di apprendimento Le conoscenze acquisite permetteranno allo studente di affrontare lo studio, individuale o previsto nell’ambito di un corso di laurea magistrale, di tecniche algoritmiche e di strutture dati più avanzate.
-
CENCIARELLI PIETRO
( programma)
• Introduzione al paradigma di programmazione object oriented. Il linguaggio Java. • Algebra e tipi di dato astratto. Classi e oggetti. L'incapsulamento. • Il polimorfismo (parte prima): Estensione di una classe ed ereditarietà. Classi astratte e interfacce. • Package. Modificatori di accesso e regole di visibilità. • Classi annidate. Classi anonime. Espressioni Lambda. • Il polimorfismo (parte seconda): Tipi generici. Gerarchia • Thread e sincronizzazione di processi. Deadlock e starvation. • Design pattern: creational, structural, behavioral, concurrency.
Cay S. Horstmann, Core Java for the Impatient, Addison-Wesley Professional, 2015
(Date degli appelli d'esame)
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative di base
|
ENG |