1. Saber escolher, criar e utilizar estruturas de dados.
2. Saber escrever algoritmos iterativos e recursivos sobre estruturas de dados.
3. Adquirir conhecimentos sobre algoritmos de ordenação e de pesquisa em estruturas de dados.
4. Saber analisar a complexidade dos algoritmos de ordenação e de pesquisa em estruturas de dados
5. Saber resolver problemas de pequena e média escala, usando as estruturas de dados e as estratégias mais adequadas e os algoritmos mais eficientes.
1. Introdução ao estudo da eficiência de algoritmos: critérios para avaliar a eficiência de um algoritmo; a notação do O maiúsculo.
2. Tipos de Dados Abstratos (TDA): pilhas, filas, listas, árvores binárias, grafos e dicionários.
3. Implementações vetoriais e dinâmicas de TDAs.
4. Algoritmos de pesquisa: sequencial, binária, com árvores binárias, com tabelas de dispersão, caminho mais curto e de menor custo em grafos.
5. Algoritmos de ordenação: inserção direta, seleção direta, bubble sort, shellsort, mergesort, quicksort, radix sort, heapsort.
As aulas teóricas são expositivas em que se apresentam os conceitos elementares de programação com recurso a exemplos e demonstrações, usando a linguagem Python.
As aulas práticas laboratoriais funcionam articuladas com as aulas teóricas e são preenchidas pela exposição e resolução de problemas, de pequena e média escala, com soluções algorítmicas, usando a linguagem Python.
Os estudantes desenvolvem um projeto que é o elemento aglutinador dos conteúdos aprendidos ao longo da unidade curricular, que permite analisar, desenhar e implementar pequenos programas numa situação mais próxima da realidade e adquirir competências de trabalho autónomo e em equipa.
A plataforma de e-Learning Moodle da UAc (em http://moodle.uac.pt) é utilizada como repositório de material pedagógico e didático de apoio à aprendizagem, bem como de plataforma de agendamento, divulgação e promoção de atividades complementares e de gestão dos elementos de avaliação.
Essencial
Complementar
01060934
6