Programação III – 2019/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 aprofundado de uma linguagem de programação orientada a objetos.
Objetivo: projetar e programar usando os conceitos de Programação Orientada a Objetos. Aprender a usar linguagens de programação orientadas a objetos.
Metodologia: aulas expositivas e aulas práticas em laboratório.
Dia/horário das aulas: terças-feiras das 11h às 13h e sextas-feiras das 9h às 11h.
Local: CT-9, sala 207 (aulas teóricas), CT-9, sala 105 (LabGrad, aulas práticas) – UFES (Av. Fernando Ferrari, 514 – Goiabeiras – Vitória, ES).
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.);
- Agende um horário para atendimento.
Programa detalhado
- Orientação a Objetos:
- Princípios fundamentais, conceitos básicos e avançados;
- Da programação estruturada à programação OO;
- Classes e Objetos:
- Abstração de Dados;
- Classes e Objetos;
- Atributos e Métodos;
- Encapsulamento e Ocultamento de Informação;
- Classes internas;
- Herança:
- Composição x Derivação;
- Herança Simples de Métodos e Atributos;
- Sobrescrição de Métodos;
- Polimorfismo;
- Amarração Dinâmica de Métodos;
- Ampliação e Estreitamento de Tipos;
- Classes e Métodos Abstratos;
- Herança Múltipla;
- Genéricos:
- Funções e Métodos Genéricos;
- Classes Genéricas;
- Estruturas de Dados Genéricas;
- Genéricos e Herança;
- Exceções:
- Tipos;
- Tratamento;
- Lançamento;
- Propagação;
- Criação;
- Tópicos avançados:
- Estudo de Outras Linguagens de Programação OO.
Sistema de avaliação
A avaliação será constituída de 2 provas (P1 e P2) 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.
Observação: o aluno que tiver mais de 25% (vinte e cinco por cento) de faltas, contadas em relação ao número de horas-aulas 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). Além disso, a média final da disciplina será arredondada para valores inteiros ou fração de 0,5, de acordo com o art. 63, parágrafos 1º e 2º do Regimento CT.
Bibliografia
Livros:
- SIERRA, Kathy; BATES, Bert. Use a cabeça! Java. 2. ed. Rio de Janeiro: Alta Books, 2010.;
- 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;
A lista de livros da bibliografia complementar está disponível no programa da disciplina arquivado junto à secretaria do Departamento de Informática.
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 2019/1 inicia em 11/03/2019 e termina em 13/07/2019. A semana de provas finais 2019/1 vai de 15 a 19/07/2019. 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 |
---|---|
12/03/2019 | Primeira aula do curso. |
19/04/2019 | Não haverá aula – Feriado: Paixão de Cristo. |
30/04/2019 | Não haverá aula – LabGrad indisponível. |
10/05/2019 | Prova Parcial 01 (Java). |
07/06/2019 | Prazo para entrega do T1 (Java). |
07/06/2019 | Não haverá aula – LabGrad indisponível. |
14/06/2019 | Não haverá aula – LabGrad indisponível. |
21/06/2019 | Não haverá aula – Feriado: Corpus Christi (enforcado). |
02/07/2019 | Não haverá aula – LabGrad indisponível. |
05/07/2019 | Prova Parcial 02 (C++). |
12/07/2019 | Última aula do curso (completando 60 horas-aula). |
12/07/2019 | Prazo para entrega e entrevistas sobre T2 (C++). |
16/07/2019 | Prova Final. |
Download de material
Se desejar, consulte o material antigo deste curso. Apesar das listas de exercícios disponíveis abaixo, sugere-se que os alunos trabalhem nos exercícios cadastrados na Plataforma BOCA.
- Apresentação do curso;
- Introdução à Programação Orientada a Objetos;
- Exercício de Revisão de C;
- Java, parte 01: O que é Java;
- Java, parte 02: Variáveis primitivas e controle de fluxo;
- Java, parte 03: Orientação a objetos básica;
- Java, parte 04: Um pouco de vetores;
- Exercícios, partes 01 a 04: lista / exercícios resolvidos;
- Java, parte 05: Modificadores de acesso e atributos de classe;
- Java, parte 06: Herança, reescrita e polimorfismo;
- Java, parte 07: Classes abstratas e interfaces;
- Exercícios, partes 05 a 07: lista / exercícios resolvidos;
- Java, parte 08: Exceções e controle de erros;
- Java, parte 09: Organizando suas classes;
- Java, parte 10: Utilitários da API Java;
- Exercícios, partes 08 a 10: lista / exercícios resolvidos;
- Exercícios: lista de questões retiradas de provas anteriores;
- Java, parte 11: Conteúdo extra.
- 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 cpp-utils. 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/vitorsouza/cpp-utils.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.
Trabalhos práticos
Arquivos disponíveis: