SCC-204(Moacir)

De CoteiaWiki
Revisão de 14h05min de 21 de março de 2011 por Moacir (discussão | contribs) (Descrição e informações)

SCC-0204 Programaçao Orientada a Objetos

Terça as 14h20 e Sexta as 10h10 - Sala 5-003

Professor: Moacir Ponti Jr (moacir at icmc usp br), Sala 4-117
Horário de atendimento: Quintas das 16h às 19h
Aluno PAE: Ricardo Ramos (ricardoramos [arroba] icmc usp br)
Atendimento por demanda - procurá-lo ou enviar email para marcar
Monitor especial: Eduardo Henrique dos Santos (eduhsbc [arroba] grad icmc usp br)
Aulas de laboratório com exercícios: Quartas das 13h as 14h, sala 6-305 (bloco 6) (nova informação)

Exercícios

Trabalhos Práticos

Critérios de avaliação

  1. Observação dos conceitos de orientação a objetos, projeto das classes e relação entre elas
  2. Boas práticas de programação: endentação, uso das estruturas de controle e variáveis
  3. Documentação da classe e dos métodos, comentários úteis no código
  4. Cumprimento dos objetivos e tarefas requeridas no enunciado

Descrição e informações

1) Estruturação das classes, e conceitos de orientação a objetos com cumprimento dos objetivos do trabalho: 70%
2) Clareza, endentação, comentários e documentação das classes e métodos: 30%

Provas

Datas: 03/05 (P1), 28/06 (P2)

Notas

Conteúdo e Material Didático

1. Apresentação da Disciplina: objetivos, programa, materiais, avaliação e bibliografia.
Introdução à Programação Orientada a Objetos
- Classe e objeto, implementações em C++ e Java
- Comparação com paradigma imperativo
- Compilação e execução em C++ e Java
Bibliografia sugerida: Deitel, seções 3.1 a 3.5, Slides Prof. Fernando Paulovich: [1]
2. Detalhes de Implementação: C++ e Java
- Ponteiros e endereçamento
- Alocação dinâmica e estática de objetos em C++
- Projeto e diagramas de classe e objeto: estado/comportamento
- Alocação de objetos em Java e referência nula
- Passagem de parâmetros para métodos em Java
- BlueJ e Máquina virtual Java (JVM)
Bibliografia sugerida: Deitel, seções 3.6 a 3.8, Slides Prof. Fernando Paulovich: [2]
Figuras JVM: [3] e [4]
Exemplos das aulas 1 e 2: aula02.tar.gz
3. Main, Construtores, Destrutores e Interação entre Objetos
- função principal (main) em Java e C++
- múltiplos setters -> construtores
- objeto: declaração, instanciação e inicialização
- implementar construtores em C++
- destrutores em C++
- uso de new/delete
- implementar construtores em Java
Exemplos da aula 3: aula03.tar.gz
4. Introdução ao Projeto Orientado a Objetos
- interação entre objetos -> exemplos em Java e C++
- diagramas de classe e objeto
- exercício
- exemplo de projeto de duas classes com implementação: C++ e Java
Exemplos da aula 4: aula04.tar.gz
5. Detalhes de implementação: constantes, estáticos e tipos: parte1
- constantes
- tipos primitivos e classes Wrapper em Java [5]
- atributos e métodos static em Java
Exemplos da aula 5: aula05.tar.gz
6 Detalhes de implementação: constantes, estáticos: parte 2 e Coleções de Objetos
- constantes e static em C++
- pacotes Java
- coleção de objetos
- exemplo usando os conceitos vistos ate agora
Exemplos da aula 6: aula06.tar.gz
7, 8 e 9. Conceitos de Orientação a Objetos - Herança: parte 1
- Encapsulamento, super e subclasse, herança
- em Java, exemplo da aula 7: aula07.tar.gz
- Polimorfismo em C++ e Java
Exemplos da aula 8: aula08.tar.gz
10 e 11. Conceitos de Orientação a Objetos - Herança: parte 2
- herança múltipla em C++
- exemplos e exercícios
12 e 13. Classes abstratas, interaces e programação genérica
14 e 15. Herança e abstração: exercícios e exemplos

Leituras complementares e links

  • Documentação Java da SUN/ORACLE [6]
-> acesse [7] vá em "Additional resources" para baixar a documentação (Java SE 6 Documentation) e o código fonte das classes (Java JDK source code)
  • Download do BlueJ [8]
  • Exemplos do livro do Barnes para uso em BlueJ [9]