Mudanças entre as edições de "SCC-204(Moacir)"
De CoteiaWiki
Linha 22: | Linha 22: | ||
Tema: '''A definir''' | Tema: '''A definir''' | ||
− | |||
− | |||
- Incremental (um trabalho é a continuação do anterior) | - Incremental (um trabalho é a continuação do anterior) | ||
Linha 29: | Linha 27: | ||
=== Sistema de submissão === | === Sistema de submissão === | ||
− | O projeto deverá ser entregue... | + | O projeto deverá ser entregue via TIDIA-AE [http://agora.tidia-ae.usp.br/] |
=== Parte 1 === | === Parte 1 === | ||
− | * [[Media: | + | * [[Media:poo_Trabalho1_2012.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++''' | ||
+ | ** '''Individual''' | ||
** Entrega até '''99/99''' | ** Entrega até '''99/99''' | ||
− | ** Critérios | + | ** Critérios |
:: 1) Compilação, execução, estruturação das classes, e conceitos de orientação a objetos ''com cumprimento dos objetivos do trabalho'': total ''70%'' | :: 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 | + | ::: - 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 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 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%'' | :: 3) Clareza, endentação e comentários úteis no código: total ''15%'' | ||
=== Parte 2 === | === Parte 2 === | ||
− | + | * [[Media:poo_Trabalho2_2012.pdf|Trabalho 2 (clique para ver a descrição)]]: | |
− | |||
− | * [[Media: | ||
** Arquivo de dados para teste: [[Media:Dados.txt|Dados.txt]] | ** Arquivo de dados para teste: [[Media:Dados.txt|Dados.txt]] | ||
** É uma continuação do Trabalho 1 | ** É uma continuação do Trabalho 1 | ||
− | ** Insere | + | ** Implementação em '''Java''' e '''C++''' |
+ | ** Insere herança, polimorfismo, programação genérica e aprimora coleções de objetos e iteradores | ||
** [[Media:poo_T2Exemplo.tar.gz|Uma interface de exemplo]] | ** [[Media:poo_T2Exemplo.tar.gz|Uma interface de exemplo]] | ||
** Entrega até '''99/99''' | ** Entrega até '''99/99''' | ||
+ | ** Em ''duplas'' | ||
** Critérios: | ** Critérios: | ||
− | :: 1) Compilação, execução, orientação a objetos, código e documentação: ''50%'' | + | :: 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) | + | :: 2) Classes abstratas, herança e polimorfismo: ''20%'' |
− | :: 3) | + | :: 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 === | === Parte 3 === | ||
− | + | * [[Media:poo_Trabalho3_2012.pdf|Trabalho 3 (clique para ver a descrição)]]: tratamento de exceções, padrões de projeto, threads e interface | |
− | * [[Media: | + | ** Implementação em '''Java''' OU '''C++''' |
** É uma continuação dos Trabalhos 1 e 2 | ** É uma continuação dos Trabalhos 1 e 2 | ||
** Entrega até '''99/99''' | ** Entrega até '''99/99''' | ||
+ | ** ''Em duplas'' (a dupla deverá ser a mesma do trabalho 2) | ||
** Critérios: | ** Critérios: | ||
:: 1) Compilação, execução, orientação a objetos, código e documentação: ''40%'' | :: 1) Compilação, execução, orientação a objetos, código e documentação: ''40%'' | ||
− | :: 2) | + | :: 2) Tratamento de exceções: ''20%'' |
− | :: 3) Multithreading: '' | + | :: 3) Padrões de projeto: ''20%'' |
− | :: | + | :: 4) Multithreading: ''10%'' |
+ | :: 5) Interface: ''10%'' | ||
== Provas == | == Provas == | ||
− | '''Datas:''' | + | '''Datas:''' 10/04 (P1), 29/06 (P2) |
− | + | <!-- === Recuperação === | |
− | |||
− | |||
− | |||
− | === Recuperação === | ||
Data: 2 de Agosto, Terça-feira | Data: 2 de Agosto, Terça-feira | ||
Linha 85: | Linha 85: | ||
Conteúdo: todo o conteúdo do semestre. Não será cobrado interface, redes e serviços web. | Conteúdo: todo o conteúdo do semestre. Não será cobrado interface, redes e serviços web. | ||
− | '''Veja as notas da REC abaixo.''' | + | '''Veja as notas da REC abaixo.''' --> |
== Notas == | == Notas == | ||
− | * [[Media: | + | * [[Media:NotasT1scc0204_2012.pdf|Trabalho 1 - notas e comentarios]]. |
− | * [[Media: | + | * [[Media:NotasT2scc0204_2012.pdf|Trabalho 2 - notas e comentarios]]. Para revisão do trabalho e da correção favor procurar a pessoa que corrigiu o trabalho. |
− | * [[Media: | + | * [[Media:Notas_scc0204_2012-1.pdf|Notas planilha completa]] (com notas das provas e trabalhos realizados até a data atual) |
− | * [[Media: | + | * [[Media:NotasREC_scc0204_2012-1.pdf|NOTAS DA REC]] |
== Conteúdo e Material Didático == | == Conteúdo e Material Didático == | ||
+ | |||
=== Parte 1: fundamentos de Orientação a Objetos === | === Parte 1: fundamentos de Orientação a Objetos === | ||
:1. [[Media:poo_00.Apresentacao.pdf|Apresentação da Disciplina: objetivos, programa, materiais, avaliação e bibliografia]]. | :1. [[Media:poo_00.Apresentacao.pdf|Apresentação da Disciplina: objetivos, programa, materiais, avaliação e bibliografia]]. | ||
Linha 150: | Linha 151: | ||
:: ''Bibliografia sugerida:'' Deitel C++ capítulo 13. Deitel Java capítulo 9. | :: ''Bibliografia sugerida:'' Deitel C++ capítulo 13. Deitel Java capítulo 9. | ||
:: ''Exemplos da aula 8:'' [[Media:aula08.tar.gz|aula08.tar.gz]] | :: ''Exemplos da aula 8:'' [[Media:aula08.tar.gz|aula08.tar.gz]] | ||
− | :9, 10 e 11. '''Conceitos de Orientação a Objetos - Herança''': parte 2 | + | |
+ | |||
+ | <!-- :9, 10 e 11. '''Conceitos de Orientação a Objetos - Herança''': parte 2 | ||
:: - construtor de cópia e operator= em C++ | :: - construtor de cópia e operator= em C++ | ||
:: - polimorfismo em C++ (virtual) | :: - polimorfismo em C++ (virtual) | ||
Linha 214: | Linha 217: | ||
:30. '''Exercícios''' (21/06) | :30. '''Exercícios''' (21/06) | ||
:31. '''Prova 2''' | :31. '''Prova 2''' | ||
+ | --> | ||
+ | |||
== Leituras e materiais complementares == | == Leituras e materiais complementares == |
Edição das 17h57min de 24 de fevereiro de 2012
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 3-245
- Horário de atendimento: Quintas das 16h às 19h
- Monitor especial: ( [arroba] grad icmc usp br)
- Aulas de laboratório com exercícios:
Índice
Exercícios
- Exercício 1 (pdf) - livros e capítulos de livros: coleções de objetos
- Exercício 2 (pdf) - produtos: polimorfismo
- Exercício 4 (pdf) - pegadas de carbono: interfaces e classes abstratas
- Exercício 5 (pdf) - instanciando objetos via interface gráfica
- Exercício 6 (pdf) - tratamento de exceção
- Exercício 7 (pdf) - threads
- Exercício 8 (pdf) - projeto orientado a objetos
- Exercício 9 (pdf) - redes
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
- Trabalho 1 (clique para ver a descrição): modelagem e implementação orientada a objetos
- Implementação em Java e C++
- Individual
- Entrega até 99/99
- Critérios
- 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%
- 1) Compilação, execução, estruturação das classes, e conceitos de orientação a objetos com cumprimento dos objetivos do trabalho: total 70%
Parte 2
- Trabalho 2 (clique para ver a descrição):
- Arquivo de dados para teste: Dados.txt
- É uma continuação do Trabalho 1
- Implementação em Java e C++
- Insere herança, polimorfismo, programação genérica e aprimora coleções de objetos e iteradores
- Uma interface de exemplo
- Entrega até 99/99
- Em duplas
- Critérios:
- 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
- Trabalho 2 - notas e comentarios. Para revisão do trabalho e da correção favor procurar a pessoa que corrigiu o trabalho.
- Notas planilha completa (com notas das provas e trabalhos realizados até a data atual)
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
- - encapsulamento, super e subclasse, herança
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)