Código: | CC1022 | Sigla: | CC1022 | Nível: | 100 |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Ciência de Computadores |
Ativa? | Sim |
Unidade Responsável: | Departamento de Ciência de Computadores |
Curso/CE Responsável: | Licenciatura em Matemática |
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:F | 0 | Plano de Estudos Oficial | 3 | - | 6 | 56 | 162 |
L:G | 0 | Plano estudos a partir do ano letivo 2017/18 | 2 | - | 6 | 56 | 162 |
L:M | 3 | 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 |
O estudante deverá ser capaz de:
- compreender, utilizar e desenvolver programas com tipos abstratos de dados (TAD) de acordo com os requisitos de problemas propostos;
- compreender e utilizar as noções de atributo e método de um tipo abstrato de dados;
- utilizar e adaptar, programando-os, TADs que implementam listas ligadas, pilhas, filas, árvores binárias, heaps, tabelas de hash e grafos;
- analisar trechos de algoritmos do ponto de vista da complexidade computacional e situá-los numa ordem de complexidade;
- programar funções recursivas;
- programar e analisar algoritmos de procura e inserção sequencial, em lista ordenada, em árvore ordenada e em tabela de hash;
- programar e analisar algoritmos de ordenação tais como o bubblesort, mergesort, quicksort e heapsort;
- programar e analisar algoritmos de criação e manipulação de estruturas de dados como árvores binárias, árvores binárias ordenadas, heaps e grafos.
Nota: nesta unidade curricular a programação é feita utilizando a linguagem Python.
O estudante é capaz de:
- compreender, utilizar e desenvolver programas com tipos abstratos de dados (TAD) de acordo com os requisitos de problemas propostos;
- compreender e utilizar as noções de atributo e método de um tipo abstrato de dados;
- utilizar e adaptar, programando-os, TADs que implementam listas ligadas, pilhas, filas, árvores binárias, heaps, tabelas de hash e grafos;
- analisar trechos de algoritmos do ponto de vista da complexidade computacional e situá-los numa ordem de complexidade;
- programar funções recursivas;
- programar e analisar algoritmos de procura e inserção sequencial, em lista ordenada, em árvore ordenada e em tabela de hash;
- programar e analisar algoritmos de ordenação tais como o bubblesort, mergesort. quicksort e heapsort;
- programar e analisar algoritmos de criaçao e manipulação de estruturas de dados como árvores binárias, árvores binárias ordenadas, heaps e grafos.
Nota: nesta unidade curricular a programação é feita utilizando a linguagem Python.
Revisão do Python. Tipos abstractos de dados: atributo e método. Colecções de objectos: listas ligadas,, filas, e pilhas. Recursividade. Noções de complexidade algorítmica. Algoritmos de procura e inserção: procura sequencial, binária em tabela de hash. Algoritmos de ordenação. Árvores binárias: não ordenadas e ordenadas. Árvores de procura e armazenamento. Heaps. Grafos.
- Aulas teóricas em parte expositivas e em parte demonstrativas da resolução de problemas.
- Aulas práticas em laboratório.
- Exercícios formativos (auto-avaliação) em computador, para realizar fora das aulas e utilizando uma plataforma de validação automática de programas através de testes unitários.
- Plataforma de e-learning (Moodle) com pdfs das transparências apresentadas nas aulas e dos exercícios práticos apresentados.
- Esta plataforma tem também um forum onde são feitos anúncios e onde os alunos podem discutir assuntos relativos à unidade curricular.
- Avaliação distribuída com exame final:
* 2 testes de programação: 6 valores
* exame final: 14 valores.
Designação | Peso (%) |
---|---|
Exame | 70,00 |
Participação presencial | 0,00 |
Teste | 30,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Estudo autónomo | 85,00 |
Frequência das aulas | 65,00 |
Total: | 150,00 |
* Necessário assistir às aulas práticas, não faltando a mais de 1/4 das aulas dadas.
* Obter nota maior que zero num dos testes práticos.
* Ter sucesso em pelo menos 50% (ponderado) das tarefas de auto-avaliação propostas.
0.2*MPT+0.1*PTP+0.7*EX
MPT: melhor teste prático
PTP: pior teste prático
EX: exame
Pode melhorar em recurso a nota do exame na época normal e combinar com as notas dos testes.