Inteligência Artificial

Código:
14798
Ano:
3
Semestre:
S1
Créditos ECTS:
6
Carga Horária:
PL(30H)/T(30H)
Área Científica:
Informática
Tipo de ensino:
Presencial
Estágios:
Não aplicável
Objectivos de Aprendizagem:
A unidade curricular visa proporcionar uma visão integrada dos fundamentos da Inteligência Artificial. No final, os estudantes deverão ser capazes de: compreender os principais conceitos, áreas e paradigmas da IA, enquadrados pelo conceito de agente inteligente; modelar problemas como espaços de estados; conhecer e aplicar algoritmos de procura não informada e informada; representar conhecimento através de lógica e regras; compreender os fundamentos da aprendizagem automática, incluindo treino, teste, overfitting, métricas e validação; compreender e aplicar árvores de decisão, Random Forest e redes neuronais; conhecer os princípios dos algoritmos evolucionários, planeamento automático e decisão em jogos; utilizar Python, NumPy, Pandas, Matplotlib e Scikit-Learn na implementação de soluções de IA; comparar soluções, interpretar resultados e comunicar conclusões fundamentadas.
Conteúdos programáticos:
1. Introdução à IA: história, conceitos, áreas, paradigmas e agentes inteligentes.
2. Formulação de problemas e espaços de estados: estados, ações, operadores, custos e objetivos.
3. Procura não informada: DFS, BFS e Uniform Cost Search.
4. Procura heurística: heurísticas, Greedy Best-First Search e A*.
5. Representação do conhecimento: lógica, regras e inferência.
6. Aprendizagem Automática: dados, treino, teste, generalização e overfitting.
7. Árvores de decisão e Random Forest.
8. Redes neuronais: perceptrão e MLP.
9. Avaliação de modelos: métricas de classificação e validação.
10. Algoritmos evolucionários e algoritmo genético simples.
11. Programação aplicada à IA: Python, estruturas de dados e controlo, funções e módulos, NumPy, Pandas, Matplotlib e Scikit-Learn; Implementação de algoritmos de procura e modelos de IA.
Metodologias de Ensino e Critérios de Avaliação:
Nas aulas teórico-práticas articulam-se exposição dialogada, análise de exemplos, formulação de problemas, resolução de exercícios e discussão de alternativas algorítmicas, com atenção às propriedades, vantagens e limitações das diferentes abordagens.
Nas aulas práticas é adotada uma metodologia ativa, baseada em fichas progressivas em Python, Jupyter/VS Code, NumPy, Pandas, Matplotlib e Scikit-Learn. Os estudantes implementam algoritmos de procura, exploram dados, treinam e avaliam modelos e desenvolvem soluções de IA, com acompanhamento e feedback do docente.
A componente prática culmina num trabalho integrador de aplicação e comparação de algoritmos.
Avaliação por frequência: Teste1 - 30%; Teste2 - 30%; Fichas Práticas - 10%; Trabalho Prático - 30%.
Classificação final = 0,30×T1 + 0,30×T2 + 0,10×FP + 0,30×TP.
Nas épocas de exame: Exame teórico-prático 70%; trabalho prático 30%
A nota mínima em cada momento de avaliação é de 8 valores.
Bibliografia principal:
- Costa, E., & Simões, A. (2008). Inteligência Artificial - Fundamentos e Aplicações . FCA. ISBN: 978-972-722-269-8.
- Russell, S., & Norvig, P. (2009). Artificial Intelligence: A Modern Approach (3rd ed.). Prentice Hall/Pearson. ISBN: 978-0-13-604259-4.
- Costa, E. (2024). Programação em Python: Fundamentos e Resolução de Problemas (2.a ed.). FCA. ISBN: 978-972-722-940-6.
- Géron, A. (2022). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow (3rd ed.). O'Reilly Media. ISBN: 978-1-098-12597-4.

Documentos disponibilizados no moodle.
Língua:
Português
Esta informação promove os seguintes Objetivos de Desenvolvimento Sustentável da ONU:
Garantir o acesso à educação inclusiva, de qualidade e equitativa, e promover oportunidades de aprendizagem ao longo da vida para todos Alcançar a igualdade de género e empoderar todas as mulheres e raparigas Reduzir as desigualdades no interior dos países e entre países