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ças as 16h20 (sala 4-003) | + | Terças as 16h20 (sala 4-003) |
+ | |||
Sextas as 08h10 (sala 5-004) | 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 | + | : ''Horário de atendimento'': Quartas das 17h às 18h - Quintas das 16h as 18h |
:'''Monitor''': Samuel G. Fadel ( fadel ''[arroba]'' grad icmc usp br) | :'''Monitor''': Samuel G. Fadel ( fadel ''[arroba]'' grad icmc usp br) | ||
− | : | + | Material, gerencimento da disciplina no TIDIA-AE [http://agora.tidia-ae.usp.br/portal] |
+ | |||
== Exercícios == | == Exercícios == | ||
Linha 20: | Linha 22: | ||
* [[Media:poo_ListaExercicios_08.pdf|Exercício 8 (pdf)]] - projeto orientado a objetos | * [[Media:poo_ListaExercicios_08.pdf|Exercício 8 (pdf)]] - projeto orientado a objetos | ||
* [[Media:poo_ListaExercicios_09.pdf|Exercício 9 (pdf)]] - redes | * [[Media:poo_ListaExercicios_09.pdf|Exercício 9 (pdf)]] - redes | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!-- | |
− | |||
− | |||
=== Parte 1 === | === Parte 1 === | ||
Linha 77: | Linha 72: | ||
'''Datas:''' 10/04 (P1), 29/06 (P2) | '''Datas:''' 10/04 (P1), 29/06 (P2) | ||
− | + | === Recuperação === | |
Data: 2 de Agosto, Terça-feira | Data: 2 de Agosto, Terça-feira | ||
Linha 154: | Linha 149: | ||
− | + | :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 218: | Linha 213: | ||
:30. '''Exercícios''' (21/06) | :30. '''Exercícios''' (21/06) | ||
:31. '''Prova 2''' | :31. '''Prova 2''' | ||
+ | |||
--> | --> | ||
Edição das 13h26min de 9 de março 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: Quartas das 17h às 18h - Quintas das 16h as 18h
- Monitor: Samuel G. Fadel ( fadel [arroba] grad icmc usp br)
Material, gerencimento da disciplina no TIDIA-AE [1]
Í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
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
:9, 10 e 11. Conceitos de Orientação a Objetos - Herança: parte 2
- - construtor de cópia e operator= em C++
- - polimorfismo em C++ (virtual)
- Exemplos da aula 9: incluindo Makefile aula09.tar.gz
- - static e dynamic binding
- - virtual e inline (C++)
- - herança de Object, impedir herança (final), sobrecarga e sobrescrita (Java)
- - polimorfismo em Java
- Exemplos da aula 10: aula10.tar.gz
- Um bom software para fazer diagramas: Dia [7]
- Exemplos da aula 11: aula11.tar.gz
- 12 e 13. Classes abstratas e interfaces
- - herança múltipla em C++
- - classes abstratas: podem ser implementadas parcialmente (podem conter atributos e métodos não abstratos) ou conter apenas declarações; não podem ser instanciadas; são herdadas por outras classes (o que provê uma identidade); uma classe concreta que herda de uma classe abstrata deve implementar os métodos abstratos herdados; .
- Exemplos da aula 12: aula12.tar.gz
- - interfaces em Java: entidades abstratas 'puras', contem apenas a declaração; não podem ser instanciadas; são implementadas por outras classes (o que adiciona funcionalidades); seus membros são sempre públicos.
- Quando usar interface, quando usar classe abstrata? [8]
- Diagramas exercícios aula 13: Shapes.png, ZombieGame.png
- Exemplos da aula 13: aula13.tar.gz
- 14 e 15. Programação genérica
- - técnica de abstração que permite escrever codigo com tipos a serem especificados posteriormente, que serao instanciados conforme a demanda de uso daquele algoritmo
- - templates C++: exemplos com set e map
- - collections Java: [9] [10]
- - generics Java
- Exemplos da aula 14: (usando) aula14.tar.gz
- Exemplos da aula 15: (programando) aula15.tar.gz
- para aprender a programar usando Generics [11]
- para aprender a programar usando Templates [12]
Parte 2: ferramentas da programação Orientada a Objetos
- 16 e 17. IDEs e Interface Gráfica
- Slides da aula 16: GUIs Java
- Exemplos da aula 16: aula16.tar.gz
- 18. Prova 1
- 19 e 20. Exercícios e exemplos: com encapsulamento, interface gráfica e processamento de arquivos.
- Exemplo das aulas 19 e 20: aula20.tar.gz
- 21. Tratamento de Exceçao
- Hierarquia de exceções Java[13]
- Hierarquia de exceções C++[14]
- Exemplos da aula 21: (exceções) aula21.tar.gz
- Exemplo das aulas 20 e 21: (continuação da aula 20 'bookshelf', com interface gráfica) aula21b.tar.gz
- 22. Exemplo: interface gráfica com imagens e uma classe aninhada, com gravação e leitura de arquivo
- Exemplo das aulas 21 e 22: (continuação da aula 21 'bookshelf', com interface gráfica) aula22.tar.gz
- 23 e 24. Threads
- Exemplos da aula 23: Java threads aula23.tar.gz
- Exemplos da aula 24: sincronização entre threads usando métodos e objetos aula24.tar.gz
- 25 e 26. Projeto orientado a objetos
- Exercício em sala de aula em duplas
- Exemplos da aula 26 (revisao polimorfismo): aula26.tar.gz
- 27. Tópicos adicionais
- Serializable objects
- Programa Booklist modificado para gravar e carregar objetos do disco: booklist.tar.gz
- Enumerações, nested and inner classes
- Exemplos da aula 27: aula27.tar.gz
- 28. Rede
- Sockets, Cliente/Servidor, passagem de dados e de objetos por Streams
- Apostila: PDF
- Exemplos da aula 28: aula28.tar.gz
- 29. Serviços Web
- Exemplos da aula 29: aula29.tar.gz
- * AVISO: não haverá aula nos dias 14 e 17/06
- 30. Exercícios (21/06)
- 31. Prova 2
-->
Leituras e materiais complementares
Links e recursos externos
- Documentação Java da SUN/ORACLE [15]
- -> acesse [16] vá em "Additional resources" para baixar a documentação (Java SE 6 Documentation) e o código fonte das classes (Java JDK source code)