Algoritmos
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2016/2017 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
Esta UC é dedicada ao desenho de algoritmos para problemas computacionais, e como raciocinar de forma clara sobre a sua correção e tempo de execução. O principal objectivo é dotar os alunos das ferramentas intelectuais necessárias para que sejam capazes de desenhar a analisar os seus próprios algoritmos para problemas que precisem de resolver no futuro.
Resultados de aprendizagem e competências
Os alunos deverão ser capazes de compreender a relação entre o desenho de algoritmos, a prova da sua correcção e a análise da sua complexidade. Deverão aprender técnicas gerais úteis na implementação de novos algoritmos e conhecer alguns dos principais algoritmos nalguns domínios específicos. Os alunos irão também obter experiência prática na aplicação de algoritmos genéricos a problemas concretos.
Modo de trabalho
Presencial
Programa
- Fundamentos de análise assintótica
- Dividir-para-conquistar e resolução de recorrências
- Análise amortizada
- Análise probabilística e algoritmos aleatorizados
- Ordenação e seleção lineares
- Algoritmos ávidos/gulosos e programação dinâmica
- Algoritmos para deteção de ocorrências de strings
- Fundamentos da teoria da complexidade computacional e problemas NP-completos
- Introdução aos Algoritmos de Aproximação
Bibliografia Obrigatória
Cormen Thomas H. 070;
Introduction to algorithms. ISBN: 9780262033848 hbk
Bibliografia Complementar
Armando Matos; Tópicos Avançados em Algoritmos, DCC/FCUP, 2008 (Alguns Apontamentos (http://www.dcc.fc.up.pt/~acm/aulas/aa/t1.pdf))
Steven Halim and Felix Halim; Competitive Programming 3: The New Lower Bound of Programming Contests, 2013 (https://sites.google.com/site/stevenhalim/)
Skiena Steven S.;
The algorithm design manual. ISBN: 978-1-84800-069-8
Sedgewick Robert;
Algorithms. ISBN: 0-201-06673-4
Jon Kleinberg and Éva Tardos; Algorithm Design, 2005. ISBN: 978-0321295354 (http://www.cs.princeton.edu/~wayne/kleinberg-tardos/)
Ana Paula Tomás; Desenho e Análise de Algoritmos – Alguns Apontamentos, DCC/FCUP, 2013 ((Revisões de DAA: http://www.dcc.fc.up.pt/~apt/aulas/DAA/1314/ApontamentosDAA.pdf))
Métodos de ensino e atividades de aprendizagem
Aulas teórico-práticas; trabalhos de casa (exercícios e leitura de artigos) e apresentação oral pelos estudantes; testes escritos para dispensa de exame final; exame final.
As aulas misturam exposição de matéria (introduzindo conceitos, resultados e algoritmos principais) com discussão interativa da sua aplicação na resolução de problemas reais.
Os exercícios e artigos destinam-se à aplicação dos conceitos na prática, permitindo consolidar o conhecimento adquirido.
O exame final (e testes escritos), sem consulta, destina-se à avaliação global dos conhecimentos adquiridos.
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Exame |
80,00 |
Prova oral |
20,00 |
Total: |
100,00 |
Fórmula de cálculo da classificação final
- (H1+H2) Dois trabalhos (estudo de tópico e apresentação oral): 20%.
- (E) Exame final: 80%
- (T) Testes: dois testes escritos para dispensa de exame final (um a meio - T1, outro perto do final - T2) . T = 0.5*T1 + 0.5*T2, com T1, T2 >= 8.0.
Classificação da época normal: C = max(E,T)*0.8 + H1+H2 >= 9.5
Classificação da época de recurso: C = E*0.8 + H1+H2 >= 9.5