General objectives: – It is intended to provide students with knowledge to enable them to understand and identify emerging techniques and methods to support software development and to develop the capacity to identify and instantiate technological infrastructures supporting the construction and operation of complex, modular, distributed and developed software in collaborative way in short and demanding circuits. Specific objectives: i) Understand the emerging changes and challenges associated with the software development lifecycle requirement. ii) Understand trends / approaches associated with the development of business WEB platforms, and the models and / or approaches underlying them. iii) Identify tools and mechanisms that support the stages of software construction and integration. iv) Design and operationalize technological infrastructures that allow to accelerate the construction and delivery of functional software in a collaborative way.



Objectives: 1. Know and to identify applicability scenarios for different methodologies for data storage; 2. Identify all aspects for the development and implementation of a Business Intelligence system; 3. Know and apply modeling techniques and concepts for building data storage systems and explore their potential through advanced techniques for knowledge discovery; 4. Know and identify the main methods and techniques for identifying, extracting, processing and loading data; 5. Identify and apply data exploration and analysis techniques. Syllabus: 1. Relational Databases development; 2. Business Intelligence Systems planning and implementing; 3. Study and application of analytical data processing techniques; 4. Introduction to Big Data concept and associated technologies.



– Recognize the importance of human-computer interaction in the design and implementation of interactive computer systems and applications in the most diverse application areas. – Distinguish mental and conceptual models, integrating them in the design of interface solutions and Human-Computer Interaction. – Classify the various input / output devices, integrating them into the design of interface solutions and Human-Computer Interaction. – Identify, classify and integrate the principles, models and techniques of design and implementation in the development of interfaces and interactive dialogues. – Evaluate the state of creation of a user interface, both on usability as in interaction design. – Lead interface building projects and interaction rules application.



Study of the techniques, methodologies, tools and legal constrains related to the implementation of privacy enabled systems. After concluding this Curricular Unit, the student should be able to: 1. Identify problems that have impact on data privacy. 2. Know and understand privacy enhancing technologies. 3. Know and understand data anonymization techniques. 4. Know and understand techniques for the evaluation of the privacy of a system. 5. Evaluate the level of privacy of a system. 6. Implement systems on a privacy-by-design and privacy-by-default policies.



Objectives: 1. To assess and manage distributed and cloud solutions; 2. To understand and develop applications using web services; 3. To understand and develop scalable and reliable applications for cloud computing; 4. To manage infrastructure of distributed and cloud computing; 5. To analyse and discuss concrete case studies; 6. Apply the introduced concepts. Syllabus 1. Distributed computing paradigm. 2. Cloud computing paradigm.



The students should acquire skills to:
– Identify, struct and approach decision problems
– Build models for decision problems and use tools for obtaining solutions for those models
– Use the information extracted from the models to induce and motivate organizational changes

– Statistics, Regression and Monte Carlo Simulation
– Discrete Event Simulation
– Modelling Linear Programming Problems
– Resolution of Linear Programming Problems
– Heuristics and Metaheuristics



OBJ1. To know and to identify scenarios where the use of scalable technologies may provide relevant results in the context of data analysis
OBJ2. To know and design scalable architectures for data analysis that are suitable to the characteristics of each problem
OBJ3. To understand and design strategies for obtaining, pre-processing and combining different sources of data in order to create a coherent dataset for analysis
OBJ4. To know the different paradigms for data processing, being able to choose the most suitable approach for the resolution of a given problem
OBJ5. To identify common problems in data processing tasks and corresponding solution design pattern
OBJ6. To implement and manage clusters for distributed data processing
OBJ7. To master the development of data processing tasks, from the development and test in single-machine to the deployment in a production cluster
OBJ8. To apply machine learning techniques in data analysis projects

1. Introduction
a. Introductory concepts
b. Big Data: current applications
c. Big Data: challenges and opportunities
d. The SMACK stack
2. Programming Languages for data analysis
a. Languages for data processing
b. The Scala language
c. Functional programming
d. Data processing with Scala
3. Distributed processing in databases
a. Data processing in databases
b. Mongo
c. Aggregation framework
d. MapReduce
4. Batch distributed processing
a. Hadoop
b. Cluster management
d. Hadoop MapReduce
e. MapReduce design patterns
5. Distributed processing with Spark
a. Introduction to Spark
b. Data processing with Spark
c. Data acquisition and processing from HDFS
d. Data acquisition and processing from MongoDB
6. Machine Learning
a. Introduction to Machine Learning
b. Spark MLib



