Desenho e Análise de Algoritmos Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 1 / 13
Informações Gerais Site: http://www.dcc.fc.up.pt/~pribeiro/aulas/daa1415/ Piazza: http://piazza.com/up.pt/fall2014/cc2001 Aulas teóricas: 2 a Feira: 15:30 às 16:30 (Sala 0.40, FC4) 4 a Feira: 15:00 às 16:00 (Sala 0.40, FC4) Aulas práticas: PL1: 3 a Feira: 09:00 às 11:00 (Lab4, Verónica Orvalho) PL2: 4 a Feira: 11:00 às 13:00 (Lab2, Pedro Ribeiro) PL3: 5 a Feira: 10:00 às 12:00 (Lab2, Pedro Ribeiro) PL4: 2 a Feira: 10:00 às 12:00 (Lab1, Verónica Orvalho) PL5: 3 a Feira: 16:00 às 18:00 (Lab3, Pedro Ribeiro) Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 2 / 13
Obtenção de Frequência Não serão registadas presenças (teóricas e práticas) Semanalmente, serão feitos questionários: São obrigatórios, mas não contam para nota Cada um estará online durante uma semana São constituídos essencialmente por perguntas de escolha múltipla Para obter frequência é necessário ter respondido a 80% 12 questionários só podem não responder a 2 Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 3 / 13
Fórmula de Cálculo da Avaliação NP: nota obtida num teste prático de programação com avaliação automática pelo sistema Mooshak (peso de 20% na nota final); Nota mínima, NP > 0 (escala da nota: 0 a 4) E: exame escrito final (peso de 80% na nota final, nota de 0 a 20) F: média de dois testes escritos (TE1 e TE2) a realizar durante o semestre para dispensa de exame final (TE1 e TE2 incidirão sobre conjuntos de matérias diferentes). Os estudantes com classificação inferior a 6.0 no primeiro teste não poderão realizar o segundo. F = 0.5*TE1 + 0.5*TE2. Para dispensa de exame, F >= 7.0. Classificação da época normal: C = max(e, F ) 0.8 + NP >= 9.5 Classificação da época de recurso: C = E 0.8 + NP >= 9.5 Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 4 / 13
Datas dos Testes Estas datas são neste momento provisórias: 1 o teste escrito: 14 de Novembro 2 o teste escrito: 19 de Dezembro Teste prático de programação: semana de 5 a 9 de Janeiro Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 5 / 13
Pré-requisitos Conhecimentos de C/C++ ou Java Conhecimentos de algoritmos básicos (contagem, pesquisa, ordenação,...) Conhecimentos de estruturas de dados básicas (arrays, listas, pilhas, filas,...) Preferencialmente ter concluído as unidades curriculares de Introdução à Programação e Estruturas de Dados (ou equivalente) Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 6 / 13
Objectivos da Unidade Curricular Competência na area de técnicas de concepção e análise de algoritmos eficientes: Competência na análise da complexidade de algoritmos e compreensão de algumas classes de complexidade Enriquecimento do conhecimento sobre modelos genéricos de tipos de problemas e técnicas algorítmicas a eles associadas. Experiência prática na aplicação de algoritmos genéricos a problemas concretos. Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 7 / 13
Visão Geral do Programa Análise assintótica do tempo de execução de algoritmos: Notação Big O (O, Ω e Θ) Análise de programas iterativos Análise de programas recursivos Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 8 / 13
Visão Geral do Programa Técnicas de Desenho de Algoritmos Pesquisa exaustiva Dividir para conquistar Algoritmos greedy Programação dinâmica Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 9 / 13
Visão Geral do Programa Algumas estruturas de dados especializadas Filas de prioridade Conjuntos disjuntos Árvores binárias de pesquisa equilibradas (dependendo do tempo) Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 10 / 13
Visão Geral do Programa Algoritmos de grafos Representação de grafos Pesquisa em largura e pesquisa em profundidade Árvores de cobertura mínima Caminhos mínimos Redes de fluxo (dependendo do tempo) Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 11 / 13
Visão Geral do Programa Introdução à teoria da complexidade (dependendo do tempo) Classes P, NP e co-np A questão P!=NP Noções de redução de problemas Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 12 / 13
Funcionamento das aulas Teóricas: slides + uso do computador do docente + exposição no quadro Práticas: guião com exercícios (em papel) + implementação em código (C/C++ ou Java) Material auxiliar: divulgado no site, em português e/ou inglês slides, apontamentos, animações, applets,... Pedro Ribeiro (DCC/FCUP) Desenho e Análise de Algoritmos 2014/2015 13 / 13