|
|
Linha 23: |
Linha 23: |
| * [[Media:poo_ListaExercicios_09.pdf|Exercício 9 (pdf)]] - redes | | * [[Media:poo_ListaExercicios_09.pdf|Exercício 9 (pdf)]] - redes |
| | | |
− |
| |
− | <!--
| |
− |
| |
− | === Parte 1 ===
| |
− |
| |
− | * [[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++'''
| |
− | ** '''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%''
| |
− |
| |
− | === Parte 2 ===
| |
− | * [[Media:poo_Trabalho2_2012.pdf|Trabalho 2 (clique para ver a descrição)]]:
| |
− | ** É 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
| |
− | ** [[Media:poo_T2Exemplo.tar.gz|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 ===
| |
− |
| |
− | * [[Media:poo_Trabalho3_2012.pdf|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)
| |
− |
| |
− | === Recuperação ===
| |
− | Data: 2 de Agosto, Terça-feira
| |
− |
| |
− | Horário: das 17h00 as 19h00
| |
− |
| |
− | Sala: 3-012
| |
− |
| |
− | Conteúdo: todo o conteúdo do semestre. Não será cobrado interface, redes e serviços web.
| |
− |
| |
− | '''Veja as notas da REC abaixo.''' -->
| |
− |
| |
− | == Notas ==
| |
− |
| |
− | * [[Media:NotasT1scc0204_2012.pdf|Trabalho 1 - notas e comentarios]].
| |
− |
| |
− | * [[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:Notas_scc0204_2012-1.pdf|Notas planilha completa]] (com notas das provas e trabalhos realizados até a data atual)
| |
− |
| |
− | * [[Media:NotasREC_scc0204_2012-1.pdf|NOTAS DA REC]]
| |
− |
| |
− | == Conteúdo e Material Didático ==
| |
− |
| |
− | === 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]].
| |
− | :: '''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: [http://www.lcad.icmc.usp.br/~paulovic/aulas/POO/SCC0604-aula-01-Introducao_OO.pdf]
| |
− | :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: [http://www.lcad.icmc.usp.br/~paulovic/aulas/POO/SCC0604-aula-02-Classes_Objetos.pdf]
| |
− | :: ''Figuras JVM:'' [http://www.codeproject.com/KB/java/How_JVM_Works/JVM2.png] e [http://img.viralpatel.net/2008/12/java-program-execution.png]
| |
− | :: ''Exemplos das aulas 1 e 2'': [[Media:aula02.tar.gz|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'': [[Media:aula03.tar.gz|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'': [[Media:aula04.tar.gz|aula04.tar.gz]]
| |
− | :5. '''Detalhes de implementação: constantes, estáticos e tipos''': parte1
| |
− | :: - constantes
| |
− | :: - tipos primitivos e classes Wrapper em Java [http://www.certpal.com/blogs/2011/02/java-immutable/]
| |
− | :: - atributos e métodos ''static'' em Java
| |
− | :: ''Exemplos da aula 5'': [[Media:aula05.tar.gz|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'': [[Media:aula06.tar.gz|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: [[Media:aula07.tar.gz|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:'' [[Media:aula08.tar.gz|aula08.tar.gz]]
| |
− |
| |
− |
| |
− | :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 [[Media:aula09.tar.gz|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:'' [[Media:aula10.tar.gz|aula10.tar.gz]]
| |
− | :: ''Um bom software para fazer diagramas'': Dia [http://projects.gnome.org/dia/]
| |
− | :: ''Exemplos da aula 11:'' [[Media:aula11.tar.gz|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:'' [[Media:aula12.tar.gz|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?'' [http://www.codeproject.com/KB/architecture/Abstract_Interface.aspx]
| |
− | :: ''Diagramas exercícios aula 13:'' [[Media:Shapes.png|Shapes.png]], [[Media:ZombieGame.png|ZombieGame.png]]
| |
− | :: ''Exemplos da aula 13:'' [[Media:aula13.tar.gz|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: [http://download.oracle.com/javase/tutorial/collections/interfaces/index.html] [http://javagems.com/wp-content/uploads/2008/07/javautilcollection.gif]
| |
− | :: - generics Java
| |
− | :: ''Exemplos da aula 14:'' (usando) [[Media:aula14.tar.gz|aula14.tar.gz]]
| |
− | :: ''Exemplos da aula 15:'' (programando) [[Media:aula15.tar.gz|aula15.tar.gz]]
| |
− | :: para aprender a programar usando Generics [http://download.oracle.com/javase/tutorial/java/generics/index.html]
| |
− | :: para aprender a programar usando Templates [http://www.cplusplus.com/doc/tutorial/templates/]
| |
− |
| |
− | === Parte 2: ferramentas da programação Orientada a Objetos ===
| |
− |
| |
− | :16 e 17. '''IDEs e Interface Gráfica'''
| |
− | :: ''Slides da aula 16:'' [[Media:teorica16_GUI.pdf|GUIs Java]]
| |
− | :: ''Exemplos da aula 16:'' [[Media:aula16.tar.gz|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:'' [[Media:aula20.tar.gz|aula20.tar.gz]]
| |
− | :21. '''Tratamento de Exceçao'''
| |
− | :: Hierarquia de exceções Java[http://php.scripts.psu.edu/djh300/cmpsc221/exceptions-deitel.jpg]
| |
− | :: Hierarquia de exceções C++[http://www.math.bas.bg/~nkirov/2011/NETB151/slides/ch17/images/exceptions.png]
| |
− | :: ''Exemplos da aula 21:'' (exceções) [[Media:aula21.tar.gz|aula21.tar.gz]]
| |
− | :: ''Exemplo das aulas 20 e 21:'' (continuação da aula 20 'bookshelf', com interface gráfica) [[Media:aula21b.tar.gz|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) [[Media:aula22.tar.gz|aula22.tar.gz]]
| |
− | :23 e 24. '''Threads'''
| |
− | :: ''Exemplos da aula 23:'' Java threads [[Media:aula23.tar.gz|aula23.tar.gz]]
| |
− | :: ''Exemplos da aula 24:'' sincronização entre threads usando métodos e objetos [[Media:aula24.tar.gz|aula24.tar.gz]]
| |
− | :25 e 26. '''Projeto orientado a objetos'''
| |
− | :: Exercício em sala de aula em duplas
| |
− | :: ''Exemplos da aula 26 (revisao polimorfismo)'': [[Media:aula26.tar.gz|aula26.tar.gz]]
| |
− | :27. '''Tópicos adicionais'''
| |
− | :: Serializable objects
| |
− | :: ''Programa Booklist modificado para gravar e carregar objetos do disco:'' [[Media:booklist.tar.gz|booklist.tar.gz]]
| |
− | :: Enumerações, nested and inner classes
| |
− | :: ''Exemplos da aula 27:'' [[Media:aula27.tar.gz|aula27.tar.gz]]
| |
− | :28. '''Rede'''
| |
− | :: Sockets, Cliente/Servidor, passagem de dados e de objetos por Streams
| |
− | :: ''Apostila:'' [[Media:apostilaredesjava.pdf|PDF]]
| |
− | :: ''Exemplos da aula 28:'' [[Media:aula28.tar.gz|aula28.tar.gz]]
| |
− | :29. '''Serviços Web'''
| |
− | :: ''Exemplos da aula 29:'' [[Media:aula29.tar.gz|aula29.tar.gz]]
| |
− | : * AVISO: '''não haverá aula nos dias 14 e 17/06'''
| |
− | :30. '''Exercícios''' (21/06)
| |
− | :31. '''Prova 2'''
| |
− |
| |
− | -->
| |
| | | |
| | | |