Turma - Prof. Marcelo Cohen

Acesso ao Moodle

Próximas aulas:


Não há mais atividades

Programa da Disciplina

Ementa

Desenvolvimento de sistemas de software de complexidade média utilizando o paradigma de orientação a objetos. Estudo e análise dos conceitos de herança e polimorfismo. Discussão de aspectos avançados sobre classes. Discussão sobre empacotamento e distribuição de aplicações. Implementação de estruturas de dados encadeadas. Uso de bibliotecas de coleções. Projeto de sistemas orientados a objetos.

Objetivos

  1. Conhecer e utilizar de forma precisa conceitos e termos relacionados ao paradigma de orientação a objetos.
  2. Desenvolver as competências e habilidades para a criação de sistemas de complexidade média, formado por múltiplos componentes, e expressar estas soluções na forma de um sistema de classes em uma linguagem de programação.
  3. Descrever sistemas utilizando diagramas e código.
  4. Construir abstrações para tipos de dados, usando os conceitos de classe, objeto-mensagem, herança e interface.
  5. Compreender e utilizar as técnicas fundamentais de teste e depuração de programas.

UNIDADE 1: Objetos e Classes

1.2. Revisão de Conceitos
1.2.1. Classes e objetos
1.2.2. Atributos e métodos: classe e instância
1.2.3. Tipos de dados: referência e valor
1.2.4. Visibilidade de atributos e métodos
1.2.5. Construtores e destrutores
1.3. Sobrecarga de métodos
1.4. Modelagem orientada a objetos
1.4.1 Associações e dependências
1.4.2 Diagramas de classe UML
1.4.3 Problemas de modelagem
1.5. Introdução ao teste unitário

UNIDADE 2: Herança e Polimorfismo

2.1. Relacionamento de generalização/especialização
2.1.1 Herança simples
2.1.2 O princípio da substituição
2.1.3 Sobrescrita de métodos
2.2. Polimorfismo
2.2.1. Explorando polimorfismo
2.2.2. Classes abstratas
2.2.3. A classe Object
2.2.4. O operador instanceof
2.2.5. Interfaces
2.4. Parametrização de tipos
2.5. Problemas de modelagem

UNIDADE 3: Entrada e saída e tratamento de exceções

3.1. Tratamento de exceções
3.1.1. Lançamento de exceções
3.1.2. Captura de exceções
3.1.3. Entendendo a hierarquia de exceções padrão
3.1.4. Modelando exceções
3.2. Leitura e escrita de arquvios texto
3.2.1. Leitura de dados
3.2.2. Gravação de dados
3.2.3. Formatação de dados
3.2.4. Armazenamento e recuperação de objetos

UNIDADE 4: Projeto de Sistemas Orientados a Objetos

4.1. Princípios de Projeto Orientado a Objetos
4.1.1 Encapsulamento, coesão, acoplamento
4.1.2 Heurísticas de projeto
4.2. Introdução à reutilização
4.2.1 Padrões de projeto
4.2.2 Frameworks
4.2.3 Componentes

UNIDADE 5: A API de Coleções

5.1. Coleções
5.1.1. A estrutura da API de coleções
5.1.2. Listas, filas e pilhas
5.1.3. Conjuntos
5.1.4. Mapas
5.1.5. Resolução de problemas
5.2. Expressões lambda e predicados

UNIDADE 6: Interface de Usuário Gráfica

5.1. O framework de interface de usuário
5.2. Hierarquia de componentes
5.3. Eventos e ações
5.4. Janelas e painéis
5.5. Menus

Bibliografia

Básica

1. HORSTMANN, C. Java for everyone: late objects. 2nd ed. Danvers: Wiley, 2013. 589 p.
2. RAMNATH, S.; DATHAN, B. Object-oriented analysis and design. New York: Springer, 2010. 440 p.
3. WEISFELD, M. The object-oriented thought process. 4th ed. Addison Wesley, 2013. 36 p.

Complementar

1. BOOCH, G.; MAKSIMCHUK, R. A.; ENGLE, M. W.; YOUNG, B. J.; CONALLEN J.; HOUSTON, K. A. Object-oriented analysis and design with applications. 3rd ed. Addison Wesley, 2007. 720 p.
2. DEITEL, P.; DEITEL, H. Java: how to program. 9th ed. Prentice Hall, 2011. 1496 p.
3. FARRELL, J. An object-oriented approach to programming logic and design. 4th ed. Cengage Learning, 2012. 560 p.
4. GAMMA, E.; JOHNSON, R.; VLISSIDES, J.M.; HELM, R.; FOWLER, M. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2002. 364 p.
5. GOODRICH, M. T.; TAMASSIA, R. Estruturas de dados e algoritmos em Java. 4ª ed. Porto Alegre: Bookman, 2012. 600 p.

Outras referências

  1. Documentação:
  2. Sites:
  3. Ferramentas:

Avaliação

Média de G1 = (P1 + 2P2 + 2TF + ME) / 6

Onde:

PS - Prova de substituição, abrangendo toda a matéria. Apenas os alunos que não compareceram a uma das 2 provas (P1 ou P2) têm direito que realizar esta prova

G1 = Para aprovação em G1 é necessário média maior ou igual a 7 e freqüência mínima de 75%

G2 = Os alunos que não obtiveram aprovação em G1 devem realizar a prova de G2, desde que:

A média de G2 é calculada da seguinte forma:

G2 = (G1 + nota da prova de G2) / 2

Se o aluno obtiver média de G2 maior ou igual a 5 será aprovado.

Datas das Avaliações

Material de Apoio