Código |
13927
|
Ano |
2
|
Semestre |
S2
|
Créditos ECTS |
6
|
Carga Horária |
PL(30H)/T(30H)
|
Área Científica |
Informática
|
Objectivos de Aprendizagem |
Esta unidade curricular tem como objetivos?- aprofundar os conhecimentos de programação (usando linguagem C), através do estudo de tópicos avançados (ficheiros binários e memória dinâmica);?- adquirir conhecimentos sobre algoritmia, em particular algoritmos recursivos, de ordenação e de pesquisa, e de análise de complexidade dos algoritmos.
No final desta unidade curricular o estudante deve ser capaz de resolver problemas utilizando a linguagem de programação em C e os conceitos avançados estudados, assim como desenvolver competências de algoritmia, em particular em problemas que envolvam recursividade, ordenação e/ou pesquisa.?O estudante deve também ser capaz de analisar a eficiência dos algoritmos, através da respetiva análise de complexidade, de forma a usar os algoritmos mais eficientes para a resolução do problema em questão.
|
Conteúdos programáticos |
1. Memória dinâmica ?2. Passagem de parâmetros a main ?3. O pré-processador do C ?4. Recursividade? 5. Algoritmos de ordenação: iterativa (Selecção e Bubblesort) e recursiva (Quicksort e Fusão) 6. Algoritmos de pesquisa: iterativa (exaustiva, sequencial e binária) e recursiva (binária)? 7. Tabelas de dispersão (Hash) 8. Análise de complexidade dos algoritmos 9. Ficheiros binários
|
Metodologias de Ensino e Critérios de Avaliação |
Para que o estudante possa adquirir as competências exigidas para a Unidade Curricular, estão previstas - duas horas semanais de aulas teóricas para exposição dos conceitos teóricos e teórico-práticos, utilizando para o efeito a projeção de slides?- duas horas semanais de práticas num dos laboratórios de desenvolvimento de software, nas quais o estudante irá aplicar e testar os conhecimentos adquiridos nas aulas teóricas resolvendo exercícios que constam em fichas criadas para tal, e realizar os trabalhos práticos relativos à avaliação da Unidade Curricular. - Os slides e as fichas são disponibilizados online, tal como toda a informação relativa ao funcionamento da Unidade Curricular.
Avaliação: ?Aprendizagem:?- Avaliação de conhecimentos (AC) - 12 valores (60%) em 1 teste;?- Trabalhos nas aulas práticas (TP) - 8 valores (40%) em 4 trabalhos (2 valores cada). - Classificação Final (CF): AC + TP.? Exame:?- Admissão: TP >= 3.2 e CF >= 6.?- Nota Final: CF ou TP + Exame.
|
Bibliografia principal |
Principal/Main: ?- ""Estruturas de Dados e Algoritmos em C"", Tecnologias de Informação, António Manuel Adrego da Rocha, FCA - Editora Informática, 2008? - ""Linguagem C"", Luís Damas, FCA - Editora de Informática, 1999? Complementar/Complementary: ?- ""Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms"", By Robert Sedgewick, Addison-Wesley Professional; 3rd Edition, 2001 ?- ""Elementos de Programação com C"", 3a Edição Actualizada e Aumentada, Pedro Guerreiro, FCA - Editora Informática, 2006
|
Língua |
Português
|