Programação III – 2014/1
Ementa: programação orientada a objetos: classes e objetos, atributos e métodos, especificadores de acesso, herança, classes e métodos abstratos, polimorfismo, classes e métodos genéricos, tratamento de exceções, tratamento de eventos, estudo das linguagens de programação orientadas a objeto C++ e Java.
Objetivo: habilitar os alunos para modelar programas segundo o paradigma da orientação a objetos e implementar programas orientados a objetos nas linguagens de programação Java e C++.
Metodologia: aulas expositivas e aulas práticas em laboratório.
Dia/horário das aulas: terças e sextas-feiras, das 11h às 13h.
Local: Ufes (Av. Fernando Ferrari, 514 – Goiabeiras – Vitória, ES), CT-9, sala 204 (aulas teóricas) / LabGrad (aulas de laboratório)
Carga horária semestral: 60 horas.
Mais informações:
- Programa detalhado;
 - Sistema de avaliação;
 - Bibliografia;
 - Cronograma / datas importantes;
 - Download de material do curso (slides, exercícios, etc.);
 - Material do curso 2013/2;
 - Agende um horário para atendimento.
 
Programa detalhado
- Orientação a Objetos:
- Paradigmas de desenvolvimento: estruturado vs. orientado a objetos;
 - Princípios fundamentais, conceitos básicos e avançados;
 - Modelagem orientada a objetos com UML;
 
 - Programação Orientada a Objetos em Java:
- Tipos, variáveis e operadores;
 - Estruturas de controle, programação “procedural” em Java;
 - Classes e objetos, reuso de classes, visibilidade, polimorfismo;
 - RTTI e interfaces, classes internas;
 - Manipulação de exceções;
 - Manipulação de arquivos e fluxos de dados;
 - Utilitários;
 - Tipos genéricos;
 
 - Programação Orientada a Objetos em C++:
- De C a C++: retro-compatibilidade da nova linguagem;
 - Classes e objetos, reuso de classes;
 - Sobrecarga de operadores;
 - Funções virtuais e polimorfismo;
 - Gabaritos (tipos genéricos);
 - Tratamento de exceções.
 
 
Sistema de avaliação
A avaliação será constituída de 1 prova (P) valendo 10 e 2 trabalhos computacionais (T1 e T2) valendo 10 cada. A nota parcial será obtida com a seguinte fórmula:
Alunos que obtiverem nota parcial igual ou superior a 7 não farão prova final, tendo sua nota final igual à nota parcial. Demais alunos terão sua nota final calculada pela média aritmética simples entre a nota parcial e a nota da prova final e deverão obter nota final igual ou superior a 5 para serem aprovados.
Nota: o aluno que tiver mais de 25% (vinte e cinco por cento) de faltas, contadas em relação ao número de horas-aula previstas para a disciplina, será privado do direito de prestar exame final e estará, independentemente de qualquer outra condição, reprovado (Art. 51 Regimento CT, art. 104 Regimento Geral Ufes).
Bibliografia
Livros:
- R. P. Silva. UML2 em Modelagem Orientada a Objetos. Visual Books, 2007;
 - M. Fowler. UML Essencial. Bookman, 2005;
 - C. Larman. Utilizando UML e Padrões, 3a Edição. Bookman, 2008;
 - R. Santos. Uma Introdução à Programação Orientada a Objetos usando Java. Campus/Elsevier, 2003;
 - K. Sierra, B. Bates. Use a Cabeça! Java. Alta Books, 2005;
 - P. Deitel, H. Deitel. Java – Como Programar, 8a Edição. Pearson Prentice Hall, 2010;
 - P. Deitel, H. Deitel. C++ Como Programar, 5ª Edição. Pearson Education, 2010;
 - B. Stroustrup. Princípios e Práticas de Programação C++. Bookman, 2011.
 
