Código: | CC2001 | Sigla: | CC2001 | Nível: | 200 |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Ciência de Computadores |
Ativa? | Sim |
Página Web: | http://www.dcc.fc.up.pt/~pribeiro/aulas/daa2122/ |
Unidade Responsável: | Departamento de Ciência de Computadores |
Curso/CE Responsável: | Licenciatura em Ciência de Computadores |
Sigla | Nº de Estudantes | Plano de Estudos | Anos Curriculares | Créditos UCN | Créditos ECTS | Horas de Contacto | Horas Totais |
---|---|---|---|---|---|---|---|
L:B | 0 | Plano de Estudos Oficial | 3 | - | 6 | 56 | 162 |
L:CC | 78 | Plano estudos a partir do ano letivo 2021/22 | 2 | - | 6 | 56 | 162 |
L:F | 1 | Plano de Estudos Oficial | 3 | - | 6 | 56 | 162 |
L:G | 0 | Plano estudos a partir do ano letivo 2017/18 | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:IACD | 2 | Plano Oficial a partir do ano letivo 2021/22 | 2 | - | 6 | 56 | 162 |
L:M | 9 | Plano de Estudos Oficial | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:Q | 0 | Plano estudos a partir do ano letivo 2016/17 | 3 | - | 6 | 56 | 162 |
Aprendizagem de técnicas de concepção e análise de algoritmos eficientes.
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. Competência na análise da complexidade de algoritmos.
Conhecimentos de programação (C/C++ ou JAVA), de algoritmos básicos (de contagem, pesquisa e de ordenação) e de algumas estruturas de dados. Preferencialmente, o estudante deverá ter concluído as unidades curriculares de "Programação Imperativa" e de "Estruturas de Dados", ou equivalente.
Análise assintótica de algoritmos: Notação Big O (O, Ω e Θ), estimativas de tempo de execução, análise de programas iterativos e recursivos;
Ordenação: ordenação como peça básica de outros algoritmos, algoritmos comparativos e não comparativos, pesquisa binária e aplicações directas e indirectas;
Técnicas de desenho de algoritmos: pesquisa exaustiva, algoritmos ávidos (greedy), dividir-para-conquistar, programação dinâmica;
Algumas estruturas de dados especializadas: filas de prioridade, conjuntos disjuntos;
Árvores binárias de pesquisa balanceadas: árvores AVL e árvores Red-Black.
Algoritmos de grafos: representação de grafos, pesquisas em profundidade e largura, árvore de suporte de custo mínimo, distâncias mínimas, fluxo máximo.
Aulas teóricas para exposição da matéria acompanhada da discussão de alguns exemplos. Aulas práticas laboratoriais para resolução de folhas de exercícios e de problemas em computador com avaliação e feedback automatizado pelo sistema Mooshak. Questionários extra-aulas para consolidação da matéria dada.
Designação | Peso (%) |
---|---|
Exame | 70,00 |
Teste | 25,00 |
Trabalho prático ou de projeto | 5,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Frequência das aulas | 56,00 |
Estudo autónomo | 66,00 |
Trabalho laboratorial | 40,00 |
Total: | 162,00 |
Não serão registadas as presenças nem marcadas faltas nas aulas teóricas e nas práticas laboratoriais. No entanto, semanalmente serão feitos questionários online cujo preenchimento é obrigatório. Cada questionário estará online durante 7 dias e irá conter perguntas de escolha múltipla relativas à materia lecionada na semana anterior. A nota obtida em cada um dos questionários não contará para avaliação, mas para obter frequência um estudante terá de ter respondido a pelo menos 50% dos questionários.
Perde a frequência por não obtenção de nota mínima num componente da avaliação o estudante que tenha nota prática total inferior ou igual a 1.5 valores (25% de um máximo de 6).
Classificação da época normal: C = EN*0.7 + P >= 9.5
Classificação da época de recurso: C = ER*0.7 + P >= 9.5
No decorrer do semestre serão realizados dois testes práticos de programação e serão sugeridos exerícios práticos para resolver nas aulas e/ou em casa.
A componente prática é obrigatória para todos os estudantes inscritos.