
Publicação em Diário da República: Despacho n.º 13495/2022 - 18/11/2022
10 ECTS; 1º Ano, 1º Semestre, 30,0 PL + 30,0 TP + 30,0 OT , Cód. 390913.
Docente(s)
- Luís Miguel Lopes de Oliveira (2)
- Ana Cristina Barata Pires Lopes (1)(2)
- Renato Eduardo Silva Panda (2)
- Paulo Sérgio Correia Monteiro (2)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
Não aplicável
Objetivos
Esta unidade curricular visa capacitar os estudantes com competências práticas e teóricas nas áreas de processamento e análise de dados em larga escala. Serão abordadas técnicas modernas de engenharia de dados, preparação, armazenamento, transformação, análise exploratória e visualização de dados, com recurso a ferramentas como Pandas, Dask, Spark e Streamlit, integradas num contexto de projetos aplicados.
Programa
1. Introdução à ciência de dados e Big Data
1.1 Conceitos base, ciclo de vida de projetos, papéis em data science
1.2 Os 5Vs do Big Data: volume, velocidade, variedade, veracidade, valor
1.3 Ética, privacidade, transparência e impacto social
1.4 Reprodutibilidade, documentação, controlo de versões
2. Ambiente de desenvolvimento
2.1 Jupyter, Python e VS Code
2.2 Docker, DevContainers e ambientes reprodutíveis
2.3 Isolamento de dependências (pip, conda)
2.4 Gestão de ambientes com requirements.txt
3. Python para análise e visualização
3.1 Revisão de sintaxe Python, estruturas de dados e scripts básicos
3.2 NumPy e manipulação de arrays
3.3 Pandas para análise tabular
3.4 Visualização com Matplotlib, Seaborn, Plotly
4. Aquisição e armazenamento de dados
4.1 Acesso a dados locais e remotos (CSV, JSON, Parquet)
4.2 APIs REST, autenticação e tratamento de erros
4.3 Web scraping com requests e BeautifulSoup
4.4 Armazenamento em MongoDB (document store) e Redis (key-value)
5. Engenharia de dados e EDA (Exploratory Data Analysis)
5.1 Construção de pipelines ETL
5.2 Limpeza e transformação de dados
5.3 Exploração inicial e análise descritiva
5.4 Otimização com formatos eficientes (Parquet, compressão)
6. Dashboards interativos
6.1 Introdução a Streamlit e Dash
6.2 Construção de interfaces com filtros, tabelas e visualizações
6.3 Integração com pipelines e APIs
6.4 Aplicações práticas nos projetos da UC
7. Processamento de dados em larga escala
7.1 Introdução ao paradigma MapReduce
7.2 Arquiteturas: Hadoop, Spark, Dask
7.3 Estratégias de paralelização e chunking
7.4 Operações com RDDs e DataFrames em PySpark
7.5 Introdução ao MLlib (Spark) e machine learning distribuído
Metodologia de avaliação
A avaliação é contínua e baseada em três projetos práticos obrigatórios:
- Projeto I (35%) Reorganização de um conjunto de dados, criação de loaders e construção de dashboards interativo
- Projeto II (35%) Desenvolvimento de pipeline ETL com análise exploratória e visualização
- Projeto III (30%) Processamento em larga escala com Dask e Spark
A entrega de todos os projetos é obrigatória, assim como a defesa dos mesmos.
Bibliografia
- Marr, B. (2022). Data Strategy: How to Profit from a World of Big Data, Analytics and the Internet of Things. USA: Kogan Page
- McKinney, W. (2017). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. USA: O'Reilly
- Rioux, J. (2022). Data Analysis with Python and PySpark. USA: Manning
- Santos, M. e Costa, C. (2019). Big Data Concepts, Warehousing, and Analytics. . Lisboa: FCA
- Triguero, I. e Galar, M. (2023). Large-Scale Data Analytics with Python and Spark. UK: Cambridge University Press
Método de Ensino
Aulas teórico-práticas para introdução dos conceitos, com exemplos de implementação. Aulas laboratoriais orientadas com uso de notebooks Jupyter e scripts Python. Projetos aplicados ao longo do semestre consolidam os conhecimentos e permitem a aplica
Software utilizado nas aulas
Python (Anaconda, Jupyter Notebooks), Pandas, NumPy, Matplotlib, Seaborn, Plotly, MongoDB, Redis, Dask, PySpark, Streamlit, Dash, Docker, Git, Visual Studio Code
Aprovado em Conselho Técnico Cientifico: 17 de junho de 2025
Download da Ficha da Unidade Curricular (FUC)