Corso di laurea magistrale - Area di Ingegneria - Accesso libero con verifica del possesso dei requisiti curriculari - Classe LM-32 (D.M. 270/2004)
Informazioni generali
Descrizione e obiettivi formativi
Formare laureati che abbiano un elevato livello di competenze metodologiche e operative sia su temi avanzati di natura informatica e dell'automazione che su temi di natura matematica-statistica. In particolare, laureati che abbiano capacità di affrontare con rigore formale problematiche di ricerca informatica proponendo soluzioni originali e innovative, come anche problemi informatici di tipo manageriale-ingegneristico proponendo soluzioni effettive ed efficienti.
Il corso assicura una conoscenza approfondita delle metodologie e tecnologie dell'informazione e della comunicazione alla base del funzionamento dei moderni sistemi informatici (paralleli, distribuiti, mobili) basati su Internet e Web: algoritmi, architetture, linguaggi, metodi di sviluppo software dedicati a questi sistemi.
Le aree tematiche coperte includono: Architettura di sistemi basati su Internet e Web. Algoritmi e architetture per la gestione di grandi quantità di dati (“big data”). Metodi di progettazione e sviluppo di applicazioni software complesse. Gestione e progettazione di software “open source”. Architetture e progetto di applicazioni per sistemi mobili. Sistemi basati su cloud. Sicurezza nei sistemi informatici e in Internet. Verifica della correttezza di sistemi software. Analisi e sviluppo della qualità nei sistemi informatici. Dinamica e controllo dei robot industriali e dei robot di servizio. Progettazione dei dispositivi e dei sistemi per il controllo dinamico degli impianti e dei sistemi di produzione. Modellistica e controllo di sistemi ecologici e sociali.
Sbocchi professionali
I Laureati magistrali possono lavorare nell’ambito della libera professione e nelle società di consulenza, all’interno di imprese manifatturiere o di servizi, nelle amministrazioni pubbliche. Sanno svolgere attività di progettazione avanzata, pianificazione, sviluppo e gestione di reti, impianti e sistemi informatici complessi (Internet e Web, mobili, basati su cloud, Big Data), attività di ricerca su temi avanzati dell’informatica e delle reti, attività di formazione avanzata su temi di natura informatica. In particolare, si occupano di - progettazione di sistemi, servizi e applicazioni web, - tecnologie ICT per l'impresa in rete, l'energia, la salute, i trasporti, la sicurezza, - dimensionamento, progettazione ed esercizio di sistemi Internet, impianti di telecomunicazione, sistemi di telerilevamento ambientale, -gestione di infrastrutture di rete fisse e mobili e dei relativi utenti/clienti, -marketing nelle telecomunicazioni, -commercio elettronico, -direzione aziendale e di progetti di ICT.
Condizione occupazionale (indicatori di efficacia e livello di soddisfazione dei laureandi):
http://statistiche.almalaurea.it/universita/statistiche/trasparenza?CODICIONE=0580207303300002
Valutazione della didattica - Studenti
Anno accademico precedente
Riferimenti web e contatti
Sito Web: http://inginformatica.uniroma2.it/index.php/laurea_magistrale
Coordinatrice:
Prof. Vittoria de Nitto Personè
Email denitto@ing.uniroma2.it
Segreteria didattica:
Dott. Maria Luisa Cottone e Sig. Maria Beatrice Giambenedetti
Tel. 06 7259 7003
e-mail: didattica.informatica@ing.uniroma2.it
Edificio Ingegneria civile
Dipartimento di Ingegneria Civile e Ingegneria Informatica
Per ulteriori informazioni consulta anche il sito web di Facoltà:
http://ing.uniroma2.it/didattica/corsi-di-laurea/
Introduction to optimization: modeling approach Optimization issues: classification Statistical learning: general concepts. Linear Regression: simple and multivariate regression. Variable reduction techniques: shrinkage (Ridge and Lasso) and Subset selection. Unconstrained optimization: optimal conditions, solution algorithms: global convergence conditions, line search, gradient method, stochastic gradient method. Neural networks: perceptron, multi layer perceptron, RBF networks. Training: batch and online methods. Deep networks: convolutional networks, image recognition.
Reverse Code Engineering basic techniques: "black box" and "white box" methodologies. Static analysis of the code. Virtual machines. Intel x86 Assembly language. Practical usage of IDA Pro and Ghidra. Reconstruction of a high-level language code fragment from the Assembly instructions. Exercises on static analysis for Windows malware. RCE methodology "gray box". Using debuggers for code analysis. Usiing IDA Pro debugger, OllyDbg, WinDbg for Windows program analysis. Malware functionalities: general behaviour. Basic operations: launch, data encoding, communications. Anti-RCE mechanisms: anti-disassembler, anti-debugging, and anti-sandboxing techniques. Packers and unpackers. Special cases: shellcode analysis and object-oriented code analysis.
Not anailable
Course introduction. Applications of ML to SE Intro to Software measurement. Software measurement. Functionsl & Non-functional Sw. Measurements. Software measurement. FP-Size Measurement of UML Documented Sw. Estimating Software Cost Software measurement. Estimating Software Cost: CoCoMo. Improvement models: CMMI and GQM+ Introduction to ML: terminology Intro To Enterprise IT SZZ-Linking and Snoring Enterprise IT Infrastructure Reqs Case Study + Assegn. Homework Snoring and proportion Measuring metrics in Git/JIRA Milestone: Building the dataset Homework review Using the WEKA GUI Esonero Accuracy Metrics & Comparing classifiers accuracy The promises and perils of mining GitHub, Milestone: Using the WEKA API Feature Selection Sampling Project management Project management Cost sensitive classifier "Milestone: On the combined effect of sampling and featureselection techniques on classifiers accuracy" Cost estimation + planning poker Industrial case study How to make a presentation
Introduction to modelling: – performance evaluation and modelling techniques • Queueing systems – single and multi resources systems • Simulation models: – trace driven, event driven, next event – statistical methods for output analysis • Analytical models: – basic results – the Operational approach – product forms, Markov processes • Applications: – server farms – wireless networks and internet applications – resource allocation – QoS management
General issues of sustainable computing. Software architectures for sustainable computing: architectural strategies and tactics ((self-)adaptation, cyberforaging). Computing architectures: cloud/edge continuum.
Primality testing and factoring: RSA cryptosystem, Miller-Rabin primality test. Algorithms for factoring integers: Pollard Rho method, Pollard (p-1) method, elliptic curve method, quadratic sieve. Algorithms for solving the discrete logarithm problem: Baby-step- Giant-Step, Index calculus. Primality proving algorithms: Pocklington-Lehmer test, Goldwasser-Kilian test.
The course is organized in the following main areas: 1) basic cryptography and network security: attacks, countermeasures, security services, basic cryptographic constructions (stream ciphers, block ciphers and modes, hash functions, Merkle-Damgard Construction, NMAC and HMAC, pseudo random functions, key management, public key algorithms, digital signatures, etc); 2) authentication and network protocol support: basics, PPP PAP and CHAP and relevant extensions, one time passwords, EAP, authentication in 3G, RADIUS and relevant vulnerabilities; DIAMETER, Public Key Infrastructure; 3) in-depth analysis of TLS and IPsec: basics, handshake, key management with RSA, nonymous/fixed/ephemeral Diffie-Hellman and integration in TLS; perfect forward secrecy; TLS record; MAC and encryption composition (and vulnerabilities); attacks to TLS with CBC (BEAST); attacks to TLS messaging (padding oracle, side channel attacks); attacks to TLS compression (CRIME), attacks to TLS session integrity (truncation attack), attacks to TLS handshake (renegotiation attack), attacks to TLS RSA key transport (Bleickenbacker's Oracle and recent implementation attacks such as ROBOT); key derivation hierarchy and PRFs, KDFs; Brief introduction to TLSv1.3 and differences with respect to v1.2. Comparative analysis of TLS vs IPsec, VPN with IPsec, IKE. 4) advanced cryptographic approaches: trivial secret sharing, Shamir' secret sharing, commitments and verificable secret sharing (Feldman, Pedersen); Secure Multiparty Computation based on secret sharing; Pedersen's distributed key generation; linear secret sharing and access control matrices; threshold cryptography; threshold signatures and issues with threshold RSA (why Shoup's construction); basics of elliptic curve cryptography; ECDH; ECDSA; bilinear maps (pairing based cryptography) and example constructions (Joux 3-way DH, Boneh/Franklin Identity Based Encryption, brief intro to Attribute Based Encryption). 5) miscellaneous topics: TESLA, Merkel Trees and their applications, Blockchains. Further topics may be optionally addressed in dedicated talks by invited experts, depending on the year (touching selected aspects of system security, intrusion detection and network protection, security certification, etc).
AMOD is a master's course on the theory and applications of discrete optimization. After a review of the basic notions of linear programming and the simplex method, integer (and mixed integer) linear programming (MIP) are addressed in more detail together with some references to problems on networks. MIP methods: Chvatal-Gomory cuts, implicit enumeration methods, branch and bound and combinatorial branch and bound, Dynamic Programming. Linear formulation of a MIP and its quality. Non Compact formulations. Explicit and implicit descriptions of a polyhedron. Column generation methods (pricing problems) and constraint generation (Separation). Examples: Cutting Stock, Shortest (s, t)-path. Relaxation of an integer optimization problem (Lagrangian, surrogate, relaxations etc.) Approximation algorithms: basic notions and algorithms examples for Vertex-Cover and Euclidean TSP. Primal-dual approximation methods: Weighted Vertex-Cover. Randomized algorithms for deterministic discrete optimization. Case studies: Facility Location and dual ascent methods. Network optimization: min-cost flow problems. Network simplex method.
Teachers of the Software Construction course are prof. dipl. eng. Giovanni Cantone and dr. dipl. eng. Manuel Mastrofini, PhD. The course outline includes: - Evolution of the Ontologies for Software Measurement. - Briefing on Software Design Patterns. - Briefing on Architectures and Languages for Web Software Applications. - The Evolution of the Agile Approach to Software Development. - From Requirements Elicitation to Development of an Industry-like Software Product by using Scrum.
Introduction to Big Data: motivations, issues and challenges. Big Data storage systems: distributed file systems, NoSQL data stores and NewSQL databases; case studies: HDFS, Dynamo, Bigtable, HBase, Cassandra and Neo4j. Lab: HDFS, Redis, MongoDB, HBase, Neo4j. Systems for Big data acquisition and ingestion; pub/sub systems and message queues, collection systems; case studies: Kafka, Flume, Nifi, and Sqoop. Lab: Kafka. Systems for batch processing. Case studies: Hadoop, Spark. Lab: Hadoop, Spark, Spark SQL. Stream data processing systems. Case studies: Flink, Heron, Spark Streaming, Storm. Advanced solutions for the joint processing of batch and streaming data. Lab: Flink, Spark Streaming, Kafka Streaming. Big Data applications: design patterns, analysis of existing applications. Cloud services for Big data (AWS and GCP Cloud providers). Framework for cluster resource management; case study: Mesos. Introduction to distributed machine learning and federated learning.
Part one Introduction to parallel programming concepts. The MPI programming model: - Environment, data types; - Point-to-point communications: blocking, non-blocking, communication semantics - Collective communications: global, non-blocking, neighbour-collectives, persistent communications - Derived data types; - Groups, communicators, topologies - One-sided communications Application examples. The PGAS programming models: CoArrays, UPC. Part two: shared memory programming The OpenMP programming model; - Thread programming, execution model, memory coherence issues; - Parallel regions, parallelization directives; - Loop parallelization; - Memory handling; - Task programming; Application examples. Part three: CUDA - Graphics accelerators - CUDA programming - Tools and application examples
Hardware insights Pipelining and super-scalar processors Speculative hardware Multi-processors and multi-cores Physical memory organization Memory coherency and consistency Hardware synchronization support Advanced interrupt architectures Kernel Internals Addressing and software protection models Kernel access GATEs System calls dispatching System level memory management Advanced management of interrupts System (kernel) scalability Virtual file system structures Software interactions with the memory hierarchy Advanced thread coordination approaches Security System security aspects Authentication and habilitation Protection domains and secure operating systems System internal attacks and countermeasures IDS and Reference Monitor architectures Attacks at the border between hardware and software Case studies: Linux kernel 2.4/2.6/3.xx/4.xx (x86 architectures) Boot basics Main data structures and initialization Steady state behavior Kernel hacking Modules
Not anailable
1. Basic Ideas in Finance: investments; investment evaluation; arbitrage; risk aversion; financial markets, bonds, stocks. 2. Basic Models in Finance: single-period investment model; present value and payoff of a single-period investment; payoff, interest, return, rate of return, present value, discount, rate of discount; investment decision; arbitrage; risk aversion; multiple-period investment model: linear, compounded, and continuously compounded rate of interest. 3. Review of Probability Theory and Statistics: probability spaces; random vectors; moments of a random vector; variance-covariance and correlation of a random vector; cross-covariance and cross-correlation; independence and conditioning; sequences of random variables; modes of convergence of a sequence of random variables; Laws of Large Numbers; Central Limit theorem; basic of inferential statistics; estimators; method of moments; likelihood functions; confidence intervals; hypothesis testing; simple and multiple linear regression, OLS estimators. 4. Stochastic Processes and Time Series; basic on stochastic process, stationary and ergodic processes; white noises and random walks; MA models; AR models; ARMA models; ARIMA models; ARCH and GARCH models; structural breaks. 5. Risk-Free Financial Asset: bonds; rate of return and duration of a bond; risk in “risk-free” bonds; spot and forward interest rates; the term structure of interest rate; models for interest term structure and their estimate. 6. Risky Financial Asset: present value and pay off of a risky financial asset; arbitrage. 7. Portfolio Theory: capital asset pricing model (CAPM); Capital Market Line; systematic and idiosyncratic risk; the Greeks; APT; arbitrage price theory (APT ); APT versus CAPM. 8. Derivatives: forward and futures; options; European and American options; Put-Call parity. 9. Single Period Binomial Market Model: price dynamics; risk-neutral pricing; arbitrage portfolio; hedging portfolio and European option pricing; calibration of the single period binomial model. 10. Multi-period Discrete Time Market Model: discrete time Markov processes and martingales; equivalent martingale probability; arbitrage pricing; Fundamental Theorem of Asset Pricing; complete markets; multiple period binomial model; calibration of the multiple period binomial model; binomial model and Black & Scholes formula; trinomial model; risky asset pricing in a trinomial model; American options. 11. Continuous Time Market Model: continuous time stochastic processes; continuous time Markov processes and martingales; Wiener process and Brownian motion; Ito stochastic integral; Ito stochastic differential equations; Ito formula; geometric Brownian motion; Black-Scholes models for European Options Pricing; Ornstein-Uhlenbeck Equations; mean-reverting processes; mean-reverting models for the dynamics of commodities prices and exchange rates; efficient markets. 12. Case Study: statistical analysis, model calibration and model estimate of the Standard and Poor 500 and Nasdaq 100 composite indices and derivatives.