At the end of the curricular unit students should be able to:
1. Identify and understand the different programming paradigms that exist today for web and mobile programming;
2. Understand emerging paradigms for mbile and web developement such as such as Aspect Oriented Programming, Event Oriented Programming and the application of Functional Programming in components for web and mobile applications;
3. Identify, understand and apply software development approaches, and software patterns applied in web and mobile development;
4. Identify the concepts behind a real-time, event-driven framework.

1. Challenges in the development of web and mobile applications;
1.1 Review of the different classic programming paradigms and their applications in web and mobile programming;
1.2 Main development standards and software patterns used in web and mobile application development;
2. Introduction to modern programming paradigms applied in web and mobile development;
2.1 Overview of modern programming paradigms for web and mobile programming;
2.2 Introduction to Functional Programming and Functional Primitives in web and mobile development;
2.3 Aspect Based Programming;
2.4 Event-Driven Programming;
3. Software development approaches and software patterns applied in web and mobile development;
4. Realtime applications, Reactive Programming and the publish-subscribe model;
5. Application of programming paradigms and concepts studied in the development of Realtime and Event-Driven applications for web and mobile devices.



Considering the growth and sophistication of cyber threats, this curricular unit contributes to a better understanding of the problem and to the knowledge of the best practices to adopt in supporting the strategic, operational and tactical objectives of organisations.

At the end of this curricular unit, the student should be able to:
1. Understand the cyber threats and the motivations behind these;
2. Recognise different types of cyber threats;
3. Understand the difference between data, information and intelligence;
4. Understand the process of data acquisition, data analysis and data presentation;
5. Identify and suggest tools and sources of intelligence according to the organisation needs;
6. Support organisations in assessing their situational awareness on cyber threats;
7. Design, manage or support the implementation of cyber intelligence and awareness programs.

1. Cyber threats
– Types of threats
– Motivations
– The threats business
– Use/show cases
2. Cyber Intelligence
– The intelligence cycle (sigint, osint, humint, imint, geoint, masint)
– Types of intelligence (strategic, operational, tactical)
– Denial and deception
– Cyber (threat) intelligence
– The cyber intelligence professional
3. Building a cyber intelligence model
– The anatomy of an attack
– Limitations traditional security solutions
– Approaching cyber attacks
– Incorporating the intelligence lifecycle into security workflow
4. Building and maintaining a cyber intelligence program
– Data gathering
– Data analysis and presentation
– Do it internally, externally or both?
5. Intelligence sharing
– Threat Intelligence Platforms
– Communities (CERTs, CSIRTs, ISACs, …)
– Interoperability efforts (openIOC, CyBox, STIX, TAXII, …)
6. Cyber situational awareness
– Cyber Common Operating Picture
– Critical Infrastructure and Key Resources
– Continuous Assessment



1. Distinguish a physical identity from a digital identity;
2. Understand the identity problematic in the digital world, its management and its relationship with a physical identity;
3. Identify the main characteristics and requirements of the various types of identity management applications and their relationship with access control management.

1. Specify solutions that allow the control of physical and logical accesses, equipment and installations;
2. Identify identity management services (for example, SSO, LDAP, AD);
3. Understand and differentiate single-factor and multi-factor authentication systems (eg, authentication, strength, biometrics);
4. Register and identify uses of identity;
5. Identifier of federated identity management services (eg SAML, OpenID);

1. Control physical and logical access to assets
2. Identification management and authentication of persons and devices
3. On-premise identity services
4. Cloud identity services
5 Identity and Life Cycle Management



At the end of this subject, students should be able to:

G1: Understand the industry shop floor dynamics;
G2: Understand and characterise industrial processes;
G3: Understand and characterise the dimensions related to the fourth industrial revolution;
G4: Design and implement technological projects for industry;

CP1: The Industry and the industrial processes
CP2: The 4th industrial revolution;
CP2.1 Reference Architectures for I4.0;
CP3: The IoT concept;
CP3.1: IoT reference architectures;
CP3.2: Standards, protocols and IoT frameworks;
CP4: IoT project