Programação de Computadores
Aulas teóricas com exposição detalhada, recorrendo a meios audiovisuais, dos conceitos, princípios e teorias fundamentais e com a resolução de exercícios práticos elementares que concretizem o interesse prático da matéria e exemplifiquem a sua aplicação a situações reais.
Aulas práticas laboratoriais em que se pretende que os alunos, com a orientação do docente, resolvam alguns exercícios de aplicação prática, que exijam a conjugação de conceitos teóricos distintos e promovam o raciocínio crítico face a problemas mais complexos.
Esta unidade curricular pretende complementar os conhecimentos adquiridos na disciplina de Programação de Computadores.
Pretende-se que os alunos adquiram conhecimentos fundamentais em estruturas de dados e algoritmos, tipos de dados abstractos, algoritmos simples de ordenação e de pesquisa de dados, bem como programação com classes (programação orientada a objectos). Pretende-se ainda que sejam capazes de: identificar as propriedades de bons algoritmos; utilizar uma linguagem de programação orientada por objectos para implementar, testar e depurar algoritmos e estruturas de dados (listas, pilhas, filas, árvores binárias, árvores binárias de pesquisa); escrever programas que usem essas estruturas de dados; conhecer aplicações típicas dessas estruturas de dados; criar/seleccionar algoritmos e estruturas de dados para resolver um dado problema.
António Paulo Mendes Breda Dias Coimbra
Avaliação
A avaliação consiste em mini testes e frequências que promovem a aprendizagem contínua e em exame. Poderá ainda haver uma componente de avaliação com trabalhos de casa e um projecto.: 100.0%
• Michael T. Goodrich, Roberto Tamassia and David M. Mount (2004), Data Structures and Algorithms in C++, Wiley.
• Nell Dale (5th ed, 2011), C++ Plus Data Structures, Jones and Bartlett Publishers.