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/~apt/aulas/DAA/1819 |
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 | 89 | Plano de estudos a partir de 2014 | 2 | - | 6 | 56 | 162 |
L:F | 1 | Plano de Estudos Oficial | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:G | 0 | Plano estudos a partir do ano letivo 2017/18 | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:M | 11 | 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 |
MI:ERS | 140 | Plano Oficial desde ano letivo 2014 | 2 | - | 6 | 56 | 162 |
Aprendizagem de técnicas de concepção e análise de algoritmos eficientes.
Enriquecimento do conhecimento sobre modelos genéricos para alguns tipos de problemas e sobre 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 assintótica 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. O estudante deve ter já aprovação à unidade curricular de "Programação Imperativa" (CC1003) ou a "Estruturas de Dados" (CC1007), ou a unidades curriculares equivalentes.
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 diretas e indiretas;
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 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.
Designação | Peso (%) |
---|---|
Exame | 75,00 |
Trabalho laboratorial | 25,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Estudo autónomo | 71,00 |
Frequência das aulas | 56,00 |
Trabalho laboratorial | 35,00 |
Total: | 162,00 |
Serão registadas as presenças às aulas práticas. Perde a frequência por falta de assiduidade o estudante que faltar a mais de 25% das aulas práticas previstas. O número máximo de faltas às aulas práticas é de quatro.
Para dispensa de exame final a classificação dos testes escritos terá de satisfazer max(0.4*TE1+0.6*TE2, TE2) >= 8.
No decorrer do semestre são realizados dois testes escritos para dispensa de exame, se o calendário escolar permitir. As provas escritas (testes e exames) incluem perguntas gerais e perguntas sobre problemas vistos nas aulas práticas.
Será realizado um ou dois testes de programação com classificação de 5 valores (em 20) na nota final (ou seja 25%). Os testes terão avaliação automática pelo sistema Mooshak . Os problemas a resolver estarão relacionados com os propostos nas aulas práticas e para trabalho extra-aula.
A componente prática é obrigatória para todos os estudantes inscritos, independentemente do seu Estatuto. Se não a realizar, terá zero valores nessa componente.
Os estudantes aprovados em 2017/2018 que pretendam efetuar melhoria de classificação, devem realizar o teste prático de programação e o exame.