Plano de Estudos para 2024/2025
Unidades curriculares | Créditos | |
---|---|---|
Big Data
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Inteligência Artificial
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação para Análise de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Big Data
No final da UC os alunos deverão ser capazes de:
OA1. Compreender e identificar os problemas associados ao processamento de grandes quantidades de informação
OA2. Compreender os conceitos e ecossistema da Big Data.
OA3. Saber desenhar e concretizar soluções de armazenamento de dados em ambiente distribuído e tolerantes a falhas.
OA4. Saber extrair, manipular e carregar grandes quantidades de informação de frontes de dados não estruturadas
OA5. Saber manipular e processar bases de dados não relacionais.
OA6. Compreender e saber aplicar os modelos de programação e computação distribuídos.
OA7. Compreender e saber aplicar técnicas para tratamento de estruturas JSON e fluxo de dados em tempo real.
OA8. Desenvolver a criatividade, inovação tecnológica, pensamento crítico.
OA9. Desenvolver a autoaprendizagem, revisão por pares, trabalho em equipa, expressão escrita e oral.
CP1. O conceito de Big Data, os problemas aplicáveis e o respetivo ecossistema.
CP2. Introdução às bases de dados não relacionais e ao MongoDB.
CP3. Arquitetura de computação para Big Data: (1) redundante e tolerante a falhas e (2) distribuída para suportar grandes volumes de dados. Exemplo da plataforma Hadoop e do seu sistema de ficheiros distribuído.
CP4. O modelo de programação MapReduce.
CP5. O desenho de bases de dados no MongoDB.
CP6. A manipulação de estruturas JSON e de dados em tempo real.
CP7. O processo de ETL (Extract, Transform and Load) aplicado a datasets com dados reais desnormalizados e desenvolvimento de aplicações de processamento de Big Data em ambientes Spark e MongoDB.
Esta UC segue o modelo de avaliação ao longo do semestre (ALS), o que não contempla um exame final com uma ponderação a 100%.
A ALS é constituída pelos seguintes elementos:
- 8 tarefas semanais [2,5% * 8 = 20% no total]
- 2 mini-testes [15% cada * 2 = 30% no total]
- Projeto de laboratório [50%]
O projeto de laboratório poderá ser realizado individualmente ou em grupo, onde consiste na elaboração de um projeto prático que posteriormente será alvo de discussão oral individual.
Se o aluno reprovar na época normal (<10 valores), o aluno acede ao exame de 1º ou 2ª épocas, valendo 50% da nota, sendo obrigatória a aprovação no projeto de laboratório ou a realização de um projeto individual (50%). Caso o aluno não tenha aprovação no projeto de laboratório ou no projeto individual (se for o caso), encontra-se reprovado a esta UC.
Title: 1. Nudurupati, S. (2021). Essential PySpark for Scalable Data Analytics: A beginner’s guide to harnessing the power and ease of PySpark 3. Packt Publishing.
2. Sardar, T. H. (2023). Big data computing: Advances in technologies, methodologies, and applications. CRC Press.
3. Tandon, A., Ryza, S., Laserson, U., Owen, S., & Wills, J. (2022). Advanced analytics with PySpark: Patterns for learning from data at scale using Python and Spark. O’Reilly Media.
Authors:
Reference: null
Year:
Inteligência Artificial
Após a conclusão da UC, os alunos devem:
OA1: Reconhecer as vantagens e desafios da utilização de técnicas e abordagens de IA, demonstrando consciência crítica sobre métodos de procura informados e não informados.
OA2: Selecionar e justificar as abordagens tecnológicas e algoritmos mais apropriados, incluindo métodos de procura, representação e lógicas de raciocínio.
OA3: Aplicar os conceitos e técnicas abordadas na conceção e desenvolvimento de sistemas baseados em IA, bem como na modelação de exemplos baseados em cenários reais.
OA4: Desenvolver, implementar e avaliar soluções que envolvam a lógica de predicados e a programação em lógica.
OA5: Compreender os fundamentos dos algoritmos genéticos, sendo capazes de implementá-los e adaptá-los para resolver problemas específicos.
OA6: Trabalhar de forma autónoma e em grupo para desenvolver projetos que aplicam os conhecimentos adquiridos, mostrando capacidade de adaptação e resolução de problemas complexos na área de IA.
CP1: Noções fundamentais de IA com destaque para a abordagem baseada em procura.
CP2: Algoritmos de procura: profundidade primeiro e largura primeiro, A*, greedy BFS, Dijkstra.
CP3: Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em Cconhecimento.
CP4: Lógica de predicados de primeira ordem: representação e dedução.
CP5: Conhecimento declarativo representado em Programação em Lógica.
CP6: Algoritmos genéticos.
A avaliação ao longo do semestre é constituída por 3 blocos de avaliação (BA), e cada BA é constituído por um ou vários momentos de avaliação. Essa mesma constituição respeita a seguinte distribuição:
- BA1: 4 mini-tarefas [7,5% cada mini-tarefa * 4 = 30%]
- BA2: 2 mini-testes [20% cada mini-teste * 2 = 40%]
- BA3: 1 projeto em Inteligência Artificial [30%]
Avaliação por exame:
- 1ª Época [100%]
- 2ª Época [100%]
Todos os blocos de avaliação periódica (BA1, BA2 e BA3) possuem uma nota mínima de 8,5 valores. Em qualquer BA, poderá haver necessidade de realizar uma discussão oral individual para aferir conhecimentos.
A avaliação por exame consiste num exame escrito que abrange todos os conhecimentos previstos nos conteúdos programáticos da UC, e possui uma ponderação de 100%.
A presença nas aulas não é obrigatória.
Title: Bishara, M. H. A., & Bishara, M. H. A. (2019). Search algorithms types: Breadth and depth first search algorithm
Brachman, R., & Levesque, H. (2004). Knowledge representation and reasoning. Morgan Kaufmann
Clocksin, W. F., & Mellish, C. S. (2003). Programming in Prolog. Springer Berlin Heidelberg.
Russell, S. & Norvig, P. (2010). Artificial Intelligence: A Modern Approach (3rd ed.). Prentice Hall.
S., V. C. S., & S., A. H. (2014). Artificial intelligence and machine learning (1.a ed.). PHI Learning.
Authors:
Reference: null
Year:
Programação para Análise de Dados
OA1 Introdução à linguagem de programação Python.
OA2 Compreender os princípios da ciência de dados e da mineração de dados e compreender e saber aplicar o modelo Cross-Industry Standard Process for Data Mining (CRISP-DM) em casos práticos, incluindo a compreensão do negócio e dos dados e a preparação dos dados para modelação.
OA3 Saber executar e depurar aplicações em Python e utilizar as bibliotecas fundamentais em casos práticos de preparação, exploração, visualização e análise de características dos dados.
OA4 Compreender os algoritmos de aprendizagem automática, em problemas supervisionados de previsão (classificação, regressão, séries temporais) e problemas não supervisionados de agrupamento, e saber aplicá-los e avaliar o seu desempenho em problemas práticos, usando a linguagem Pyhton, no contexto da metodologia CRISP-DM.
OA5 Compreender e saber aplicar considerações éticas e de privacidade na análise de dados e discutir as tendências futuras neste domínio.
P1 Introdução à linguagem de programação (Python 3)
P2 Ambientes de desenvolvimento em Python
P3 Primitivas de controlo, variáveis, expressões e declarações. Objetos e classes de objetos. Funções, módulos e pacotes
P4 Operações sobre ficheiros. Interpretação de dados JSON, XML. Operações sobre bases de dados. Web scrapping
P5 Introdução à ciência dos dados, ao ciclo dos dados e à mineração de dados. Modelo CRISP-DM
P6 Técnicas de preparação e limpeza de dados
P7 Análise exploratória e visualização de dados
P8 Seleção e engenharia de características relevantes dos dados
P9 Métodos de previsão em aprendizagem automática (classificação, regressão, séries temporais). Algoritmos essenciais, incluindo a sua avaliação com métricas de desempenho
P10 Métodos de agrupamento em aprendizagem automática. Algoritmos essenciais
P11 Considerações éticas: privacidade, segurança e tratamento responsável de dados
P12 Tecnologias emergentes e seu impacto na análise de dados
UC com Avaliação Periódica, não contemplando Exame Final. Pesos da avaliação:
Trabalhos individuais, 80% obrigatórios (25%)
Projeto laboratorial (grupo de 2), com discussão oral individual (50%)
2 mini-testes de resposta múltipla (25%)
Se reprova na época normal (< 10 val) o aluno acede ao exame de 1º ou 2ª épocas, valendo 50% da nota, sendo obrigatória a aprovação no Projeto em grupo ou a realização de um projeto individual (50%).
Title: Larose, D., Larose, C., Data Mining and Predictive Analytics, 2015, 2nd Edition, John Wiley & Sons
Hastie, T.; Tibshirani, R., Friedman, J., The Elements of Statistical Learning: Data Mining, Inference, and Prediction, 2017, 2nd ed. New York: Springer
Ethem Alpaydin, Introduction to Machine Learning, 2010, MIT Press.ISBN 026201243X
Reitz. K., Schlusser, T., The Hitchhiker's Guide to Python: Best Practices for Development,, 2016, 1st Edition, ISBN-13: 978-1491933176, https://docs.python-guide.org/
Martins, J. P., Programação em Python: Introdução à programação utilizando múltiplos paradigmas, 2015, IST Press, ISBN: 9789898481474
Authors:
Reference: null
Year:
Title: Zelle, J., Python Programming: An Introduction to Computer Science, 2016, Franklin, Beedle & Associates Inc, ISBN-13 : 978-1590282755
Matthes, E., Python Crash Course, 2Nd Edition: A Hands-On, Project-Based Introduction To Programming, 2019, No Starch Press,US, ISBN-13 : 978-1593279288
Beazley, D., Jones, B., Python Cookbook: Recipes for Mastering Python 3, 2013, O'Reilly Media, ISBN-13 : 978-1449340377
Neto, J. P., Programação, Algoritmos e Estruturas de Dados, 2016, Escolar Ed., 3ª Edição. ISBN: 9789725924242
Authors:
Reference: null
Year: