Corso di laurea - Area di Scienze MM.FF.NN. - Accesso libero con prova di verifica obbligatoria delle conoscenze richieste per l'ammissione.L'esito della prova non preclude la possibilità di immatricolarsi (D.M. 270/04) - Classe L-31
Lingua: Italiano
Informazioni generali
o Classe di Laurea: L-31 (D.M. 270/04)
o Tipologia di corso: Laurea
o Durata: 3 anni
o Tipo di accesso: Accesso libero con verifica delle competenze in ingresso
o Area di afferenza: Scienze Matematiche, Fisiche e Naturali
o Dipartimento: Ingegneria dell’Impresa Mario Lucertini
o Codice corso: H02
Descrizione e obiettivi formativi
Il corso fornisce conoscenze nei vari settori delle scienze e tecnologie dell'informazione volte a una gestione consapevole dei sistemi informatici, nell'uso come nella progettazione e nello sviluppo.
Lo studente acquisisce un'adeguata conoscenza dei settori di base dell'informatica, nonché dei lineamenti fondamentali e degli strumenti di supporto della matematica. Il percorso didattico prevede: acquisizione di nozioni di base di fisica e di matematica sia discreta sia del continuo; conoscenza dei principi, dei modelli teorici e delle architetture dei sistemi di elaborazione e delle reti di comunicazione; conoscenza dei fondamenti teorici dell'informatica, dei principali modelli di calcolo e della teoria dei linguaggi; - conoscenza e utilizzazione dei sistemi operativi; acquisizione di elementi di analisi e progettazione degli algoritmi e delle strutture dati; acquisizione delle moderne metodologie e linguaggi di programmazione; assimilazione dei principi per la progettazione e la realizzazione dei sistemi per la gestione delle basi di dati e le tecnologie correlate; acquisizione delle tecniche di progettazione e realizzazione di sistemi informatici.
Un congruo numero di crediti è riservato a corsi di laboratorio ed esercitazioni, anche offerte da altri corsi.
Sono previsti tirocini formativi presso aziende, enti di ricerca, e strutture della pubblica amministrazione o attività progettuali sostitutive, e l'incentivazione di soggiorni di studio presso università straniere nel quadro di accordi internazionali.
Sbocchi professionali
Per la natura pervasiva dell'informatica nell'ambito delle diverse attività economiche, le competenze acquisite sono richieste ed applicabili in un ampio spettro di contesti.
Tra questi, in particolare: attività tecniche per servizi di supporto alle attività istituzionali delle amministrazioni pubbliche; installazione, gestione e sviluppo di sistemi informatici; supporto ad attività di ricerca in università o enti di ricerca pubblici o privati; progettazione, sviluppo, integrazione, personalizzazione e gestione di sistemi ed applicazioni software; gestione di sistemi informativi e basi di dati; sicurezza informatica; attività di supporto per lo sviluppo e la gestione di infrastrutture e servizi nell'ambito delle telecomunicazioni e, in particolare, dell'accesso a internet; gestione di reti di telecomunicazioni fissa e mobile; gestione di reti di trasmissione di programmi radiotelevisivi via cavo, satellite, ripetitori terrestri; gestione e monitoraggio di reti di trasmissione dati; fornitura di accesso a Internet (provider).
Condizione occupazionale (Indicatori di efficacia e livello di soddisfazione dei laureandi):
http://statistiche.almalaurea.it/universita/statistiche/trasparenza?CODICIONE=0580206203100001
Valutazione della didattica - Studenti
Anno accademico precedente
Riferimenti web e contatti
Sito Web Macroarea: http://www.scienze.uniroma2.it
Sito Web Corso: http://www.informatica.uniroma2.it/
Coordinatore del Corso:
Prof. Roberto Basili
tel: +39 06 7259 7391
e-mail:basili@info.uniroma2.it
Segreteria didattica: Sig. Francesco Stillitano (Dipartimento Ingegneria dell'Impresa )
tel.: +39 06 7259 7503
email: segreteriadidattica.informatica@uniroma2.it
I laureati nei corsi di laurea della classe possiedono conoscenze nei vari settori delle scienze e tecnologie dell'informazione sia mirate all'uso e alla gestione consapevole di sistemi informatici, sia mirate alla loro utilizzazione nella progettazione e sviluppo di sistemi informatici.
A tale scopo il laureato ha acquisito un'adeguata conoscenza dei settori di base dell'informatica nonché dei lineamenti fondamentali e degli strumenti di supporto della matematica. Pertanto, il percorso didattico prevede: - l'acquisizione di nozioni di base di fisica e di matematica sia discreta che del continuo; - la conoscenza dei principi, dei modelli teorici e delle architetture dei sistemi di elaborazione e delle reti dicomunicazione; - la conoscenza dei fondamenti teorici dell'informatica, dei principali modelli di calcolo e della teroria dei linguaggi; - la conoscenza e l'utilizzazione dei sistemi operativi; - l'acquisizione di elementi di analisi e progettazione degli algoritmi e delle strutture dati; - l'acquisizione delle moderne metodologie di programmazione nonché la conoscenza dei più importanti linguaggi di programmazione; - l'assimilazione dei principi per la progettazione e la realizzazione dei sistemi per la gestione delle basi di dati e le tecnologie correlate; - l'acquisizione delle tecniche di progettazione e realizzazione di sistemi informatici; Il percorso didattico prevede l'acquisizione di conoscenze in settori affini. Il percorso didattico comprende inoltre: - un congruo numero di crediti riservato a corsi di laboratorio oltre che ad esercitazioni di laboratorio eventualmente previste in altri corsi, - lo svolgimento di tirocini formativi presso aziende, enti di ricerca, e strutture della pubblica amministrazione o attività progettuali sostitutive. Si prevede anche l'incentivazione di soggiorni di studio presso università straniere nel quadro di accordi internazionali.
Possesso di diploma di scuola secondaria superiore o di altro titolo di studio conseguito all'estero e riconosciuto idoneo. La precisazione delle conoscenze richieste e la specificazione delle modalità di verifica vengono rimandate al regolamento didattico del corso di studio, dove saranno altresì indicati gli obblighi formativi aggiuntivi previsti nel caso in cui la verifica non sia positiva.
Il corso di laurea triennale in Informatica a Tor Vergata punta a formare degli specialisti informatici che abbiano acquisito i fondamenti della cultura informatica e che, essendo in grado di applicare tali principi, si pongano come specialisti ad uno stesso tempo competenti e flessibili in settori quali la progettazione, lo sviluppo e la gestione delle applicazioni software.
Il percorso di studi prevede, quindi, sia un insegnamento teorico che uno più pratico.
Questo significa ovviamente molto spazio al laboratorio, alle esercitazioni con e senza tutor e, per preparare all'ingresso nel mondo del lavoro, gli stage.
La prova finale per il conseguimento della Laurea in Informatica consiste nella redazione di un elaborato di Tesi finale e della discussione dei suoi principali aspetti metodologici con una Commissione 'dedicata' formata da due docenti del CdL, per un tempo di circa 50-60 minuti.
Infine, la presentazione collegiale alla Commissione da parte dello studente avviene con un tempo di circa 15 minuti, inclusivi d domande da parte dei Commissari.
La valutazione finale avviene seduta stante e recepisce il parere della Commisione 'dedicata'.
Segue la proclamazione pubblica.
Sono ammessi al corso di laurea gli studenti in possesso di un diploma di scuola secondaria superiore o di altro titolo di studio conseguito all'estero riconosciuto idoneo.
Gli aspiranti debbono, nei tempi prestabiliti dall'apposito bando, presentare domanda di iscrizione al Corso di Laurea, secondo le modalità definite dall'Ateneo, allegando i titoli di cui sono in possesso. Il bando viene pubblicato sulla pagina web della Macroarea di Scienze Matematiche, Fisiche e Naturali (http://www.scienze.uniroma2.it/).
la pubblicazione del bando viene segnalata con un avviso sul sito del Corso di Laurea (http://www.informatica.uniroma2.it).
Sempre con uno specifico avviso sullo stesso sito si segnala la disponibilità di eventuali premi per i migliori risultati ottenuti nel test. Per l'ammissione al corso di Laurea in informatica viene assunto il possesso, e in caso contrario richiesta l'acquisizione, di una adeguata preparazione iniziale sugli argomenti di base di cui all'elenco in Appendice al Regolamento (pubblicato sul sito web del Corso di Laurea). Il recupero di eventuali obblighi formativi aggiuntivi potrà essere effettuato mediante frequenza di opportuni corsi di recupero, offerti nell'ambito delle attività didattiche, specificati sulla Guida dello Studente.
Sempre con uno specifico avviso sul sito web del Corso di Laurea si segnala la disponibilità di tali corsi di recupero.
-Sistema dei numeri: Numeri Naturali, Interi, Razionali, Reali e Complessi. -Limiti di successioni e funzioni di variabile reale. -Derivata, applicazioni allo studio di funzioni di variabile reale. -Calcolo integrale di Riemann, Teorema fondamentale del calcolo integrale, tecniche di integrazione di funzioni elementari. -Polinomi di Mac Laurin e Taylor. -Serie e integrali impropri. -Equazioni differenziali a variabili separabili, equazioni lineari omogenee e non omogenee a coefficienti costanti. -Calcolo differenziale per funzioni a più variabili: continuità, differenziabilità e matrice Jacobiana, estremi locali e matrice Hessiana
vedere http://www.mat.uniroma2.it/brenti/opa.pdf
NTRODUZIONE (PAC 1 LIBRO 1) • Organizzazione COMPUTER STRUTTURATO • TAPPE IN ARCHITETTURA DEL COMPUTER • IL COMPUTER ZOO • UNITÀ METRICA COMPUTER SYSTEMS ORGANIZZAZIONE (PAC 2 Libro 1) • PROCESSORI • memoria principale • memoria secondaria • INPUT OUTPUT LA LOGICA livello digitale (PAC 3 Libro 1) • CANCELLI E algebra booleana • circuiti logici di base DIGITALI • MEMORIA • CHIPS CPU E AUTOBUS • CHIPS ESEMPIO CPU • AUTOBUS ESEMPIO • Interfaccia IL LIVELLO microarchitettura (PAC 4 LIBRO 1) • UN ESEMPIO microarchitettura • UN ESEMPIO ISA: ijvm Il set di istruzioni ARCHITETTURA LIVELLO (PAC 5 LIBRO 1) • PANORAMICA DEL LIVELLO ISA • TIPI DI DATI • formati delle istruzioni • AFFRONTARE • tipi di istruzioni • flusso di controllo Il livello di sistema operativo della macchina (PAC 1,2,3,4,5,6 LIBRO 2) • Introduzione O Sistemi operativi CHIAMATE O SISTEMA O SISTEMA OPERATIVO STRUTTURA • PROCESSI E FILO O PROCESSI O FILETTI o Interprocess COMUNICAZIONE o PROGRAMMAZIONE • GESTIONE DELLA MEMORIA o NO ASTRAZIONE MEMORIA o Spazio indirizzo o la memoria virtuale O Algoritmi PAGINA DI RICAMBIO • FILE SYSTEM o FILE O DIRECTORIES o Sistema di file di implementazione • INPUT OUTPUT O PRINCIPI DI I / O HARDWARE O PRINCIPI DEL SOFTWARE I / O O STRATI SOFTWARE / O O DISCHI O OROLOGI IL LIVELLO Assembly Language (PAC 7 LIBRO 1) • Introduzione al linguaggio Assembler • MACRO • il processo di assemblaggio • COLLEGAMENTO E CARICO Architetture parallele computer (PAC 8 LIBRO 1 e CAP 8 LIBRO 2) • On-Chip PARALELISM • COPROCESSORE • multiprocessori • multi-computer • Virtualizzazione • sistemi distribuiti
Verranno trattari i seguenti temi: risoluzione automatica dei problemi; algoritmi e programmi; modelli di calcolo; linguaggi di programmazione; tipi di linguaggi di programmazione; compilazione ed interpretazione; linguaggi imperativi. linguaggio di programmazione C: struttura di un programma; tipi di dati semplici e strutturati; variabili; strutture di controllo; puntatori; funzioni; ricorsione; operazioni di input/output; strutture di dati elementari. Introduzione al linguaggio di programmazione Python. Algoritmi elementari di ricerca e ordinamento.
Introduzione allo studio della Fisica. Moto in una dimensione. Vettori. Moto in due dimensioni. Le leggi del moto. Ulteriori applicazioni delle leggi di Newton. Energia e trasferimento di energia. Energia potenziale, Quantità di moto, urti e introduzione alla dinamica dei sistemi di punti materiali. Moto rotazionale e dinamica dei corpi rigidi. Orbite planetarie: leggi di Keplero e legge di gravitazione universale. Moto armonico. Temperatura, leggi dei gas ideali e teoria cinetica dei gas. Primo principio della termodinamica. Secondo principio della termodinamica. Entropia. Elementi di elettrostatica ed elettrodinamica classica.
Algebra lineare ( I°parte) • Lo spazio dei vettori numerici reali a ! componenti Definizione e proprietà di combinazioni lineari, indipendenza e dipendenza lineare tra vettori numerici. • L’algebra delle matrici reali Il linguaggio delle matrici e le principali operazioni (somma, prodotto, matrice trasposta, inversa, triangolare). Metodo di eliminazione di Gauss (per righe) e riduzione a scala di una matrice. • Sistemi di equazioni lineari omogenei e non omogenei Risoluzione con l’algoritmo di Gauss • Determinanti Metodo di Laplace (per righe e per colonne), proprietà, calcolo del determinante con il metodo di eliminazione di Gauss, relazione tra l’annullamento del determinante di una matrice quadrata e la dipendenza lineare delle righe (o delle colonne) Matrice inversa, calcolo dell’inversa con l’algoritmo di Gauss. La regola di Kramer. Algebra lineare (II°parte) • Spazi vettoriali sul campo reale e su F2. • Sottospazio vettoriali • Basi e dimensione di uno spazio vettoriale. • Intersezione e somma di due sottospazi vettoriali. Formula di Grassmann • Matrici e applicazioni lineari Nucleo, Immagine, teorema principale. Il codice di Hamming. Geometria'analitica' • Lo spazio vettoriale dei vettori geometrici Interpretazione geometrica delle operazioni di somma e prodotto per uno scalare. Interpretazione geometrica della dipendenza e indipendenza lineare di vettori geometrici, Prodotto scalare di due vettori geometrici. Basi ortonormali dello spazio dei vettori geometrici. Prodotto scalare in Rn e formula di Shwartz. • Sistemi di coordinate cartesiane nello spazio. Equazioni parametriche e cartesiane di un piano. Equazioni parametriche di una retta. Relazioni di parallelismo e perpendicolarità tra rette e piani.
Intelligenza Artificiale: fondamenti e storia dell’IA. Fondamenti filosofici dell’IA. IA e etica. Agenti Intelligenti: definizione. Agenti Razionali e Ambiente Operativo. Metodi di Soluzione dei Problemi: Ricerca, Ottimizzazione, Giochi, Soddisfazione di Vincoli. Risoluzione di Problemi attraverso la Ricerca automatica. Strategie di Ricerca non informate ed euristiche. Alpha–Beta Pruning. Problemi a Soddisfazione di Vincoli. Propagazione dei Vincoli: Inferenza nei CSPs. Conoscenza: Rappresentazione e Uso. Dimostrazione dei teoremi in logica proposizionale. Ingegneria della conoscenza in Logica del Primo Ordine. Inferenza in Logica del Primo Ordine. Modelli di Rappresentazione della Conoscenza alternativi: reti semantiche e frame. Ragionamento e Pianificazione. Agenti Logici. Agenti basati su conoscenza. Pianificazione Classica. Algoritmi di Pianificazione come ricerca negli spazi di stato. Rappresentazione della conoscenza. Ingegneria delle Rappresentazioni Ontologiche. Ragionamento ontologico. Incertezza, Conoscenza e Ragionamento. Ragionamento Probabilistico. Machine Learning. Apprendimento da esempi. Reti neurali artificiali. Apprendimento e Rappresentazione della Conoscenza. Programmazione Logica Induttiva (Inductive Logic Programming). Apprendimento di Modelli Probabilistici. Comunicazione, percezione e azione negli agenti intelligenti. Trattamento Automatico delle Lingue (Natural Language Processing), Percezione, Robotica.
1. Progettare algoritmi efficienti. Riepilogo delle tecniche più efficaci per progettare algoritmi efficienti: Greedy, Divide et Impera, Programmazione dinamica, Riduzioni. 2. Problemi computazionalmente difficili. La teoria dell'NP-completezza da un punto di vista algoritmico. Affrontare i problemi computazionalmente difficili: ricerca esaustiva, algoritmi approssimanti, euristiche. I problemi computazionalmente difficili come risorsa: il protocollo RSA e i fondamenti della crittografia a chiave pubblica. La matematica dietro le scene: Teoria dei numeri. 3. Algoritmi probabilistici. Il ruolo della "randomness" negli algoritmi: (1) progettare algoritmi più semplici; (2) progettare algoritmi più efficienti; (3) rompere la simmetria. Le tecniche per analizzare gli algoritmi probabilistici. 4. Alcune semplici idee algoritmiche che hanno avuto un impatto significativo: (1) i motori di ricerca e il problema del "ranking". La matematica dietro le scene: Algebra lineare e catene di Markov. (2) Cenni ad algoritmi on-line e algoritmi che "imparano". (3) "Cryptocurrencies": Le idee algoritmiche che hanno dato vita a Bitcoin e alla Blockchain. Gli ingredienti: reti Peer-to-Peer, funzioni hash crittografiche e firme digitali.
1.Metodi di simulazione discreta 2.Simulazione parallela e distribuita 3.Simulazione guidata da tracce e da distribuzioni 4.Analisi dei risultati in simulazione 5.Convalida di esperimenti di simulazione 6.Simulazione con linguaggi generali (Java e C++) 7.Simulazione con linguaggi speciali (JMT) 8.Applicazioni allo studio dei sistemi Informatici e Reti.
PROGRAMMA: Basi Java: Introduzione a java, Programmazione ad oggetti, Design pattern per la programmazione ad oggetti. Programmazione con IDE come Eclipse. Android OS: Introduzione alla programmazione su terminali mobili, App Android, Risorse per le APP, Creazione di APP, Creazione di elementi grafici, gestione delle comunicazioni. J2EE: Programmazione java per server, basi di JSP, interfacce REST
Spazi di probabilità. Probabilità condizionata. Formula delle probabilità totali. Formula di Bayes. Eventi indipendenti. Cenni di calcolo combinatorio. Introduzione alle variabili aleatorie. Funzione di distribuzione. Variabili aleatorie discrete e distribuzioni discrete di uso comune (ipergeometrica, binomiale, geometrica, binomiale negativa, Poisson). Variabili aleatorie discrete multidimensionali. Variabili aleatorie discrete indipendenti. Speranza matematica, momenti, varianza e covarianza per variabili aleatorie discrete. Disuguaglianza di Cebichev. Regressione lineare. Variabili aleatorie continue e distribuzioni continue di uso comune (uniforme, esponenziale, normale, Gamma). Processo di Poisson. Speranza matematica, momenti e varianza per variabili aleatorie continue. Legge dei grandi numeri. Teorema limite centrale. Approssimazione normale.
Introduzione -Modelli Relazionali - Algebra Relazionale - Calcolo Relazionale - Flusso di progetto di un DB - Modello Concettuale dei Dati - Schema logico di un DB - Entity-relationship Schema - Schema fisico di un DB - Forme Normali - Query language e MySQL - DML - SQL - Organizzazione Fisica dei Dati -Ottimizzazione degli indici - Normalizzazione vs Denormalizzazione - Ottimizzazione delle Query ------ MySQL e ottimizzazione - Transazioni ------ Protocolli Two Phases Locking, Timestamp,MVCC ------ MySQL e Storage Engine - Active Databases ------ Trigger e Stored Procedure ------ Cursor, Trigger e Stored Procedure in MySQL ------ GIS - Distributerd Architectures ------ Protocollo Two Phases Commit - Data Warehouse ---- Data Mining- Evoluzione dei Database ------ Basi di dati NoSQL- MongoDB- CRUD operations Simulazione Progetto
Parte I: Sistemi operativi (I semestre) • Introduzione ai sistemi operativi. • Storia e classificazione dei sistemi operativi. • Principali modelli strutturali. • Gestione dei processi. • Threads. • Sincronizzazione dei processi. • Gestione della memoria. • Gestione dell’ I/O. • Gestione del file system. • I sistemi operativi Unix e Linux. • Casi di studio: Unix e Linux Parte II: Reti di calcolatori (II semestre) • Reti di calcolatori e Internet. • Strato di applicazione. • Strato di trasporto. • Strato di rete e instradamento. • Strato di collegamento e reti di area locale. • Reti wireless
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.
Programma Prima Parte: Il ciclo di vita del software Gestione dei requisiti software (Principalmente). Design (Cenni). Sviluppo (Cenni). Verifica e validazione (Cenni). Il linguaggio di modellazione UML e il suo uso nell'analisi dei requisiti.
PROGRAMMA Errori di arrotondamento Metodi numerici per equazioni non lineari Metodi numerici per sistemi lineari (solo metodi iterativi) Interpolazione Integrazione Numerica
PROCESSO SOFTWARE Pianificazione di progetti di sviluppo software, progetto preliminare, progetto dettagliato. Qualità del software e fattori di qualità. ARCHITETTURE, STANDARD E TECNOLOGIE DI PRODUZIONE SOFTWARE . Architetture basate su componenti, architetture orientate ai servizi. Model-driven Engineering (MDE) e approccio MDE basato su Model Driven Architecture (MDA). Standard MDA (MOF, XMI, etc.). Cenni su linguaggi e strumenti di model transformation (QVT, ATL, etc.).
Intelligenza Artificiale: fondamenti e storia dell’IA. Fondamenti filosofici dell’IA. IA e etica. Agenti Intelligenti: definizione. Agenti Razionali e Ambiente Operativo. Metodi di Soluzione dei Problemi: Ricerca, Ottimizzazione, Giochi, Soddisfazione di Vincoli. Risoluzione di Problemi attraverso la Ricerca automatica. Strategie di Ricerca non informate ed euristiche. Alpha–Beta Pruning. Problemi a Soddisfazione di Vincoli. Propagazione dei Vincoli: Inferenza nei CSPs. Conoscenza: Rappresentazione e Uso. Dimostrazione dei teoremi in logica proposizionale. Ingegneria della conoscenza in Logica del Primo Ordine. Inferenza in Logica del Primo Ordine. Modelli di Rappresentazione della Conoscenza alternativi: reti semantiche e frame. Ragionamento e Pianificazione. Agenti Logici. Agenti basati su conoscenza. Pianificazione Classica. Algoritmi di Pianificazione come ricerca negli spazi di stato. Rappresentazione della conoscenza. Ingegneria delle Rappresentazioni Ontologiche. Ragionamento ontologico. Incertezza, Conoscenza e Ragionamento. Ragionamento Probabilistico. Machine Learning. Apprendimento da esempi. Reti neurali artificiali. Apprendimento e Rappresentazione della Conoscenza. Programmazione Logica Induttiva (Inductive Logic Programming). Apprendimento di Modelli Probabilistici. Comunicazione, percezione e azione negli agenti intelligenti. Trattamento Automatico delle Lingue (Natural Language Processing), Percezione, Robotica.
1.Metodi di simulazione discreta 2.Simulazione parallela e distribuita 3.Simulazione guidata da tracce e da distribuzioni 4.Analisi dei risultati in simulazione 5.Convalida di esperimenti di simulazione 6.Simulazione con linguaggi generali (Java e C++) 7.Simulazione con linguaggi speciali (JMT) 8.Applicazioni allo studio dei sistemi Informatici e Reti.