– 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.
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.
1. Software Development Life-Cycle
2. Risk Factors in Software Development phases
3. Domain-Driven Design
4. Virtualization techniques to support software development
5. Migrate monolithic applications to microservices
6. Development of modern web applications
7. Patterns for the development of microservice-based architectures
1. Know and to identify applicability scenarios for different methodologies/models and techniques 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.
1. Exploring Operational Databases
2. NoSQL Databases
2.1. Document-oriented database
2.2. Graph-oriented database
3. Business Intelligence Systems planning and implementation
3.1. Study of Data Warehousing System Architecture and Components
3.2. Study of methodologies and application for Data Warehouse implementation
3.3. Study of concepts and techniques applied to multidimensional data modeling
3.4. Hierarchy concept, its study, and implementation
4. Study and application of analytical data processing techniques
5. Introduction to Big Data concept and associated technologies
The objectives of this curricular unit are:
– know the fundamental concepts of machine learning;
– know the main techniques/algorithms according to the current state of the art;
– identify the best technique/algorithm to apply in a given scenario;
– creation of pipelines for model development;
– integration of models in software development.
More specifically, after completing this curricular unit, the student should be able to:
1. Know the fundamentals of Machine Learning
2. Know and understand the algorithms that are more used
3. Identify and apply the best algorithm given a specific scenario
4. Development of pipelines with integration of multiple models
5. Development and integration of models in software applications
1. Machine Learning Concepts
2. Linear Algebra Review
3. Machine Learning Libraries/Packages
4. Supervised Learning
a. Linear Regression
b. Logistic Regression
c. Support Vector Machines
d. Deep Learning
5. Unsupervised Learning
b. Dimensionality Reduction
6. Applying ML in large datasets
7. Case studies
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.
2. Online anonymity;
3. Privacy and mobile apps;
4. Anonymous communications;
5. Data anonymization (k-anonymity, l-diversity, t-closeness);
6. Encryption (homomorphic, proxy and searchable);
7. GDPR and Data privacy impact acessments;
8. Blockchain (cryptocurrencies, smart contracts).
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.
1. Distributed computing paradigm:
1.1. Architectures and models of distributed computing;
1.2. Distributed objects and remote invocation;
1.3. Web Services;
1.4. Replication and Consistency.
2. Cloud computing paradigm:
2.1. Architectures and applications of cloud computing;
2.2. Infrastructures (grid computing, virtualization, edge computing, cycle-sharing);
2.4. Resource management (scheduling, migration, scalability, reliability).
The general objectives of this course are:
– Identify, understand and characterize Virtual Reality and Augmented Reality projects
– Design, evaluate and develop applications in the field of Virtual Reality and Augmented Reality
More specifically, after completing this course the student should be able to:
I) Know the existing challenges in the development of applications for Virtual Reality and Augmented Reality;
II) Structure and distinguish the different components of a functional application of Virtual Reality and Augmented Reality;
III) Understand the use of frameworks and software standards used in the implementation of Virtual Reality and Augmented Reality components;
IV) Integrate principles of Computer Vision and object tracking in Augmented Reality applications integration between real world images and virtual object images;
V) Recognize examples of applications for Virtual Reality and Augmented Reality projects.
1 – Introduction to Virtual Reality (VR), Augmented Reality (AR) and Mixed Reality (MR)
2 – Architecture of VR and AR systems and main components used
3 – Study of an example of a VR and AR framework
3.1 – Characterization of an VR and AR framework
3.2 – Overlapping virtual and real resources
3.3 – Description of the processing phases of AR applications: recognition and tracking of recognized patterns / objects
4 – Computer vision and dedicated algorithms for object recognition and tracking in virtual and real environments
4.1 – Characterization of a computer vision system and its application in RA
4.2 – Introduction to image acquisition, processing and analysis techniques
4.3 – Application of deep learning models to detect objects / patterns
4.4 – Application of computer vision algorithms and frameworks in VR and AR applications
5 – Examples of VR and AR applications in Industry 4.0
– Provide a set of seminars in the scientific areas of the studies cycle that show the state of the art of Innovation and Research in the field of Informatics Engineering;
– Promote contact with organizations and personalities with relevant activity in advanced areas of Informatics Engineering;
– Develop the ability to acquire and deepen knowledge through presentations held in a seminar environment.
After concluding this curricular unit, the student should be able to:
OB1. Identify relevant dissertation/project/internship topics;
OB2. Prepare and present a dissertation/project/internship proposal;
OB3. Write and review a scientific/technical paper.
CP1. Invited talks.
CP2. Topics for dissertation/project/internship.
CP3. Dissertation/project/internship proposals.
It is intended that students acquire skills for:
1. Identify, structure, and address decision problems.
2. Build models for decision problems.
3. Applying methods, techniques, and tools to simulate and solve problems that involve the operation of a system.
4. Use the information extracted from the models to induce and motivate organizational changes.
1. Modelling and Simulation of Discrete Events.
2. Modelling linear programming problems.
3. Linear programming – graphic resolution, Simplex method, and Solvers
4. Heuristics – constructive and local search.
5. Metaheuristics – bio-inspired and non-bio-inspired.
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
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
c. Aggregation framework
4. Batch distributed processing
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 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