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

De CoteiaWiki
Linha 1: Linha 1:
 
''' SCC-0204 Programaçao Orientada a Objetos '''
 
''' SCC-0204 Programaçao Orientada a Objetos '''
  
Terça as 14h20 e Sexta as 10h10 - Sala 5-003
+
Terças as 16h20 (sala 4-003)</br>
 +
Sextas as 08h10 (sala 5-004)
  
 
:'''Professor''': Moacir Ponti Jr (moacir ''at'' icmc usp br), Sala 3-245
 
:'''Professor''': Moacir Ponti Jr (moacir ''at'' icmc usp br), Sala 3-245
 
: ''Horário de atendimento'': Quintas das 16h às 19h
 
: ''Horário de atendimento'': Quintas das 16h às 19h
  
:'''Monitor especial''': ( ''[arroba]'' grad icmc usp br)
+
:'''Monitor''': Samuel G. Fadel ( fadel ''[arroba]'' grad icmc usp br)
 +
 
 
: Aulas de laboratório com exercícios:  
 
: Aulas de laboratório com exercícios:  
  
Linha 22: Linha 24:
  
 
Tema: '''A definir'''
 
Tema: '''A definir'''
 +
- Incremental (um trabalho é a continuação do anterior)
  
- Incremental (um trabalho é a continuação do anterior)
 
  
 
=== Sistema de submissão ===
 
=== Sistema de submissão ===
Linha 43: Linha 45:
 
=== Parte 2 ===
 
=== Parte 2 ===
 
* [[Media:poo_Trabalho2_2012.pdf‎|Trabalho 2 (clique para ver a descrição)]]:
 
* [[Media:poo_Trabalho2_2012.pdf‎|Trabalho 2 (clique para ver a descrição)]]:
** Arquivo de dados para teste: [[Media:Dados.txt|Dados.txt]]
 
 
** É uma continuação do Trabalho 1
 
** É uma continuação do Trabalho 1
 
** Implementação em '''Java''' e '''C++'''
 
** Implementação em '''Java''' e '''C++'''

Edição das 18h22min de 24 de fevereiro de 2012

SCC-0204 Programaçao Orientada a Objetos

Terças as 16h20 (sala 4-003)
Sextas as 08h10 (sala 5-004)

Professor: Moacir Ponti Jr (moacir at icmc usp br), Sala 3-245
Horário de atendimento: Quintas das 16h às 19h
Monitor: Samuel G. Fadel ( fadel [arroba] grad icmc usp br)
Aulas de laboratório com exercícios:

Exercícios

Trabalho Prático

Tema: A definir - Incremental (um trabalho é a continuação do anterior)


Sistema de submissão

O projeto deverá ser entregue via TIDIA-AE [1]

Parte 1

1) Compilação, execução, 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 encapsulamento (25%).
2) Separação da interface e implementação (uso de cabeçalho/fonte em C++) (7,5%) e documentação no código 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) Compilação, execução, orientação a objetos, código e documentação, estruturação das classes e conceitos de orientação a objetos com cumprimento dos objetivos do trabalho: 50%
2) Classes abstratas, herança e polimorfismo: 20%
3) Programação genérica: 20%
4) Coleção de objetos e iteradores: 10%

Dica: se quiser saber a pasta atual do projeto, pode usar o método: System.getProperty("user.dir")


Parte 3

  • Trabalho 3 (clique para ver a descrição): tratamento de exceções, padrões de projeto, threads e interface
    • Implementação em Java OU C++
    • É uma continuação dos Trabalhos 1 e 2
    • Entrega até 99/99
    • Em duplas (a dupla deverá ser a mesma do trabalho 2)
    • Critérios:
1) Compilação, execução, orientação a objetos, código e documentação: 40%
2) Tratamento de exceções: 20%
3) Padrões de projeto: 20%
4) Multithreading: 10%
5) Interface: 10%

Provas

Datas: 10/04 (P1), 29/06 (P2)


Notas

Conteúdo e Material Didático

Parte 1: fundamentos de Orientação a Objetos

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: [2]
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: [3]
Figuras JVM: [4] e [5]
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 [6]
- 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 e 8. 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)
- sobrescrita de métodos, e sobrecarga de métodos e construtores
Bibliografia sugerida: Deitel C++ capítulo 13. Deitel Java capítulo 9.
Exemplos da aula 8: aula08.tar.gz



Leituras e materiais complementares

Links e recursos externos

  • Documentação Java da SUN/ORACLE [7]
-> acesse [8] 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 [9]
  • Exemplos do livro do Barnes para uso em BlueJ [10]

Apostila