Programação para Ciência e Engenharia de Dados

Objetivos

No final desta unidade curricular o estudante, a nível de primeiro ciclo, terá adquirido conhecimentos, aptidões e competências que lhe permitam:

  • Compreender e ser capaz de desenvolver as atividades de tratamento e transformação dos dados experimentais ou de sensores para posterior análise exploratória de dados.
  • Compreender o modelo relacional e ser capaz de exprimir interrogações usando os operadores relacionais para obter dados de uma base de dados relacional.
  • Compreender os desafios associados ao processamento de grandes quantidade de dados.
  • Ser capaz de exprimir computações usando um modelo imperativo ou operadores funcionais.
  • Conhecer e ser capaz de exprimir computações sobre dados complexos e espácio-temporais.
  • Conhecer e saber escolher as visualizações de dados mais adequadas aos dados e às análises pretendidas.

Caracterização geral

Código

12570

Créditos

6.0

Professor responsável

Carlos Augusto Isaac Piló Viegas Damásio, João Carlos Gomes Moura Pires

Horas

Semanais - 4

Totais - 56

Idioma de ensino

Português

Pré-requisitos

Conhecimentos prévios da linguagem pyhton é aconselhada.

Os alunos com lacunas de conhecimentos nesta área poderão realizar alguns tutoriais online tais como aqueles acessíveis a partir do site oficial da linguagem python (https://www.python.org)

Para mais informação consultar  https://www.python.org/about/gettingstarted/

Bibliografia

Manual adoptado:

Hands-On Data Analysis with Pandas: A Python data science handbook for data collection, wrangling, analysis, and visualization, 2nd Edition (Capítulos 1 a 8)
by Stefanie Molin
Packt | April, 2021
ISBN-13: 978-1800563452

Livro de texto complementar:

A General Introduction to Data Analytics
by João Moreira, Andre Carvalho, et al.
JOHN WILEY AND SONS INC  | Jun 25, 2018
(Capítulos 1 a 4)

Livros de apoio à biblioteca pandas

Python for Data Analysis, 2nd Edition, 2017.
by Wes McKinney
Publisher(s): O''''''''Reilly Media, Inc.
ISBN: 9781491957660

Learning the Pandas Library: Python Tools for Data Munging, Analysis, and Visualization (Treading on Python Book 3), 2016.
by Matt Harrison, Michael Prentiss

 

Método de ensino

A unidade curricular será suportada em aulas teóricas onde serão enquadrados os tópicos principais a serem abordados.

O ensino teórico recorrerá a muitos exemplos de datasets existentes para ilustrar problemas típicos
encontrados quando se tem que lidar com dados reais. Serão fornecidas as boas práticas, soluções e
metodologias informáticas para atacar estes problemas.

As aulas práticas serão fundamentalmente baseadas na linguagem e ecossistema python para a análise e visualização de dados, uma das soluções mais utilizadas pela academia e indústria. O ambiente python será integrado com um conjunto de ferramentas e serviços externos, ilustrando um ambiente real de processamento e tratamento de dados.

Método de avaliação

A avaliação é formada por uma componente teórica (60% da nota) e uma componente prática (40% da nota). 

A componente teórica (CT) pode ser realizada em:

  • Avaliação Contínua por intermédio de dois testes cada um valendo 50% da componente teórica (ou seja, 25% da nota final);
  • Exame
  • A componente teórica pode ser substituída por oral, sendo os alunos indicados pelos docentes

A componente prática (CP) é realizada por projeto de grupo com 3 elementos. O projeto é avaliado por relatório, demonstração e discussão do trabalho com os docentes. Os membros do grupo podem ter notas distintas.

A nota final é obtida pela seguinte fórmula: 60% CT + 40% CP com arredondamento final às unidades. 

Condições de aprovação:

  • Componente teórica >= 9,5 valores
  • Componente prática >= 9,5 valores 

NOTA: Plágio implica reprovação automática à Unidade Curricular

Conteúdo

1. Introdução à Programação para Análise de Dados

a) Ciência de Dados
b) Metodologia CRISP-DM

2. Estruturação e organização de Software

a) Módulos e utilização de APIs
b) Modelo de processamento funcional de dados (operadores map, flatmap, reduce, etc.)
c) Modelos de deployment de programas (e.g. bibliotecas, programas independentes, Jupyter Notebooks)

3. Acesso, consulta e tratamento de dados

a) Formas de acesso a conjuntos de dados. Dados espácio-temporais e complexos.
b) Linguagem de interrogação de dados relacionais SQL: projeções, seleções, junções e agregações.
c) Tratamento e transformação de séries e dados tabulares recorrendo à biblioteca pandas.

4. Visualização

a) Fundamentos da visualização interativa de dados
b) Principais instrumentos de visualização de dados para análise exploratória de dados
c) Uso de bibliotecas python para visualização de dados e desenho de pequenos painéis interativos

5. Escalabilidade e serviços na Cloud

a) Desafios e aproximações
b) Framework de computação paralela (e.g. Spark)