Materiais disponíveis online:
- Apostila Programação Orientada a Objetos em Java (Flávio M. Varejão);
 - Apostila Programação Orientada a Objetos em C++ (Berilhes B. Garcia, Flávio M. Varejão);
 - Apostila do curso FJ-11: Java e Orientação a Objetos (Caelum);
 - Livro “Thinking in Java”, 3a edição (Bruce Eckel);
 - Livro “Thinking in C++”, 2a edição, volume 1 (Bruce Eckel).
 
Ambos os livros do Bruce Eckel podem ser obtidos mais diretamente na página de downloads de livros da MindView. É possível chegar a ela usando os links acima, porém este link é mais direto.
Cronograma / Datas importantes
O período 2014/1 inicia em 01/04/2014 e termina em 31/07/2014. A semana de provas finais 2014/1 vai de 01 a 07/07/2014. A tabela abaixo resume eventos importantes durante o curso. O programa de aulas com o cronograma completo do curso é exibido em seguida.
| Data | Descrição | 
|---|---|
| 01/04/2014 | Primeira aula do curso. | 
| 18/04/2014 | Feriado (Semana Santa). | 
| 23/05/2014 | Prova parcial. | 
| 30/06/2014 | Entrega do trabalho Java. | 
| 15/07/2014 | Aula 30 (completando 60 horas-aula). Após este dia só haverá aula se houver necessidade de reposição. | 
| 25/07/2014 | Entrega do trabalho C++. | 
Download de material
- Apresentação do curso;
 - O Paradigma Orientado a Objetos;
 - Modelagem OO com UML;
 - Exercícios de modelagem OO com UML: Clínica Médica;
 - Slides do curso de Java – parte 01: Introdução;
 - Slides do curso de Java – parte 02: Tipos, variáveis e operadores;
 - Slides do curso de Java – parte 03: Estruturas de controle e programação básica;
 - Slides do curso de Java – parte 04: Classes e objetos;
 - Lista de Exercícios Java 01 (Partes 1 a 4 do curso): lista / exercícios resolvidos;
 - Slides do curso de Java – parte 05: Reuso de Classes;
 - Slides do curso de Java – parte 06: Polimorfismo;
 - Slides do curso de Java – parte 07: RTTI e Interfaces;
 - Slides do curso de Java – parte 08: Classes Internas;
 - Lista de Exercícios Java 02 (Partes 5 a 8 do curso): lista / exercícios resolvidos;
 - Slides do curso de Java – parte 09: Exceções;
 - Slides do curso de Java – parte 10: Arquivos e fluxos;
 - Slides do curso de Java – parte 11: Utilidades;
 - Slides do curso de Java – parte 12: Tipos genéricos;
 - Lista de Exercícios Java 03 (Partes 9 a 12 do curso): lista / exercícios resolvidos;
 - Curso Rápido de C++: slides;
 - Lista de Exercícios C++: lista / exercícios resolvidos;
 - Código-fonte de exemplo de "tokenização" em C++;
 - Encontra-se disponível o nemo-utils-cpp. Para obtê-lo como projeto no Eclipse e executar o programa de testes, siga os seguintes passos:
- Abra o Eclipse C/C++ e clique em File – Import…;
 - Na pasta Git, selecione Projects from Git e clique Next;
 - Selecione URI e clique Next;
 - No campo URI, preencha https://github.com/nemo-ufes/nemo-utils-cpp.git e clique Next;
 - A opção master deve estar marcada. Apenas clique Next;
 - Verifique onde o projeto será salvo no campo Directory, alterando-o caso deseje. Clique Next;
 - Deixe a opção Import existing projects selecionada e clique Next;
 - Na lista Projects o projeto nemo-utils-cpp deve ter aparecido. Clique Finish;
 - Clique com o botão direito no projeto e escolha Run As… – Local C/C++ Application.
 
 - Exemplo de Makefile.
 
Trabalho prático
Arquivos disponíveis: