Objetivos / Competências
Os objectivos da unidade curricular de Programação Avançada visam dotar os alunos de conhecimentos de programação orientada a objectos para a implementação de estruturas de dados e algoritmos complexos.
Os alunos aprovados a esta unidade curricular deverão adquirir as seguintes competências:
• Conhecer o paradigma orientado a objectos, reconhecendo as suas características fundamentais;
• Conceptualizar e desenhar o modelo de uma aplicação, recorrendo a diagramas de classes, de acordo com a notação UML;
• Codificar o diagrama de classes em C++;
• Elaborar estruturas de dados complexas em C++.
Conteúdos programáticos resumidos
1. A linguagem de programação C (revisões)
2. Programação Orientada a Objectos
• Conceitos básicos
• Classes
• Herança
• Polimorfismo
3. Modelação
• A linguagem UML
• Diagramas de Classes
4. Programação em C++
5. Implementação de estruturas de dados em C++ com recurso à STL - Standard Template Library
• Vector
• Queue
• Priority Queue
Metodologias de ensino e critérios de avaliação
As aulas teóricas são dadas de acordo com o método expositivo, promovendo a interação constante com os alunos.
As aulas práticas baseiam-se na resolução de fichas práticas sobre a linguagem C++, utilizando ferramentas de desenvolvimento para esta linguagem.
Os alunos são avaliados durante as aulas, recorrendo a um método de avaliação contínua, utilizando uma plataforma online.
A avaliação da disciplina em qualquer época obedece aos seguintes critérios:
1. Assiduidade, fichas de avaliação e trabalhos práticos: 50% da nota final (min. 8 valores)
2. Prova escrita: 50% da nota final (min. 8 valores)
Bibliografia resumida
- Diapositivos da disciplina
- “C++ primer”, S. Lippman, Addison-Wesley, 2ª edição; COTA: 004.43 C++ LIP PRI
- “Programação Baseada em Objectos”, J. Delgado, INESC
- “Programação Orientada para Objectos”, Brad J. Cox Addison/Wesley - 1986
- “Programação em C++”, J. Berry, MAKRON Books
- “Programação em C++”, P. Rodrigues, P. Pereira, M. Sousa, FCA, 2000; COTA: 004.43 C++ ROD PRO
- “Object-oriented Software Construction”, B. Meyer, Prentice-Hall, 1988; COTA: 004.43 OBJECTOS ZUL
- “Thinking in C++”, B. Eckel, 2ª edição, Free Electronic Book – Volume 1 e 2, http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html