IPT Logotipo do IPT

Ano Letivo: 2023/24

Engenharia Informática-Internet das Coisas

Análise de Grande Volume de Dados

<< voltar ao Plano Curricular

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)
- Ricardo Nuno Taborda Campos (1)(2)

(1) Docente Responsável
(2) Docente que lecciona

Pré-requisitos
Não aplicável

Objetivos
Esta UC tem por objetivo introduzir os alunos à aquisição, processamento, armazenamento e recuperação de dados em larga escala como suporte a tarefas de Ciência de Dados (CD).

No final da UC o aluno deverá saber
1. listar os passos envolvidos num projeto de CD em larga escala e descrever as funções de cada um;
2. conhecer as principais ferramentas de desenvolvimento de um projeto de CD;
3. estar familiarizado com os conceitos fundamentais dos grandes volumes de dados;
4. saber aplicar métodos de aquisição de dados com recurso a pacotes de software python, APIs e web scraping;
5. dominar o processo de armazenamento e recuperação de dados em larga escala;
6. conhecer e saber aplicar de forma adequada as estratégias de processamento de dados em larga escala;
7. entender o paradigma map-reduce;
8. conhecer os fundamentos das principais frameworks de processamento de dados em larga escala;
9. saber usar, programar e processar dados em larga escala com recurso à framework Spark.

Programa
1. Introdução à Ciência de Dados
- Definição de ciência de dados em larga escala
- Visão geral das competências de um cientista de dados em larga escala
- Etapas de um projeto de ciência de dados
- A importância da ciência de dados em ambientes com grandes volumes de dados
- Desafios e oportunidades em ciência de dados e big data
- Áreas de atuação da ciência de dados em larga escala
- Tópicos emergentes
- Repositórios de dados
- Data lakes

2. Ferramentas de desenvolvimento no contexto da Ciência de Dados
- Git
- Github
- Docker
- Python (Anaconda - Jupyter Notebook)
- Google Colab

3. Introdução ao Big Data
- Definição de Big Data
- Evolução histórica
- Características
- Vantagens
- Aplicações práticas com grandes volumes de dados
- Arquitetura de um sistema de Big Data
- Plataformas para processamento de dados em larga escala

4. Aquisição de Dados em Larga Escala
- Formatos de dados (estruturados; semi-estruturados; não-estruturados)
- Extração de Informação a partir de ficheiros
- Extração de Informação com recurso a packages
- Extração de Informação com recurso a APIs
- Extração de Informação com recurso a Web Scraping
- Princípios e ética do web scraping

5. Armazenamento e Recuperação de Dados em Larga Escala
- Bases de dados NoSQL
- Vantagens
- NoSQL vs SQL
- Tipos de bases de dados NoSQL
- Bases de dados NoSQL open-source

6. Estratégias de Processamento de Dados em Larga Escala
- Quantos dados são muitos dados?
- Visão geral das estratégias para processamento de dados em larga escala (compressão de dados; bases de dados; chunking; scale-up (expansão de recursos); scale-out (data parallelism) e big data)
- A importância dos GPUs no contexto da ciência de dados em larga escala

7. Programação de Aplicações de Larga Escala com base no Paradigma Map-Reduce
- Visão geral do paradigma map-reduce
- História do map-reduce
- Funcionamento
- Vantagens
- Frameworks

8. Frameworks de Processamento Dados em Larga Escala (Hadoop, Spark, Dask)
Hadoop
- Visão geral do Hadoop
- História e evolução
- Características
- Arquitetura
- Ecosistema

Spark
- Visão geral do Spark
- História e evolução
- Características
- Arquitetura
- Spark vs Hadoop Map-Reduce

Dask
- Visão geral do Dask
- Características
- Arquitetura
- Dask vs PySpark

9. Processamento de Dados em Larga Escala com Spark
- Introdução aos conceitos fundamentais de Spark
- RDDs (Resilient Distributed Datasets)
- Spark DataFrames
- Spark Streaming

Metodologia de avaliação
Avaliação Periódica
- P1 - Projeto I (trabalho de grupo): 40%
- P2 - Projeto II (trabalho de grupo): 40%
- F - Frequência: 20%

A classificação final da UC resulta da média ponderada das classificações obtidas nas componentes de avaliação definidas. O aluno obtém aprovação à UC, estando dispensado de Exame, no caso de obter uma nota igual ou superior a 9.5 valores.

Avaliação Final
- Exame: 100% (prova realizada em computador com consulta parcial dos conteúdos)

Requisitos de admissibilidade à frequência e ao exame:
- Mínimo de 70% de assiduidade às aulas durante o período de ensino-aprendizagem (exceto trabalhadores estudantes);
- Nota mínima de 6 valores em AE, onde AE = ((P1 * 40%) + (P2 * 40%) + (F * 20%))

O incumprimento de qualquer um destes itens (incluindo a submissão de projetos fora do prazo) impede o aluno de se submeter à frequência e ao exame.

Bibliografia
- Galar, M. e Triguero, I. (2023). Large-Scale Data Analytics with Python and Spark. UK: Cambridge University Press
- 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

Método de Ensino
Exposição dos conteúdos programáticos com recurso ao método expositivo e demonstrativo. Análise e resolução de casos práticos através de notebooks. Os conhecimentos adquiridos serão avaliados através da realização e apresentação de projetos e testes

Software utilizado nas aulas
Python: Anaconda e Jupyter Notebooks; PySpark

 

Aprovado em Conselho Técnico Cientifico: Aprovada na Ata nº 23/2024 de 26/06

Download da Ficha da Unidade Curricular (FUC)

 

 


<< voltar ao Plano Curricular
Elemento gráfico

Notícias | Agenda

NP4552
Financiamento
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado