Mudanças entre as edições de "SCC-204(Moacir)"

De CoteiaWiki
(Descrição e informações)
(Trabalhos Práticos)
Linha 15: Linha 15:
 
* [[Media:poo_ListaExercicios_01.pdf‎|Exercício 1 (pdf)]] - livros e capítulos de livros
 
* [[Media:poo_ListaExercicios_01.pdf‎|Exercício 1 (pdf)]] - livros e capítulos de livros
  
== Trabalhos Práticos ==
+
== Trabalho Prático ==
  
=== Critérios de avaliação ===
 
# Observação dos conceitos de orientação a objetos, projeto das classes e relação entre elas
 
# Boas práticas de programação: endentação, uso das estruturas de controle e variáveis
 
# Documentação da classe e dos métodos, comentários úteis no código
 
# Cumprimento dos objetivos e tarefas requeridas no enunciado
 
 
=== Descrição e informações ===
 
 
Tema: '''Simulador de campeonato de futsal'''
 
Tema: '''Simulador de campeonato de futsal'''
 
- '''Em duplas''' (a dupla deverá permanecer a mesma em cada trabalho)
 
- '''Em duplas''' (a dupla deverá permanecer a mesma em cada trabalho)
 
- Incremental (um trabalho é a continuação do anterior)
 
- Incremental (um trabalho é a continuação do anterior)
  
* I - [[Media:poo_Trabalho1.pdf‎|Trabalho 1 (clique para ver a descrição)]]: modelagem e implementação orientada a objetos
+
=== Parte 1 ===
 +
 
 +
* [[Media:poo_Trabalho1.pdf‎|Trabalho 1 (clique para ver a descrição)]]: modelagem e implementação orientada a objetos
 
** Implementação em '''Java''' e '''C++'''
 
** Implementação em '''Java''' e '''C++'''
 
** Entrega até '''08/04'''
 
** Entrega até '''08/04'''
Linha 37: Linha 32:
 
:: 3) Clareza, endentação e comentários úteis no código: total ''15%''
 
:: 3) Clareza, endentação e comentários úteis no código: total ''15%''
  
* II - [[Media:poo_Trabalho2.pdf‎|Trabalho 2 (clique para ver a descrição)]]: interface, arquivos e threads
+
=== Parte 2 ===
 +
 
 +
* [[Media:poo_Trabalho2.pdf‎|Trabalho 2 (clique para ver a descrição)]]: interface, arquivos e threads
 
** É uma continuação do Trabalho 1
 
** É uma continuação do Trabalho 1
 
** Implementação em '''Java'''
 
** Implementação em '''Java'''
Linha 47: Linha 44:
 
:: 4) Uso de threads: ''20%''
 
:: 4) Uso de threads: ''20%''
  
* III - [[Media:poo_Trabalho3.pdf‎|Trabalho 3 (clique para ver a descrição)]]: rede e outros
+
=== Parte 3 ===
 +
 
 +
* [[Media:poo_Trabalho3.pdf‎|Trabalho 3 (clique para ver a descrição)]]: rede e outros
 
** É uma continuação dos Trabalhos 1 e 2
 
** É uma continuação dos Trabalhos 1 e 2
 
** Implementação em '''Java'''
 
** Implementação em '''Java'''

Edição das 20h40min de 22 de março de 2011

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

Trabalho Prático

Tema: Simulador de campeonato de futsal - Em duplas (a dupla deverá permanecer a mesma em cada trabalho) - Incremental (um trabalho é a continuação do anterior)

Parte 1

1) Estruturação das classes, e conceitos de orientação a objetos com cumprimento dos objetivos do trabalho: total 70%
- será principalmente observada a modelagem das entidades (classes) que formam a solução para o problema (30%), o uso da coleção de objetos e iteradores (15%) , uso correto de herança e encapsulamento (25%).
2) Separação da interface e implementação (uso de cabeçalho/fonte em C++) (7,5%) e documentação das classes e métodos (7,5%): total 15%
3) Clareza, endentação e comentários úteis no código: total 15%

Parte 2

1) Orientação a objetos, código e documentação: 40%
2) Interface: 20%
3) Uso de arquivos: 20%
4) Uso de threads: 20%

Parte 3

1) Orientação a objetos, código e documentação: 40%
2) Implementacao de rede: 30%
3) Outros: total 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
- criação de novos atributos e métodos (subclasse mais específica)
- em Java, exemplo da aula 7, desenvolvida no BlueJ: aula07.tar.gz
- construtores e herança
- vários níveis de herança (atributos e métodos protegidos, chamada a construtores e final)
- sobrescrita de métodos, e sobrecarga de métodos e construtores
- 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 e materiais complementares

Links e recursos externos

  • 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]

Apostila