|
Insegnamento
|
CFU
|
SSD
|
Ore Lezione
|
Ore Eserc.
|
Ore Lab
|
Ore Studio
|
Attività
|
Lingua
|
|
8066820 -
LOGICA E RETI LOGICHE
(obiettivi)
L’insegnamento si propone di: - Fornire agli studenti le nozioni fondamentali del ragionamento logico analitico; - Introdurre i principi della progettazione e l'analisi dei circuiti logici.
Al termine del corso gli studenti saranno in grado di: - Riconoscere la sintassi e la semantica della logica proposizionale e della logica del primo ordine - Comprendere la simbologia relativa ai circuiti logici - Progettare semplici circuiti per operazioni booleane e aritmetiche - Confrontare l'efficienza di diverse soluzioni - Descrivere in modo sintetico e analitico il funzionamento di un circuito logico - Leggere e comprendere testi tecnici di logica e circuiti
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8065624 -
RICERCA OPERATIVA
(obiettivi)
L'obiettivo del corso è di acquisire conoscenze relative alla branca della Ricerca Operativa che si occupa della modellazione e risoluzione di problemi lineari. Al termine del corso lo studente acquisirà le competenze necessarie per analizzare, modellare e approcciare la risoluzione di problemi decisionali in questo ambito (*conoscenza e capacità di comprensione*). Inoltre lo studente alla fine del corso avrà sviluppato delle capacità di analizzare la complessità di questi problemi (*capacità di applicare conoscenza e comprensione*) al fine di determinare le migliori scelte in ambito algoritmico/implementativo. Questo stimolerà inoltre sia *autonomia di giudizio*, vista anche la natura applicativa del corso e la necessaria analisi critica sulla correttezza delle metodologie quantitative utilizzate, che *abilità comunicative*, come accade in un corso modellistico dove sia richiesto di dover sintetizzare in linguaggi differenti obiettivi e vincoli a strumenti e persone a valle della catena decisionale. E' infine naturale pensare che lo studente possa implementare le conoscenze acquisite nel corso in maniere autonoma sulla base delle necessità future lavorative che gli si presenteranno (*capacità di apprendimento*).
-
CARAMIA MASSIMILIANO
( programma)
Teoria della programmazione lineare. Le soluzioni di base. Il metodo del Simplesso. Il Simplesso in due fasi. La teoria della dualità. La dualità debole. La dualità forte. Le condizioni di complementarità. Il metodo del Simplesso duale. L'algoritmo Primale-Duale. Il linguaggio AMPL. Implementazione in AMPL degli algoritmi proposti nel corso.
 Dispense a cura del docente. M. Caramia, S. Giordani, F. Guerriero, D. Pacciarelli, Ricerca operativa. Programmazione lineare, intera e non lineare, ISEDI, 2018
|
6
|
MAT/09
|
48
|
-
|
-
|
-
|
Attività formative affini ed integrative
|
ITA |
|
8067331 -
ALGORITMI E STRUTTURE DATI
(obiettivi)
OBIETTIVI FORMATIVI: Questo corso introduce gli studenti all'analisi e alla progettazione di algoritmi. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso, gli studenti saranno in grado di: - analizzare la complessità asintotica di algoritmi; - dimostrare familiarità con i principali algoritmi e strutture dati; - applicare i più importanti paradigmi di progettazione algoritmica e usare i principali metodi di analisi; - progettare algoritmi efficienti in tipici contesti pratici in cui è richiesta una soluzione algoritmica. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Mi aspetto che uno studente sia in grado di riconoscere problemi algoritmici in contesti applicativi reali e sia in grado di applicare soluzioni algoritmiche a tali problemi. AUTONOMIA DI GIUDIZIO: Mi aspetto che uno studente sia capace di giudicare la qualità di una soluzione algoritmica. ABILITÀ COMUNICATIVE: Mi aspetto che uno studente sia in grado di descrivere formalmente problemi, algoritmi e analisi. CAPACITÀ DI APPRENDIMENTO: Mi aspetto che uno studente migliori le sue capacità di apprendimento.
|
|
|
M-5638 -
ALGORITMI E STRUTTURE DATI B
(obiettivi)
OBIETTIVI FORMATIVI: Questo corso introduce gli studenti all'analisi e alla progettazione di algoritmi. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Al termine del corso, gli studenti saranno in grado di: - analizzare la complessità asintotica di algoritmi; - dimostrare familiarità con i principali algoritmi e strutture dati; - applicare i più importanti paradigmi di progettazione algoritmica e usare i principali metodi di analisi; - progettare algoritmi efficienti in tipici contesti pratici in cui è richiesta una soluzione algoritmica. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Mi aspetto che uno studente sia in grado di riconoscere problemi algoritmici in contesti applicativi reali e sia in grado di applicare soluzioni algoritmiche a tali problemi. AUTONOMIA DI GIUDIZIO: Mi aspetto che uno studente sia capace di giudicare la qualità di una soluzione algoritmica. ABILITÀ COMUNICATIVE: Mi aspetto che uno studente sia in grado di descrivere formalmente problemi, algoritmi e analisi. CAPACITÀ DI APPRENDIMENTO: Mi aspetto che uno studente migliori le sue capacità di apprendimento.
-
CLEMENTI ANDREA
( programma)
Il corso riguarda l'analisi e la progettazione di algoritmi. L'enfasi è sugli algoritmi efficienti. Saranno presentati i principali strumenti teorici utili per l'analisi e le principali tecniche di progettazione algoritmica (tecnica greedy, divide-et-impera, programmazione dinamica). Il corso è diviso in due parti. La prima parte copre: notazione asintotica, diversi metodi per stimare la complessità computazionale di algoritmi ricorsivi, il problema dell'ordinamento, strutture dati efficienti per implementare dizionari e code con priorità, e il problema del calcolo della distanza di edit fra due parole. La seconda parte riguarda problemi e algoritmi su grafi. Saranno presentati algoritmi efficienti per visitare un grafo, calcolare cammini minimi (in grafi pesati), trovare un minimo albero di copertura, e calcolare il flusso massimo di una rete con vincoli di capacità sugli archi.
 Algoritmi e Strutture Dati, Demetrescu, Finocchi, Italiano, McGraw-Hill Algorithm Design, Jon Kleinberg e Eva Tardos, Addison Wesley (2005)
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |
|
8066834 -
FONDAMENTI DI INFORMATICA
(obiettivi)
OBIETTIVI FORMATIVI: acquisizione di conoscenze relative ai concetti fondanti dell'informatica e della teoria degli algoritmi, con particolare riferimento alla loro analisi, alla teoria degli automi e dei linguaggi formali, alla calcolabilità e alla complessità computazionale. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: acquisizione di conoscenze di tecniche di analisi che inducano una capacità di comprensione approfondita dei problemi e dei procedimenti risolutivi; CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: abbiano capacità di applicare la conoscenza e comprensione acquisite al fine di individuare i punti critici dei problemi allo scopo di progettare soluzioni quanto più efficienti possibile; AUTONOMIA DI GIUDIZIO: abbiano la capacità di raccogliere e interpretare i dati ritenuti utili a derivare giudizi autonomi circa la effettiva risolubilità/irrisolubilità di problemi; ABILITÀ COMUNICATIVE: l’utilizzo di linguaggio logico e formalismo porterà ad una capacità di comunicare con elevato grado di chiarezza informazioni, idee, problemi e soluzioni a interlocutori specialisti e non specialisti; CAPACITÀ DI APPRENDIMENTO: sviluppo di capacità di approfondire autonomamente gli argomenti trattati, che è prerogativa necessaria alla possibilità di intraprendere con successo il percorso magistrale.
|
|
|
M-4749 -
MODULO II
(obiettivi)
OBIETTIVI FORMATIVI: acquisizione di conoscenze relative ai concetti fondanti dell'informatica e della teoria degli algoritmi, con particolare riferimento alla loro analisi, alla teoria degli automi e dei linguaggi formali, alla calcolabilità e alla complessità computazionale. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: acquisizione di conoscenze di tecniche di analisi che inducano una capacità di comprensione approfondita dei problemi e dei procedimenti risolutivi; CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: abbiano capacità di applicare la conoscenza e comprensione acquisite al fine di individuare i punti critici dei problemi allo scopo di progettare soluzioni quanto più efficienti possibile; AUTONOMIA DI GIUDIZIO: abbiano la capacità di raccogliere e interpretare i dati ritenuti utili a derivare giudizi autonomi circa la effettiva risolubilità/irrisolubilità di problemi; ABILITÀ COMUNICATIVE: l’utilizzo di linguaggio logico e formalismo porterà ad una capacità di comunicare con elevato grado di chiarezza informazioni, idee, problemi e soluzioni a interlocutori specialisti e non specialisti; CAPACITÀ DI APPRENDIMENTO: sviluppo di capacità di approfondire autonomamente gli argomenti trattati, che è prerogativa necessaria alla possibilità di intraprendere con successo il percorso magistrale.
-
DI IANNI MIRIAM
( programma)
Macchine di Turing: trasduttori e riconoscitori, Macchine a un nastro e a k nastri, macchine deterministiche e non deterministiche. Macchina di Turing universale. Linguaggi e funzioni. Linguaggi e linguaggi complemento. Accettabilità e decidibilità di linguaggi. Calcolabilità di funzioni. La tesi di Church-Turing e modello di calcolo equivalenti alla macchina di Turing. Linguaggi non decidibili. Halting problem. Riducibilità tra linguaggi. Misure di complessità: dtime, dspace, ntime, nspace. Classi di linguaggi: DTIME, DSPACE, NTIME, NSPACE. Gap theorem e funzioni time-constructible. Teoremi di compressione e di accelerazione. Definizione delle classi di complessità spaziale e temporale: P, NP, PSPACE, NPSPACE, EXP, coNP. Inclusione, inclusione propria, coincidenza. Completezza. Problemi e codifiche. Problemi decisionali e loro complemento. La classe P. La classe NP. Problemi NP-completi e Teorema di Cook-Levin. Chiusura rispetto alla riduzione polinomiale. Esempi di dimostrazioni di NP-completezza: 3-SAT, Vertex Cover, 3-Colorability, Colorability, Independent Set, Clique, Hamiltonian Circuit/Path, Longest Path, Commesso Viaggiatore. Problemi NP-intermedi: il teorema di Ladner. Algoritmi pseudo-polinomiali, problemi numerici e NP-completezza in senso forte; il problema PARTIZIONE.
 G. Ausiello, F. D'Amore, G. Gambosi, L. Laura "Linguaggi, Modelli, Complessità" nuova edizione. Franco Angeli, 2014. ISBN 978-88-917-0553-2. Dispense a cura del docente disponibili sul sito del corso.
|
6
|
INF/01
|
48
|
-
|
-
|
-
|
Attività formative di base
|
ITA |
|
8066825 -
LINGUAGGI E METODOLOGIE DI PROGRAMMAZIONE
(obiettivi)
OBIETTIVI FORMATIVI: Il corso intende fornire allo studente una panoramica dettagliata dei linguaggi di programmazione che implementano paradigmi diversi dal solo modello procedurale visto nei corsi precedenti. CONOSCENZA E CAPACITÀ DI COMPRENSIONE: Conoscenza di modelli non procedurali alla programmazione. CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: Ricerca di soluzioni basate su modelli di programmazione non esplicitamente procerurale. AUTONOMIA DI GIUDIZIO: Comprensione di quale sia l'approccio di programmazione migliore dato l'ambito di applicazione. ABILITÀ COMUNICATIVE: Lo studente avrà la capacità di descrive i modelli non procedurali. CAPACITÀ DI APPRENDIMENTO: Richesta una rivoluzione nella modalità di pensare a chi è abituato a pensare proceduralmente.
|
|
|
M-4738 -
MODULO II
(obiettivi)
OBIETTIVI FORMATIVI: padronanza del paradigma di modellazione e programmazione OO e, in particolare, acquisizione di conoscenza pratica del linguaggio Java CONOSCENZA E CAPACITÀ DI COMPRENSIONE: lo studente deve essere in grado di trasporre richieste scevre da tecnicismi e convogliarle in forma di requisiti formali all'interno di un piano di sviluppo software CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: una volta realizzato il piano di cui sopra, lo studente deve essere in grado di sviluppare software in modo indipendente AUTONOMIA DI GIUDIZIO: lo studente, indipendentemente dalle capacità e attitudini personali, deve raggiungere una piena maturità sull'argomento e fornire soluzioni in piena autonomia ABILITÀ COMUNICATIVE: lo studente deve essere in grado di comunicare in modo adeguato, da un punto di vista formale e professionale, le scelte effettuate in una pianificazione di sviluppo software CAPACITÀ DI APPRENDIMENTO: lo studente, pur coadiuvato dal docente, deve poter affinare le proprie capacità di apprendimento affrontando problemi reali e studiando su materiale non strettamente didattico
-
STELLATO ARMANDO
( programma)
Introduzione al Paradigma OO, e a Java come linguaggio “puramente ad oggetti”, Gli Oggetti , Classi ed oggetti, Operatori, Controllo del flusso di esecuzione di un programma, Inizializzazione e eliminazione di oggetti, Controllo dell’accesso, Riuso di classi, Polimorfismo, Interfacce, Classi interne, Strutture dati, Gestione degli Errori: le Eccezioni, Tipi di dato, Generics (..e cosa li differenzia dai Template del C++), Arrays, I/O, Tipi enumerati, Meta-programmazione: le Annotazioni, Cenni su Programmazione Concorrente, Cenni sulla gestione della grafica, Cenni sulle novità di Java 8 e Java 9, Gestione OO di progetti e gestione avanzata delle dipendenze, Gestione avanzata di dipendenze a compile time: Maven, Gestione avanzata dipendenze a run-time: OSGi
 Thinking in Java (4th edition), ISBN-10: 0131872486 | ISBN-13: 978-0131872486 ulteriore compendio allo studio: Sun Java Tutorials
|
6
|
ING-INF/05
|
48
|
-
|
-
|
-
|
Attività formative caratterizzanti
|
ITA |