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

De CoteiaWiki
(Leituras complementares e links)
(Descrição e informações)
Linha 24: Linha 24:
  
 
=== Descrição e informações ===
 
=== Descrição e informações ===
* [[Media:poo_Trabalho1.pdf‎|Trabalho 1 (clique para ver a descrição)]]: modelagem e implementação orientada a objetos
+
Tema: '''Simulador de campeonato de futsal'''
** '''Individual'''
+
- '''Em duplas''' (a dupla deverá permanecer a mesma em cada trabalho)
** Implementação em '''C++'''
+
- Incremental (um trabalho é a continuação do anterior)
** Entrega até '''31/03'''
+
 
** Sorteio para apresentação: [[Media:poo_Trabalho1_Apresentacao.pdf‎|Tabela de Apresentação]]
+
* I - [[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++'''
 +
** Entrega até '''08/04'''
 
** Critérios (75+15+15%):
 
** Critérios (75+15+15%):
 
:: 1) Estruturação das classes, e conceitos de orientação a objetos ''com cumprimento dos objetivos do trabalho'': total ''70%''
 
:: 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%).
 
::: - 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) (7,5%) e documentação das classes e métodos (7,5%): total ''15%''
+
:: 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%''
 
:: 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
 +
** Continuação do Trabalho 1
 +
** Implementação em '''Java'''
 +
** Entrega até '''27/05'''
 +
** Critérios:
 +
:: 1) Estruturação das classes, conceitos de orientação a objetos ''com cumprimento dos objetivos do trabalho'', código e documentação: ''50%''
 +
:: 2) Interface: ''20%''
 +
:: 3) Uso de arquivos: ''15%''
 +
:: 4) Uso de threads: ''15%''
 +
 +
* III - [[Media:poo_Trabalho3.pdf‎|Trabalho 3 (clique para ver a descrição)]]: rede e outros
 +
** Continuação dos Trabalhos 1 e 2
 +
** Implementação em '''Java'''
 +
** Entrega até '''29/06'''
 +
** Critérios:
 +
:: 1) Estruturação das classes, conceitos de orientação a objetos ''com cumprimento dos objetivos do trabalho'', código e documentação: ''50%''
 +
:: 2) Implementacao de rede: ''25%''
 +
:: 3) Outros: total ''25%''
  
 
== Provas ==
 
== Provas ==

Edição das 20h35min 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

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

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)

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%
1) Estruturação das classes, conceitos de orientação a objetos com cumprimento dos objetivos do trabalho, código e documentação: 50%
2) Interface: 20%
3) Uso de arquivos: 15%
4) Uso de threads: 15%
1) Estruturação das classes, conceitos de orientação a objetos com cumprimento dos objetivos do trabalho, código e documentação: 50%
2) Implementacao de rede: 25%
3) Outros: total 25%

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