Informatica
Laurea Magistrale
A Milano
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Descrizione
-
Tipologia
Laurea Magistrale
-
Luogo
Milano
Il Corso di Laurea in Informatica nasce con l'obiettivo di formare laureati in grado di fare fronte a tutte le esigenze della società dell'informazione. Il laureato in Informatica è dotato di una preparazione culturale di base ad ampio spettro, che gli permetterà sia di seguire con successo il continuo progredire delle tecnologie, sia di accedere ai livelli di studio universitario successivi. La preparazione tecnica del laureato in Informatica gli consente inoltre un rapido inserimento nel mondo del lavoro nel settore delle tecnologie dell'informazione e della comunicazione, e un successivo avanzamento in carriera verso ruoli di responsabilità. Nel percorso formativo, la comprensione della tecnologia informatica e il suo utilizzo nella risoluzione di problemi sono integrati con una solida preparazione scientifica-metodologica di base. L'integrazione tra tecnologia e fondamenti scientifici è la caratteristica distintiva del corso di laurea, che consente ai laureati di comprendere l'evoluzione tecnologica, interpretarne i contenuti, prevederne gli effetti, individuarne le applicazioni, e di ampliare la propria capacità di risolvere problemi. Oltre alle competenze tecniche e scientifiche necessarie per l'attività professionale, il laureato in informatica acquisisce quel bagaglio di competenze trasversali necessarie per comunicare con altri specialisti tecnico-scientifici per cooperare con loro, comprendere e produrre documentazione tecnica, valutare gli aspetti economici, riconoscere e analizzare i vincoli legislativi in materia informatica. Ogni anno di corso è articolato su due semestri, ciascuno comprendente almeno 12 settimane di attività didattica. I corsi di insegnamento prevedono che la formazione di base sia accompagnata da esercitazioni, e talvolta da attività progettuali e di laboratorio . L'acquisizione delle competenze è verificata e valutata, per ciascun insegnamento, per mezzo di verifiche scritte, prove orali o realizzazioni progettuali,...
Sedi e date
Luogo
Inizio del corso
Inizio del corso
Profilo del corso
INFORMATICA
Corso di laurea
Descrizione
Piano di studi
Sbocchi professionali
Sbocchi professionali
La laurea in Informatica consente la prosecuzione, senza debiti formativi, verso le Lauree Magistrali in Informatica, in Informatica e Networking e in Data Science and Business Informatics e consente inoltre di partecipare all’Esame di Stato per l’abilitazione alla professione di ingegnere junior (Albo professionale – Sezione B degli Ingegneri junior – Settore dell’informazione). I laureati in Informatica svolgeranno attività professionali negli ambiti della progettazione, organizzazione e gestione di sistemi informatici, nelle imprese produttrici di tecnologia per l’informazione e per le reti di comunicazione. Opereranno attivamente nelle amministrazioni e nei laboratori che adottano sistemi informatici nelle proprie organizzazioni. Tra le posizioni più richieste l’analista programmatore e sistemista, il consulente commerciale, l’esperto di logistica per le imprese, l’esperto in linguaggi e tecnologie multimediali, l’esperto di sicurezza dei sistemi informatici, l’esperto di sistemi informativi territoriali, il progettista di architetture software, il progettista di software applicativo, il progettista e amministratore di basi di dati e sistemi informativi, il progettista e amministratore dei siti Web.
Percentuale di impiego dei laureati
Opinioni
Materie
- Algebra lineare
- Semantica
- Laboratorio
- Logica
- DBMS
- Cache
- C
- C#
- Aritmetica
- Memoria
- Condizionamento
- Meccanismi
- Programmazione
- Calcolo
- C++
- Algebra
- Algoritmi
- Reti
- Modellazione
- Strutture
Programma
Analisi matematica (9 cfu)
- Fornire i primi strumenti di analisi matematica intesi sia come tecniche di calcolo che come esempi di ragionamento logico deduttivo.
Contenuti
Numeri reali e numeri complessi.
Successioni: principali proprietà.
Prime definizioni legate al concetto di funzione di una variabile reale. Le principali funzioni elementari. Limiti di funzioni.
Infinitesimi ed infiniti. Funzioni continue e funzioni derivabili: principali proprietà. Ricerca dei punti di massimo e di minimo. Convessità. Formula di Taylor. Studio di una funzione e del suo grafico.
L'integrale e le sue proprietà; teorema fondamentale del calcolo integrale. Metodi di integrazione. Cenni su equazioni differenziali lineari del I e II ordine e a variabili separabili.
Contenuti
Numeri reali e numeri complessi.
Successioni: principali proprietà.
Prime definizioni legate al concetto di funzione di una variabile reale. Le principali funzioni elementari. Limiti di funzioni.
Infinitesimi ed infiniti. Funzioni continue e funzioni derivabili: principali proprietà. Ricerca dei punti di massimo e di minimo. Convessità. Formula di Taylor. Studio di una funzione e del suo grafico.
L'integrale e le sue proprietà; teorema fondamentale del calcolo integrale. Metodi di integrazione. Cenni su equazioni differenziali lineari del I e II ordine e a variabili separabili.
Programmazione I e laboratorio (12 cfu)
- Introduzione alla risoluzione di problemi e alla programmazione con esercitazioni in laboratorio.
Contenuti
Grammatiche libere
Presentazione del Linguaggio funzionale Caml
Programmazione funzionale
Presentazione del Linguaggio imperativo C (rappresentazione numerica, funzioni, procedure, parametri, puntatori)
Programmazione imperativa (array, liste, ecc.)
Definizione di un interprete in Caml del Linguaggio Imperativo
Contenuti
Grammatiche libere
Presentazione del Linguaggio funzionale Caml
Programmazione funzionale
Presentazione del Linguaggio imperativo C (rappresentazione numerica, funzioni, procedure, parametri, puntatori)
Programmazione imperativa (array, liste, ecc.)
Definizione di un interprete in Caml del Linguaggio Imperativo
Fisica (6 cfu)
- Introduzione ai principi e al metodo scientifico della fisica classica.
Sistemi di riferimento e coordinate, cinematica e dinamica dei sistemi elementari nella modellazione newtoniana.
Simmetria, invarianza e leggi di conservazione.
Modellazione dei processi della dinamica dei punti materiali e dei fenomeni elettromagnetici.
Modellazione di processi naturali deterministici.
Sistemi di riferimento e coordinate, cinematica e dinamica dei sistemi elementari nella modellazione newtoniana.
Simmetria, invarianza e leggi di conservazione.
Modellazione dei processi della dinamica dei punti materiali e dei fenomeni elettromagnetici.
Modellazione di processi naturali deterministici.
Algoritmica e laboratorio (12 cfu)
- Progettazione e analisi di algoritmi. Risoluzione di problemi con strutture dati. Attivita' di programmazione in laboratorio.
Breve introduzione a problemi computazionali, indecidibilità, e trattabilità.
Complessità computazionale: limiti superiori e inferiori.
Tecniche di analisi: Relazioni di Ricorrenza, analisi ammortizzata e analisi competitiva.
Tecniche algoritmiche: Divide et Impera, Programmazione Dinamica, Greedy.
Algoritmi per Sequenze: ricerca e ordinamento
Algoritmi per Alberi: ricorsione, visite, e rappresentazioni.
Dizionari: Alberi bilanciati, Tabelle hash, Trie.
Algoritmi e strutture di dati randomizzate.
Algoritmi per Grafi: rappresentazione, algoritmi di visita, Albero di Copertura Minimo, Cammini Minimi (Dijkstra).
Breve introduzione a problemi computazionali, indecidibilità, e trattabilità.
Complessità computazionale: limiti superiori e inferiori.
Tecniche di analisi: Relazioni di Ricorrenza, analisi ammortizzata e analisi competitiva.
Tecniche algoritmiche: Divide et Impera, Programmazione Dinamica, Greedy.
Algoritmi per Sequenze: ricerca e ordinamento
Algoritmi per Alberi: ricorsione, visite, e rappresentazioni.
Dizionari: Alberi bilanciati, Tabelle hash, Trie.
Algoritmi e strutture di dati randomizzate.
Algoritmi per Grafi: rappresentazione, algoritmi di visita, Albero di Copertura Minimo, Cammini Minimi (Dijkstra).
Matematica discreta e algebra lineare (12 cfu)
- MODULO DI MATEMATICA DISCRETA
• Insiemi, relazioni, funzioni
• Principio di induzione e definizioni per ricorrenza
• Il concetto di cardinalità e calcolo combinatorio
• Aritmetica e congruenze
• Polinomi e fattorizzazione
MODULO DI ALGEBRA LINEARE
• Spazi vettoriali e basi
• Sistemi lineari e loro intepretazione geometrica
• Matrici e determinanti
• Risoluzione di sistemi lineari
• Polinomio caratteristico e criteri di diagonalizzabilità di operatori lineari
• Insiemi, relazioni, funzioni
• Principio di induzione e definizioni per ricorrenza
• Il concetto di cardinalità e calcolo combinatorio
• Aritmetica e congruenze
• Polinomi e fattorizzazione
MODULO DI ALGEBRA LINEARE
• Spazi vettoriali e basi
• Sistemi lineari e loro intepretazione geometrica
• Matrici e determinanti
• Risoluzione di sistemi lineari
• Polinomio caratteristico e criteri di diagonalizzabilità di operatori lineari
Logica per la Programmazione (6 cfu)
- Obiettivi:
Obiettivo del corso è la presentazione del calcolo proposizionale e del calcolo del primo ordine e la loro applicazione alla specifica di programmi e alla dimostrazione di correttezza dei programmi in base alla logica di Hoare.
Contenuti:
Il concetto di enunciato dichiarativo
Sintassi della logica proposizionale
Semantica della logica proposizionale (tabelle di verità)
Leggi per il calcolo proposizionale e dimostrazioni
Sintassi della logica del primo ordine
Semantica della logica del primo ordine (interpretazioni, modelli ecc.)
Leggi per il calcolo del primo ordine e dimostrazioni
Specifica di proprietà di programmi
Prova di correttezza di programmi mediante il calcolo delle triple di Hoare
Obiettivo del corso è la presentazione del calcolo proposizionale e del calcolo del primo ordine e la loro applicazione alla specifica di programmi e alla dimostrazione di correttezza dei programmi in base alla logica di Hoare.
Contenuti:
Il concetto di enunciato dichiarativo
Sintassi della logica proposizionale
Semantica della logica proposizionale (tabelle di verità)
Leggi per il calcolo proposizionale e dimostrazioni
Sintassi della logica del primo ordine
Semantica della logica del primo ordine (interpretazioni, modelli ecc.)
Leggi per il calcolo del primo ordine e dimostrazioni
Specifica di proprietà di programmi
Prova di correttezza di programmi mediante il calcolo delle triple di Hoare
Conoscenza della lingua inglese (3 cfu)
Programmazione II (9 cfu)
- Programmare come progetto e verifica di astrazioni, gerarchie di macchine virtuali e supporto run-time.
Contenuti
Programmazione orientata ad oggetti. Il nucleo del linguaggio Java: classi, oggetti, ereditarietà, astrazioni sui dati (specifica e implementazione, tecniche di verifica induttiva), astrazione mediante gerarchie, polimorfismo à la Java
Strutture a run time: ambiente, memoria, heap; blocchi, sottoprogrammi, records di attivazione, pila dei records di attivazione; oggetti; interpretazione, compilazione.
Contenuti
Programmazione orientata ad oggetti. Il nucleo del linguaggio Java: classi, oggetti, ereditarietà, astrazioni sui dati (specifica e implementazione, tecniche di verifica induttiva), astrazione mediante gerarchie, polimorfismo à la Java
Strutture a run time: ambiente, memoria, heap; blocchi, sottoprogrammi, records di attivazione, pila dei records di attivazione; oggetti; interpretazione, compilazione.
Sistemi Operativi e laboratorio (12 cfu)
- Principi e concetti per la gestione delle risorse di un sistema di elaborazione.
Laboratorio di programmazione di sistema.
Contenuti
MODULO DI SISTEMI OPERATIVI
Funzioni, struttura e componenti dei Sistemi Operativi
- Nucleo e Processi
- Gestione dei processi e del processore: concorrenza e sincronizzazione tra processi e tra thread, scheduling
- Gestione della memoria, memoria virtuale e cache
- Gestione dei dispositivi di I/O e di memoria di massa
- Sistema di archiviazione e gestione degli archivi
MODULO DI LABORATORIO DI PROGRAMMAZIONE DI SISTEMA
- Unix e la shell bash
- Utilizzo di C in ambiente GNU per lo sviluppo di applicazioni di sistema
- Programmazione di sistema: file system, processi e memoria, thread
- Meccanismi di IPC: Pipe, Socket, Segnali
Laboratorio di programmazione di sistema.
Contenuti
MODULO DI SISTEMI OPERATIVI
Funzioni, struttura e componenti dei Sistemi Operativi
- Nucleo e Processi
- Gestione dei processi e del processore: concorrenza e sincronizzazione tra processi e tra thread, scheduling
- Gestione della memoria, memoria virtuale e cache
- Gestione dei dispositivi di I/O e di memoria di massa
- Sistema di archiviazione e gestione degli archivi
MODULO DI LABORATORIO DI PROGRAMMAZIONE DI SISTEMA
- Unix e la shell bash
- Utilizzo di C in ambiente GNU per lo sviluppo di applicazioni di sistema
- Programmazione di sistema: file system, processi e memoria, thread
- Meccanismi di IPC: Pipe, Socket, Segnali
Ricerca operativa (6 cfu)
- Conoscenze: L’insegnamento ha l’obiettivo di fornire le conoscenze di base di Ricerca Operativa.
Obiettivi: L’insegnamento ha l’obiettivo di fornire gli strumenti per costruire modelli matematici di ottimizzazione, l’analisi di tali modelli e i metodi risolutivi.
ARGOMENTI
MODELLI MATEMATICI DELLA RICERCA OPERATIVA.
PROGRAMMAZIONE LINEARE.
PROGRAMMAZIONE LINEARE SU RETI.
PROGRAMMAZIONE LINEARE INTERA.
Obiettivi: L’insegnamento ha l’obiettivo di fornire gli strumenti per costruire modelli matematici di ottimizzazione, l’analisi di tali modelli e i metodi risolutivi.
ARGOMENTI
MODELLI MATEMATICI DELLA RICERCA OPERATIVA.
PROGRAMMAZIONE LINEARE.
PROGRAMMAZIONE LINEARE SU RETI.
PROGRAMMAZIONE LINEARE INTERA.
Basi di dati (6 cfu)
- Fornire le basi scientifiche e metodologiche per la progettazione, la realizzazione e l'uso di basi di dati relazionali.
Contenuti
I sistemi informativi e informatici. Funzionalità dei sistemi per la gestione di basi di dati (DBMS).
I meccanismi di astrazione dei modelli dei dati a oggetti. La progettazione di basi di dati usando il modello a oggetti.
Il modello dei dati relazionale. La trasformazione di schemi a oggetti in schemi relazionali
Il linguaggio SQL per creare e usare basi di dati. Interrogazioni semplici, giunzioni, quantificazioni esistenziali ed universali, raggruppamento.
La teoria relazionale delle basi di dati. Le dipendenze fra i dati. Decomposizioni di schemi relazionali. Forme normali.
Architettura dei DBMS.
Contenuti
I sistemi informativi e informatici. Funzionalità dei sistemi per la gestione di basi di dati (DBMS).
I meccanismi di astrazione dei modelli dei dati a oggetti. La progettazione di basi di dati usando il modello a oggetti.
Il modello dei dati relazionale. La trasformazione di schemi a oggetti in schemi relazionali
Il linguaggio SQL per creare e usare basi di dati. Interrogazioni semplici, giunzioni, quantificazioni esistenziali ed universali, raggruppamento.
La teoria relazionale delle basi di dati. Le dipendenze fra i dati. Decomposizioni di schemi relazionali. Forme normali.
Architettura dei DBMS.
Calcolo numerico (6 cfu)
- Uso e valutazione delle metodologie di risoluzione di problemi del calcolo scientifico. Analisi degli aspetti computazionali, quali il condizionamento dei problemi esaminati, la stabilita' e la complessita' dei metodi proposti.
Contenuti
Rappresentazione dei numeri reali e analisi dell'errore numerico: errori di arrotondamento, aritmetica di macchina e propagazione degli errori.
Condizionamento di un problema e complessità computazionale di un algoritmo numerico.
Metodi iterativi per le equazioni non lineari: i principali metodi e lo studio della loro convergenza.
Metodi numerici per l'algebra lineare: i principali metodi diretti e iterativi per la risoluzione di sistemi lineari.
Interpolazione e integrazione numerica: il polinomio di interpolazione, le formule di quadratura interpolatorie.
Contenuti
Rappresentazione dei numeri reali e analisi dell'errore numerico: errori di arrotondamento, aritmetica di macchina e propagazione degli errori.
Condizionamento di un problema e complessità computazionale di un algoritmo numerico.
Metodi iterativi per le equazioni non lineari: i principali metodi e lo studio della loro convergenza.
Metodi numerici per l'algebra lineare: i principali metodi diretti e iterativi per la risoluzione di sistemi lineari.
Interpolazione e integrazione numerica: il polinomio di interpolazione, le formule di quadratura interpolatorie.
Architettura degli elaboratori (9 cfu)
- Basi scientifiche e tecnologiche per comprendere le caratteristiche dei sistemi di elaborazione ai vari livelli e la loro relazione con gli strumenti di programmazione. Strutturazione dei sistemi mediante moduli concorrenti e cooperanti.
Contenuti
Metodologia di strutturazione di sistemi di elaborazione:
Strutturazione a livelli o macchine virtuali, moduli concorrenti e comunicanti; componenti per reti logiche; livello dell'architettura firmware, unità di elaborazione e comunicazioni.
Livello della macchina assembler e processori: modi di indirizzamento, puntatori, procedure; modalità di compilazione per linguaggi imperativi (C); architettura base di processori general-purpose; valutazione delle prestazioni, benchmarking, impatto di architetture Risc vs Cisc
Architettura globale dell'elaboratore: architettura base di CPU, memorie e ingresso-uscita; supporto a processi e thread; supporto all'allocazione statica e dinamica della memoria.
Architetture ad alte prestazioni e tendenze: memorie cache; architetture pipeline, superscalari/multithreading, multicore.
Contenuti
Metodologia di strutturazione di sistemi di elaborazione:
Strutturazione a livelli o macchine virtuali, moduli concorrenti e comunicanti; componenti per reti logiche; livello dell'architettura firmware, unità di elaborazione e comunicazioni.
Livello della macchina assembler e processori: modi di indirizzamento, puntatori, procedure; modalità di compilazione per linguaggi imperativi (C); architettura base di processori general-purpose; valutazione delle prestazioni, benchmarking, impatto di architetture Risc vs Cisc
Architettura globale dell'elaboratore: architettura base di CPU, memorie e ingresso-uscita; supporto a processi e thread; supporto all'allocazione statica e dinamica della memoria.
Architetture ad alte prestazioni e tendenze: memorie cache; architetture pipeline, superscalari/multithreading, multicore.
Ingegneria del software (6 cfu)
- Il corso introduce i problemi della produzione di sistemi software e illustra alcuni processi di sviluppo software. Viene presentato in dettaglio un processo di sviluppo guidato dai modelli, definendo modelli statici e modelli dinamici per le principali fasi del processo: analisi del dominio, analisi dei requisiti, progettazione architettonica e dettaglio. Infine si affronta il tema della verifica: obiettivi e pianificazione delle verifiche, progettazione e valutazione delle prove.
Calcolo delle probabilita' e statistica (6 cfu)
- Assimilare le principali nozioni di Calcolo delle Probabilita' ed essere in grado di utilizzare le procedure base dell'inferenza statistica (eseguire una stima e pianificare un test statistico).
Contenuti
Spazi di probabilità, probabilità condizionata e indipendenza, formula di Bayes.
iali) disponibili sul mercato da utilizzare per fornire anche una conoscenza pratica dell'argomento
...
Hai bisogno di un coach per la formazione?
Ti aiuterà a confrontare vari corsi e trovare l'offerta formativa più conveniente.
Informatica