Obrigatória – 90 horas – 5 créditos
Pré-requisitos: Técnicas de Programação I
Professor Responsável: Pedro Moura
Objetivos da Disciplina
Capacitar o aluno a desenvolver projetos utilizando conceitos básicos de modelagem, linguagens orientada a objeto e estruturas de dados através da:
- Interpretação de diagramas de uma linguagem de modelagem
- Identificar as propriedades e as responsabilidades dos objetos
- Implementar gabaritos para as estruturas de dados básicas
- Modelar e implementar sistemas utilizando Linguagem Orientada a Objeto
Ementa
- Tipos de dados compostos
- Ponteiros
- Implementação das estruturas de dados básicas (listas, filas e pilhas)
- Registros e arquivos
- Algoritmos recursivos
Conteúdo Programático
- Algoritmos recursivos
- Módulos recursivos
- Registros de ativação de procedimentos e funções
- Algoritmos recursivos. Funções matemáticas recursivas
- Introdução à orientação a objetos
- Conceitos de orientação a objetos
- Classes e objetos
- Atributos e métodos
- Construtores e Destrutores
- Construtores
- Armazenamento dinâmico
- Argumentos default
- Destrutores
- Sobrecarga
- Sobrecarga de funções
- Sobrecarga de operadores
- Conversão entre tipos
- Derivação de Classes
- Derivação uma classe
- Funções virtuais
- Herança múltipla
- Classes virtuais
- Herança
- Polimorfismo
- Estruturas de dados
- Listas
- Filas
- Pilhas
Metodologia
Aulas expositivas e em laboratório. Exercícios resolvidos pelos alunos.
Exposição de conteúdo: aulas presenciais terão exposição de conteúdo teórico e proposta de projetos para a prática destes conteúdos.
Aprendizagem colaborativa: alguns dos projetos propostos pelo professor serão resolvidos com sessões de DOJO (uma dupla desenvolve enquanto o resto da turma acompanha e discute o que a dupla está desenvolvendo), visando emergir as dúvidas da turma e também promover a integração dos alunos para a aprendizagem em grupo.
Aprendizagem baseada em projeto: a partir dos exemplos de projetos apresentados em sala o aluno deverá desenvolver um projeto, utilizando uma linguagem Orientada a Objetos, para a solução de um problema a sua escolha.
Avaliação
Avaliação contínua: Ao longo da disciplina, o estudante entregará tarefas intermediárias aplicando e fixando individualmente o conteúdo da disciplina em exercícios propostos pelo professor. Em grupos, os estudantes respondem a um conjunto de questões propostas pelo professor.
Avaliação Somativa: Consiste de três notas: G1, G2 e G3. Cada uma delas podendo ser composta pela combinação de três instrumentos de avaliação, a saber: prova, trabalhos práticos de implementação e participação em sala de aula.
Cálculo da nota-final: A média final será igual a média da G1e a G2 se esta for maior que 7,0 senão esta será igual a ((média da G1 e a G2) + G3)/2.
Serão aprovados apenas os alunos com média final igual ou superior a 5,0.
Bibliografia
- GAMMA, E., et al. Padrões de Projeto. Bookman, 2005.
- DEITEL, H. & DEITEL, P. C++ Como programar. Prentice Hall, 2006.
- STROUSTRUP, B. Princípios e práticas de Programação C++. Bookman, 2011.
- MEYERS, S. Effective C++. Addison Wesley, 1998