Programação III – 2013/2
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 quintas-feiras, das 13h às 15h.
Local: Ufes (Av. Fernando Ferrari, 514 – Goiabeiras – Vitória, ES), CT-9, sala 108 (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/1;
- 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 aulas-hora 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).
Cronograma / Datas importantes
O período 2013/2 inicia em 07/10/2013 e termina em 11/03/2014. A semana de provas finais 2003/2 vai de 12 a 19/03/2014 (semanas seguintes ao Carnaval!). 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 |
---|---|
08/10/2013 | Aula 01 (apresentação e início do conteúdo do curso). |
12/11/2013 | Não haverá aula para que os alunos possam participar do Ciclo de Palestras do PET. |
26/11/2013 | Aula cancelada devido às fortes chuvas na Grande Vitória. Prova Parcial 01 adiada para quinta-feira, 28/11. |
28/11/2013 | Prova parcial. |
19/12/2013 | Última aula antes do recesso de Natal e Ano Novo. |
27/12/2013 | Prazo para entrega do trabalho Java. |
21/01/2014 | Não haverá aula por causa do VestUfes (dia letivo cancelado). |
23/01/2014 | Primeira aula após o recesso de Natal e Ano Novo. |
25/02/2014 | Aula 30 (completando 60 horas-aula). Após este dia só haverá aula se houver necessidade de reposição. |
25/02/2014 | Prazo para entrega do trabalho C++. |
04/03/2014 | Feriado (Carnaval). |
Download de material
- Apresentação do curso;
- O Paradigma Orientado a Objetos;
- Modelagem OO com UML;
- Lista de exercícios OO/UML 01: Clínica Médica;
- Lista de exercícios OO/UML 02: Disque Rango;
- 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++;
- Tutorial Desenvolvimento Web em Java: slides parte I / instruções para demonstrações parte I.
Trabalho prático
- Especificação (atualizada em 28/01/2014);
- Figura 1 da especificação em resolução melhor;
- Exemplo de uso do Ant para construção do trabalho;
- Arquivos de teste: