Tuition fee EU nationals (2025/2026)
3000.00 €Programme Structure for 2025/2026
| Curricular Courses | Credits | |
|---|---|---|
| 1st Year | ||
|
Deep Learning Fundamentals
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Deep Learning for Computer Vision
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Advanced Topics in Deep Learning
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Societal Artificial Intelligence
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Topics in Intelligent Robotics
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
High Performance Graphical Computing
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Generative Language Models
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Intelligent Models Engineering
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Computational Optimization
6.0 ECTS
|
Mandatory Courses | 6.0 |
Deep Learning Fundamentals
At the end of this curricular unit, each student should be able to:
LO1: Understand the fundamental principles of deep learning and recognize the differences from traditional machine learning, relating them to real problems.
LO2: Identify and explain the main layers, techniques and architectures of deep networks, understanding their suitability for different types of data and challenges.
LO3: Apply frameworks such as Keras and PyTorch to implement deep learning models, from data preparation to training and inference.
LO4: Adjust and evaluate model performance, interpreting metrics, analyzing results and proposing improvements.
LO5: Solve real problems by collaborating with other students on case studies and projects, developing analytical, communication and teamwork skills.
S1: Introduction to deep learning: key concepts, history, distinction from traditional machine learning.
S2: Convolutional, dense, recurrent layers, normalization, dropout, activation functions and regularization techniques.
S3: Selection and application of appropriate techniques for different types of data such as 2D/3D images, univariate and multivariate time sequences.
S4: Practical introduction to the TensorFlow, Keras and PyTorch frameworks, development of simple models and analysis of results.
S5: Pre-existing architectures (e.g., ResNet, VGG, U-Net) and their reuse, transfer of learning and fine-tuning of pre-trained models.
S6: Performance metrics, interpretation of results, identification of bottlenecks, optimization proposals and fine-tuning.
S7: Exploration of real case studies, from the definition of the challenge, data modeling, implementation and training of the model, to critical analysis and presentation of the results.
Due to its practical nature, this curricular unit follows the model of assessment throughout the semester (provided for in the RGACC), without a final exam, and has the following composition:
- 2 Quizzes (20%):
Several short online quizzes will be made available throughout the semester for individual completion.
Carried out individually, they aim to gauge understanding of theoretical and practical content as it is introduced, allowing for quick and continuous feedback.
No minimum mark will be required for the quizzes, but their completion will help to consolidate learning.
- Mini-Project (30%):
In this mini-project carried out in groups, the student develops a simple deep learning application, from data preparation to the first functional version of the model.
The ability to implement, the clarity of the code and the correct use of the tools covered are assessed.
- Final Project (50%):
The Final Project, carried out in groups, is more complex and requires the integration of layers, architectures and advanced techniques.
Optimization of the model, critical analysis of results and the ability to propose improvements are valued.
This project consolidates all the skills acquired.
To pass the curricular unit, the student must achieve a minimum final mark of 10, resulting from the weighted sum of the quizzes (20%), the Mini-Project (30%) and the Final Project (50%).
Each assessment component (quizzes, mini-project and final project) has a minimum mark of 8.5.
A minimum mark of 10 is required for the final grade.
If the student fails the curricular unit, they will be considered to have failed.
A student is considered to have failed if they do not pass the semester-long assessment (quizzes + project) for this curricular unit.
The grade can be improved in the following academic year by repeating the assessment components, in accordance with the regulations in force.
The 1st Season and 2nd Season can be used for assessment.
Attendance at synchronous sessions is not compulsory.
In addition to the RGACC, students should consult the Regulations for Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
"1. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. 2. Godoy, D. V. (2022). Deep learning with PyTorch step-by-step: A beginner’s guide: Volume I: Fundamentals. 3. Chollet, F. (2021). Deep Learning with Python (2.ª ed.). Manning.
1. Stevens, J., Antiga, L., & Viebranz, T. (2020). Deep Learning with PyTorch. Manning. 2. Patterson, J., & Gibson, A. (2017). Deep Learning: A Practitioner’s Approach. O’Reilly."
Deep Learning for Computer Vision
At the end of the curricular unit, each student should be able to:
LO1: Represent images in different color spaces and in the frequency domain.
LO2: Apply typical image processing operations.
LO3: Extract low-level features from images.
LO4: Implement machine learning systems for image classification using classical algorithms.
LO5: Identify and Explain the architecture of convolutional neural networks (CNNs) and understand their operation.
LO6: Solve image classification problems of medium complexity using CNNs.
LO7: Apply knowledge transfer and fine-tuning methodologies with pre-trained CNNs.
LO8: Use deep learning algorithms to identify objects in images.
LO9: Identify and Describe deep learning algorithms for automatic multimedia content generation.
LO10: Manipulate images using OpenCV and develop machine learning applications with TensorFlow.
LO11: Demonstrate examples of applications of computer vision techniques.
PC1: Image representation.
PC2: Image operations.
PC3: Image feature extraction.
PC4: Introduction to machine learning.
PC5: Artificial neural networks.
PC6: Architecture and operation of convolutional neural networks (CNNs).
PC7: Transfer learning.
PC8: CNN architectures for object detection and identification.
PC9: Network architectures for automatic multimedia content generation.
PC10: Development of practical applications in computer vision and machine learning.
Assessment will take place throughout the semester, through two group assignments, each worth 40% of the final grade, and a quiz taken individually, worth 20%.
Each of the assessment components has a minimum mark of 8 and a final mark of at least 10 is required to pass the course.
The group assignment marks depend on the outcome of an oral discussion. The discussion may impose a limit on the assignment's grade if the performance shown by the student is below the quality of the delivered work; the student may even fail if performance shown in the discussion is not sufficient.
Given the practical nature of the course, there is no exam.
Grades can only be improved by repeating the assessment process the following year.
"Feature Extraction and Image Processing for Computer Vision, 4th Edition, M. Nixon e Alberto Aguado, Academic Press, 2019 Deep Learning, I. Goodsfellow, Y. Bengio e A. Courville, MIT Press, 2016 Learning OpenCV 4 with Python 3, 3rd Edition, Joseph Howse, Joe Minichino, Packt Publishing, 2020 Tutoriais e documentação das bibliotecas OpenCV e Tensorflow
Advanced Topics in Deep Learning
At the end of the curricular unit, each student should be able to:
LO1: Understand the operation and capabilities of Generative Adversarial Networks (GANs), including their architectures and main challenges.
LO2: Design and implement solutions with GANs, covering the definition of architectures, training and the analysis of practical applications.
LO3: Understand the fundamental concepts of Deep Reinforcement Learning and apply algorithms (e.g. DQN, PPO, AlphaZero) in simulated environments.
LO4: Model and analyze time series with advanced neural networks, such as LSTMs, GRUs and transformers, adapting them to the particularities of sequential data.
LO5: Explore and implement deep genetic/evolutionary algorithms in optimization contexts, evaluating their practical applicability.
LO6: Develop practical projects that integrate multiple advanced techniques, adapting them to real or simulated scenarios, encouraging collaborative work and research skills.
S1: Concepts and fundamentals of GANs, basic architectures (DCGAN, WGAN), training process (generator vs. discriminator), challenges and practical applications (image generation, synthetic data).
S2: Review of reinforcement learning concepts, fundamental algorithms (DQN, PPO, AlphaZero), simulated environments, exploration vs. exploitation.
S3: Time series analysis with neural networks: LSTMs, GRUs and transformers for sequential data, particularities of temporal modeling (seasonality, trend), evaluation of forecasts and improvement strategies.
S4: Principles of deep evolutionary algorithms, genetic operators, adaptation strategies, use cases in hyperparameter optimization.
S5: Interpretation of advanced models, explainability and fairness techniques to promote transparency and robustness in deep models.
S6: Development of practical projects in areas such as health, banking, finance or IoT, integrating multiple advanced techniques.
The evaluation follows the model of Evaluation Throughout the Semester (foreseen in the RGACC) 100% by project/practical work, without a final exam, promoting the continuous involvement of the student. The assessment components are:
- Three mini-works (20% each)
Throughout the semester, each mini-work focuses on a specific topic:
-- Creation of a simple GAN, focusing on defining the architecture and training the generator and -discriminator.
-- Deep Reinforcement Learning model, including the choice of algorithm (DQN, PPO, etc.) and the validation of training in a simulated environment.
-- Time Series Modeling, using LSTMs, GRUs or transformers, evaluating their forecasting capacity on sequential data.
The practical implementation, the ability to analyze the results, the clarity of the code and the correct use of the libraries are evaluated in each mini-work.
The mini-works can be done individually or in groups.
There is no minimum mark for each mini-work, but the whole represents 60% of the final mark.
- Final Project (40%)
In a larger assignment, students can integrate one or more topics from the mini-assignments (GANs, Reinforcement Learning, Time Series, Deep Genetic/Evolutionary Algorithm), or explore a different scenario that requires a combination of advanced techniques. Optimization of the model, critical analysis of results, formulation of improvements and the ability to justify the technical choices made are valued. This project requires the submission of a technical report and a presentation (online) to defend the methods and conclusions, allowing communication skills and mastery of the subject to be assessed.
The final project must be carried out in groups.
The final grade results from the weighted sum of the three mini-works (20% each) and the final project (40%).
The final grade must be at least 10 points.
If the student does not achieve this mark, they are considered to have failed.
The grade can be improved in the following academic year by repeating the assessment components in accordance with the regulations in force.
Assessments can take place in the 1st and 2nd Seasons, and there is no additional final exam.
Attendance at synchronous sessions is not compulsory, but strongly recommended for the richness of the discussions and the immediate feedback on individual and collective progress.
It is also recommended to read the Regulations for Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
Societal Artificial Intelligence
At the end of the curricular unit, students should be able to:
LO1: Know the standards, laws, and ethical, social, privacy, and governance considerations related to professional practice in AI.
OA2: Critically discuss the social impact of AI and the professional issues associated with its implementation in intelligent systems, assessing the impact of delegating decisions to machines and the implications on fairness, bias, transparency, accountability, and explainability.
LO3: Justify and evaluate case studies and work by colleagues, developing critical analysis skills and argumentation skills.
LO4: Communicate effectively with different audiences, through written technical reports, visual and oral presentations, demonstrating clarity and rigor in the transmission of ideas.
LO5: Apply responsible and ethical research principles and professional practices in AI, choosing appropriate methods to analyze, theorize, and justify conclusions.
S1: Brief history of AI: historical framework, evolution of methods, trends and socio-economic contexts.
S2: How AI works: technical fundamentals, machine learning approaches, and intelligent systems.
S3: Bias, Ethics, Equity, Privacy, Robustness and Trust: critical analysis of the social, professional and legal implications.
S4: Legal and regulatory frameworks: standards, national and international laws, regulatory bodies and compliance standards.
S5: AI in the present: case studies in diverse fields (health, transport, education, security, media).
S6: Approaches and techniques to make models and decisions more transparent - XAI (Explainable AI)
S7: AI of the future: emerging topics, foresight, social and technical impact scenarios, public participation and accountability.
The evaluation, following the provisions of the RGACC, uses the typology of evaluation throughout the semester, and has the following composition:
(a) [30%] Group work in workshops:
- Development of a practical case study, presented and discussed in an online environment (forums or synchronous sessions).
(b) [20%] Individually evaluate the result of the work submitted in (d)
(c) [30%] Activities with online individual assessments (quizzes)
(d) [20%] Case study summary document (in groups)
It requires a minimum grade of 8 in all four components.
For approval, the student must obtain a final grade ≥ 10 points. Otherwise, the student fails.
Failure to pass the semester allows the option for evaluation by final exam. The exam will focus on all the contents covered (theoretical and practical), consisting of a written test and, if necessary, a complementary oral test to clarify doubts. The final exam has a weighting of 100%.
Admission to the exam is possible for those who did not pass the type of assessment throughout the semester or opted for this assessment regime, under the terms of the RGACC.
The grade improvement can be obtained by repeating the final exam in the following season, in accordance with the regulations.
Attendance at synchronous sessions is not mandatory, but recommended, due to the opportunity for direct interaction and immediate feedback.
In addition to the RGACC, the student must consult the Regulation of Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
"1. T. Miller. Explanation in artificial intelligence: Insights from the social sciences. Artificial Intelligence, 267, 1–38, 2019. 2. C. Molnar. Interpretable machine learning. A Guide for Making Black Box Models Explainable, 2019. https://christophm.github.io/interpretable-ml-book/. 3. A. Holzinger, P. Kieseberg, E. Weippl & A Min Tjoa. Current Advances, Trends and Challenges of Machine Learning and Knowledge Extraction: From Machine Learning to Explainable AI. Springer Lecture Notes in Computer Science LNCS 11015. Cham: Springer, pp. 1-8, 2018. 4. S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach. Pearson, Upper Saddle River, NJ, 2009."
"1. ALLEA The European Code of Conduct for Research Integrity, European Union, URL: https://allea.org/code-of-conduct/ 2. Artificial intelligence Act, URL: https://www.europarl.europa.eu/RegData/etudes/BRIE/2021/698792/EPRS_BRI(2021)698792_EN.pdf"
Topics in Intelligent Robotics
At the end of the curricular unit, the student should be able to:
LO1: Understand the fundamental concepts of intelligent robotics and its main applications in autonomous systems.
LO2: Implement navigation algorithms for robots in simulated environments, using the Robot Operating System (ROS).
LO3: Study sensory perception and interpretation methods that make it possible to create accurate representations of the environment, as well as developing techniques for localizing mobile robots and applying SLAM methods.
LO4: Train deep learning models in robots for tasks such as object recognition and decision making, and improve the accuracy and adaptation of robots in real-time navigation tasks.
LO5: Investigate human-robot interaction methods, with a focus on intuitive communication and collaboration in shared environments.
LO6: Design and test a robotic system integrating different types of sensors to perform autonomous mapping and localization tasks.
S1: Fundamentals of Intelligent Robotics, definition, basic concepts and applications; Main components of an intelligent robotic system and types of autonomous robots; Emerging technologies in robotics and artificial intelligence.
S2: Introduction to ROS; Navigation in simulated environments; Practical implementation of navigation algorithms using simulations.
S3: Sensory Perception and Interpretation in Robotics; Types of sensors used; Methods for acquiring and processing sensory data; Introduction to SLAM.
S4: Supervised, evolutionary, reinforcement and deep learning for robotics. Applications for object recognition, navigation and autonomous decision-making.
S5: Human-Robot Interaction and Collaboration: Fundamentals, communication interfaces, feedback and control.
Intuitive communication methods; collaborative robots (cobots).
S6: Design and Testing of Integrated Robotic Systems
The assessment of this curricular unit follows the model of assessment throughout the semester, favoring regular monitoring of student progress, as well as the development of a final project that consolidates the knowledge and skills acquired.
It has the following composition
- 4 Weekly Challenges (40%):
Throughout the semester, weekly challenges will be proposed based on mini-projects, to be submitted on the e-learning platform, which aim to assess understanding and application of the topics covered.
Each challenge will be corrected with formative feedback, allowing the student to continually improve their understanding of the content.
The final average of all the weekly challenges must be equal to or greater than 9.5 points. Otherwise, the student will be considered to have failed this component.
The weekly challenges can be done individually or in groups.
- Final Project (60%):
The final project, carried out in groups, consists of developing an integrated robotic system.
Students must design and implement a coherent solution, prepare a technical report describing the approach, the methodologies used, the results obtained and the difficulties encountered, and make an oral presentation (online) of the work, justifying the options adopted and discussing potential improvements.
The final project has a minimum mark of 9.5.
In accordance with the RGACC, the student can opt for assessment by exam (in the 1st season, 2nd season or special season).
In this case, the final project is worth 100% of the grade, replacing the weekly challenges.
The project must follow the same guidelines, including a technical report and oral presentation, and the minimum mark of 9.5 for approval is also applied.
To pass the curricular unit, the student must obtain a final mark of at least 10 points, taking into account the weighting of the weekly challenges (40%) and the final project (60%).
If they do not pass, they will be considered to have failed.
Attendance at synchronous sessions is not compulsory.
In addition to the RGACC, students should consult the Regulations for Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
"1. Thrun, S., Burgard, W.,, Fox, D. (2005). Probabilistic robotics. Cambridge, Mass.: MIT Press. ISBN: 0262201623 9780262201629 2. Chernova, S., & Thomaz, A. L. (2014). Robot learning from human teachers. Springer. 3. Craig, 1955. (1986). Introduction to robotics : mechanics & control / John J. Craig.. Reading, Mass.: Addison-Wesley Pub. Co.,. ISBN: 0201103265
High Performance Graphical Computing
By the end of this course, each student should be able to:
LO1: Explain the architecture and fundamental principles of parallel computing on GPU
LO2: Differentiate the various parallel programming approaches and select the most appropriate techniques to optimize the performance of GPU computing applications.
LO3: Implement customized CUDA kernels using the Numba framework
LO4: Demonstrate performance analysis skills, detecting and correcting computational bottlenecks and memory occupancy, communication and latency problems.
LO5: Apply cuDNN to accelerate deep learning operations by integrating optimized library routines into convolutional neural network training and inference workflows.
LO6: Develop complete solutions that combine computer graphics, parallel processing and deep learning algorithms, consolidating technical and critical thinking skills in tackling complex problems.
S1: Introduction to parallel computing and the CUDA architecture, concepts of task parallelization, block and thread structure, GPU memory hierarchy
S2: Development of CUDA kernels, grid modeling, optimization of access to global, shared and constant memory, memory coalescing techniques.
S3: Compilation for GPU using Numba, parallelization of environments using GPU.
S4: Execution profiles, identifying computational bottlenecks, adjusting grid and block parameters, strategies for reducing the use of global memory.
S5: Introduction to cuDNN: Main routines and functionalities, integration with data structures and deep learning frameworks
S6: Case studies and practical applications, simulation and training of convolutional neural networks
As this curricular unit is very practical and application-oriented, it follows the semester-long assessment model (provided for in the RGACC) and does not include a final exam.
The assessment for this curricular unit is as follows:
- 2 Quizzes (20%):
Throughout the semester, two short quizzes will be made available, which will be taken individually on the e-learning platform.
- Final Project (80%):
The final project consists of the development of a practical work that brings together the knowledge and skills acquired throughout the semester, where external organizations / companies may participate in the proposed challenge.
This project will be developed throughout the semester and will be accompanied by individual or group tutoring, in order to guarantee continuous follow-up and formative feedback.
The assessment of the Final Project (80%) will be phased as follows:
-- 1st Tutorial (20%): In this phase, the student presents the initial planning of the project, including the definition of the problem and the objectives to be achieved with the project.
-- 2nd Tutorial (20%): In this second phase, the focus is on the technical progress of the project. The student should demonstrate the partial code already developed, present partial performance tests and discuss the first optimization strategies. Continuous improvement of the work is expected, benefiting from feedback from the teacher.
-- Final Tutorial (40%): In the last phase, the student presents the final version of the project, including all the functional code, detailed performance analysis, discussion of the results obtained, the difficulties faced and the solutions adopted. Critical analysis skills, clarity of communication and the relevance of the results are also assessed.
The three tutorials together (1st, 2nd and Final) make up 80% of the assessment, and each tutorial has a minimum mark of 8.5.
In order to be approved in this curricular unit, the student must achieve a minimum final mark of 10, resulting from the weighted sum of the quizzes (20%) and the final project (80%).
The quizzes, carried out individually, aim to gauge understanding of the theoretical and practical content as it is introduced, allowing for quick and continuous feedback. No minimum mark will be required for the quizzes, but their completion contributes to the consolidation of learning and has a weight of 20% in the final grade.
A student is considered to have failed if they do not pass the semester-long assessment for this curricular unit.
The grade can be improved in the following academic year by repeating the assessment components, in accordance with the regulations in force.
The 1st Season and 2nd Season can be used for assessment.
Attendance at synchronous sessions is not compulsory.
In addition to the RGACC, we recommend reading other reference documents for the assessment process, such as the Regulations for Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
"1. Tuomanen, B. (2018). Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA. Packt Publishing. 2. 1. Kirk, D. B., & Hwu, W.-M. W. (2016). Programming Massively Parallel Processors: A Hands-on Approach 3. Storti, D., & Yurtoglu, M. (2016). CUDA for engineers: An introduction to high-performance parallel computing (1st ed.). Addison-Wesley Professional.
4. Wilt, N. (2013). The CUDA Handbook: A comprehensive guide to GPU programming (1st ed.). Pearson Education. 5. Cook, S. (2013). CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs. Morgan Kaufmann. 6. Sanders, J., & Kandrot, E. (2011). CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley."
Generative Language Models
At the end of the curricular unit, each student should be able to:
LO1. Understand the theoretical foundations of large language models (LLMs) and the Transformer architecture.
LO2. Explore training and fine-tuning techniques for customizing LLMs.
LO3. Implement, train, test, and validate LLMs using libraries such as Hugging Face and PyTorch.
LO4. Apply LLMs to Natural Language Processing (NLP) tasks such as named entity recognition, sentiment analysis, text generation, summarization, and translation.
LO5. Evaluate model performance in NLP tasks using appropriate metrics and benchmarks.
LO6. Enhance LLM performance by leveraging Retrieval-Augmented Generation (RAG) techniques.
LO7. Apply visual language models and understand their main uses, such as analyzing image content, identifying specific objects, and creating automatic captions.
S1. Fundamental concepts of LLMs and the Transformer architecture, including attention mechanisms and positional encoding.
S2. Pratical application of LLMs using tools such as Hugging Face and PyTorch for creating and optimizing NLP models.
S3. Methods for training and fine-tuning models for personalization in different contexts.
S4. Implementation of solutions for tasks such as named entity recognition, sentiment analysis, text generation, summarization, and translation.
S5. Appropriate metrics to evaluate the performance of models in NLP tasks.
S6. Retrieval-Augmented Generation (RAG) models to enhance LLM performance.
S7. Visual language models and exploration of tasks such as image classification, object detection, and description.
This course uses the assessment throughout the semester modality, not contemplating the mode of assessment by exam. The evaluation consists of 2 components:
1. Group assignments carried out throughout the semester:
- Presentation of a scientific paper (5%).
- Fine-tuning an LLM for a specific field (10%).
- Development of a case study with correct evaluation of the model (40%).
- Creation of a model to improve the LLM developed in assignment 2 (25%).
2. Test (20%).
The average of the group work and the test requires a minimum mark of 9.5.
Grades can only be improved by reattempting the assessment process in the subsequent year.
Attendance at synchronous sessions is not mandatory.
"Dan Jurafsky and James H. Martin. Speech and Language Processing (2024 pre-release) (https://web.stanford.edu/~jurafsky/slpdraft/) Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning (https://www.deeplearningbook.org/) Delip Rao and Brian McMahan. Natural Language Processing with PyTorch Lewis Tunstall, Leandro von Werra, and Thomas Wolf. Natural Language Processing with Transformers (https://transformersbook.com/)
Intelligent Models Engineering
At the end of the curricular unit, each student should be able to:
LO1: Explain the fundamental principles of MLOps, contextualizing them in the development life cycle and operationalization of ML models.
LO2: Use MLOps frameworks and tools to monitor experiments, manage ML pipelines and automate training and continuous delivery processes.
LO3: Design and implement end-to-end pipelines, involving Data Engineering Pipelines, ML Pipelines and ML Workflows, applying appropriate CI/CD practices to ML systems.
LO4: Adopt CRISP-ML(Q) as a methodological guide, ensuring the quality, monitoring, validation and documentation of models throughout the development cycle.
LO5: Design and implement Model Serving strategies, deployment and monitoring of models in production.
LO6: Work collaboratively, integrating MLOps principles and good software engineering practices to ensure effective integration between multidisciplinary teams.
S1: Introduction to the concept of MLOps, comparison with DevOps, relevance and benefits in the context of machine learning.
S2: MLOps frameworks and tools for managing workflows, pipelines, data versioning and models.
S3: Continuous Integration (CI) and Continuous Delivery (CD) for ML; automated testing, auditing and monitoring of pipelines.
S4: Designing end-to-end ML systems; Data Engineering, ML Model Engineering and Model Deployment
S5: Model Serving standards and deployment strategies: A/B testing, canary releases, rolling updates, elastic and scalable infrastructures.
S6: CRISP-ML(Q) Methodology: Phases, tasks, quality and governance of data and models, documentation and continuous improvement of models in production.
As this curricular unit is practical and applied in nature, it follows a semester-long assessment model (provided for in the RGACC) with no final exam.
Assessment will focus on theoretical understanding, practical application skills and the integration of MLOps concepts into real projects.
The assessment consists of:
- 2 Quizzes (20%):
Short online quizzes will be made available throughout the semester, designed to gauge understanding of the fundamental concepts of MLOps
No minimum grade is required, but the quizzes contribute to the consolidation of learning and provide immediate feedback on the students' level of understanding.
The quizzes must be taken individually.
- Mini-Project 1 (30%):
In this mini-project, students will apply their initial knowledge by implementing a simple ML pipeline, including data collection and preparation, model training and experimentation.
Mini-project 1 can be carried out individually or in groups.
Minimum grade required: 8.5.
- Mini-Project 2 (50%):
This second mini-project is more comprehensive and integrated, challenging students to create an end-to-end pipeline, implementing CI/CD, model deployment and monitoring in production.
They will have to demonstrate skills in the use of MLOps frameworks, apply CRISP-ML(Q) and implement Model Serving strategies, guaranteeing the scalability and continuous quality of the system.
There will be an oral presentation (online) of the project, including a discussion of the results, justifying the technical options and addressing possible improvements.
Mini-project 2 should be carried out in groups.
Minimum grade required: 9.5.
The final grade results from the weighted sum of the quizzes (20%), Mini-Project 1 (30%) and Mini-Project 2 (50%).
To pass, the student must obtain a minimum final mark of 10.
If they do not pass, they will be considered to have failed.
The grade can be improved in the following academic year, in accordance with the regulations in force.
In accordance with the RGACC, the student can opt for assessment by exam, focusing on a single project (100%) to be presented and defended orally, following the same guidelines.
Attendance at synchronous sessions is not compulsory, but is highly recommended, given the applied nature of the curricular unit and the importance of continuous feedback.
In addition to the RGACC, it is recommended to consult the Regulations for Students with Special Status (REEE) and the Code of Academic Conduct (CCA).
"1. Washizaki, H., Prikladnicki, R., et al. (2022). MLOps Engineering at Scale. O’Reilly. 2. Zweig, K. (2023). Effective MLOps. Manning. 3. Villela, J. A., et al. (2022). Kubeflow Operations Guide. O’Reilly. 4. Lakshmanan, V., Robinson, C., & Munn, M. (2020). Machine Learning Design Patterns: Solutions to Common Challenges in Data Preparation, Model Building, and MLOps. O’Reilly. "
"1. Amershi, S., et al. (2019). Software Engineering for Machine Learning: A Case Study. IEEE/ACM Joint Conference on SE 2. Shevat, A. (2020). Designing ML-Powered Applications: ML Design Patterns for Developer Teams. O’Reilly."
Computational Optimization
At the end of the course, each student should be able to:
LO1: Explain the fundamental principles of classical numerical optimization methods in the context of AI.
LO2: Implement and adapt metaheuristics to solve complex problems in AI.
LO3: Apply gradient descent methods in the training of deep neural networks, adjusting hyperparameters and analyzing convergence graphs.
LO4: Select and justify the choice of cost functions suitable for different AI tasks, evaluating their impact on model performance.
LO5: Critically evaluate and compare the performance of the optimization methods used, justifying the decisions made and proposing improvements.
LO6: Integrate and adapt the chosen optimization strategies, considering practical constraints (time, resources, scalability) and robustness criteria, to obtain solutions suitable to the needs of the problem.
S1: Classical numerical methods, derivatives and gradients, unconstrained and constrained optimization, introduction to convergence analysis.
S2: Simulated Annealing Metaheuristics, Tabu Search, Evolutionary Algorithms; applications to complex problems (model selection, hyperparameter tuning, global optimization search).
S3: Gradient descent (SGD, Momentum, Adagrad, Adam); implementation in deep neural networks; analysis of convergence and stability graphs of training and validation processes.
S4: Loss/cost functions in Deep Learning: impact on convergence, generalization capability, and model robustness.
S5: Comparison of methods, stopping criteria, scalability, result analysis, improvement proposals, and discussion of practical cases.
As this curricular unit is of a very practical and application-oriented nature, it follows the semester-long assessment model (provided for in the RGACC), and therefore does not have a final exam.
The assessment of this UC has the following composition:
- 2 Quizzes (10% each, total 20%):
Individual short online quizzes, distributed throughout the semester, to assess the theoretical understanding of optimization concepts, metaheuristics, gradient descent methods, and cost functions. There is no minimum score on the quizzes, but completing them helps consolidate knowledge and provides immediate feedback to the student.
- Final Project (80%):
The final project, carried out in groups, is developed in two phases (tutorials), reflecting the PBL (Project-Based Learning) approach:
-- 1st Tutorial (20%):
Delivery of a work plan, identifying the optimization problem in AI, the techniques to be used, as well as the evaluation criteria and convergence metrics.
-- 2nd Tutorial (60%):
Online submission and defense of the complete project, including code, experimental results, critical performance analysis, method comparison, and improvement proposals.
A minimum score of 9.5 is required for the final project as a whole.
The final grade results from the weighted sum of the quizzes (20%) and the final project (80%).
For approval, it is necessary to obtain at least 10 values.
If the student does not pass, they may retake the UC in the following academic year, according to the regulations.
The improvement of the grade can be obtained in the following academic year by repeating the assessment components, in accordance with the current regulations.
The 1st Period and 2nd Period may be used for conducting assessment moments.
Presence during synchronous moments is not mandatory, but recommended, given the opportunity for interaction and immediate feedback.
In addition to the RGACC, the student must consult the Regulation for Students with Special Status (REEE) and the Academic Code of Conduct (CCA).
"1. Sra, Suvrit, Sebastian Nowozin, and Stephen J. Wright, eds., Optimization for machine learning, Mit Press, 2012. 2. Dréo, Johann, et al., Metaheuristics for hard optimization: methods and case studies, Springer Science \& Business Media, 2006. 3. Postek, Krzysztof and Zocca, Alessandro and Gromicho, Joaquim and Kantor, Jeffrey, Hands-On Mathematical Optimization with AMPL in Python, 2024. https://ampl.com/mo-book 4. Dive into DeepLearning, Chapter 11, Optimization algorithms, https://d2l.ai/chapter_optimization/"
"J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings and Moritz Diehl, CasADi -- A software framework for nonlinear optimization and optimal control, Mathematical Programming Computation, vol. 11, no. 1, pp. 1--36, 2019. https://doi.org/10.1007/s12532-018-0139-4, https://web.casadi.org/"