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)
Cursos
Cursos onde a unidade curricular é leccionada: