====== Java Básico 2008.2 ======
===== Horário/Sala =====
Segundas:
Terças:
Laboratório: 3
===== Grupo de Discussão =====
email para: [[java-iesp@googlegroups.com]]\\
Para visualizar os emails já enviados, acesse: [[http://groups.google.com/group/java-iesp/]]
|
Inscreva-se no grupo: JAVA - 2008.2. Toda informação e discussão deve ser enviada a esta lista.
|
===== Ementa =====
Estudo de uma linguagem de programação orientada a objetos. Tipos de dados, Estrutura da linguagem. Tipos estruturados (vetor, matriz e registro). Declarações. Comandos de atribuição, condicionais e de repetição. Modularização e Subprogramas. Mensagem e troca de mensagem. Aplicações.
===== Objetivos Programáticos =====
Esta disciplina tem o objetivo de dar continuidade ao desenvolvimento do raciocínio lógico aplicado à solução de problemas em nível computacional. Programação orientada a objetos. Mensagem. Introduzir conceitos mais avançados de desenvolvimento de algoritmos, e novas estruturas de controle e de dados. Introduzir funcionalidades mais avançadas de uma linguagem de programação. Programação Visual. Ao final da disciplina o aluno estará apto a implementar programas de complexidade média.
===== Programa =====
^ UNIDADE ^ ASSUNTO ^
| 1 | Introdução e conceitos básicos |
| 1.1 | Histórico |
| 1.2 | Conceitos básicos |
| 1.3 | Ambientes de programação Java |
| 2 | Programação orientada a objetos básica |
| 2.1 | Conceitos de orientação a objetos |
| 2.2 | Criação de objetos |
| 2.3 | Encapsulamento |
| 2.4 | Strings |
| 2.5 | Coleções |
| 3 | Projeto de programas Java e Programação orientada a objetos avançada |
| 3.1 | Estruturação de programas em camadas |
| 3.2 | Herança e polimorfismo |
| 3.3 | Classes abstratas e interfaces |
| 3.4 | Tratamento de exceções |
| 3.5 | Pacotes |
| 4 | Interface gráfica e orientação a eventos |
| 4.1 | Swing |
| 4.2 | Modelo de eventos |
===== Plano de Aulas =====
^ Data ^ Assunto ^ Material ^ Referências ^ Local ^
| | Apresentar site da disciplina;\\ Apresentação do critério de avaliação e discussão sobre os objetivos da disciplina; Apresentar motivação: pirâmide de programadores\\ Definição das duplas de laboratório; | {{java:motivacao.pdf|Motivação Java}} | JUG - www.cgjug.com.br\ Entrem na lista de discussão do grupo\\ [[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html|Ranking das linguagens de programação em Agosto de 2008 (postado por Ary Júnior)]] | Sala |
| | Introdução ao Java;\\ Histórico; | {{java:02-introducao-java.pdf|Histórico e Introdução a Java}} | | Sala |
| | Prática com o Java SDK;\\ Pesquisando API de Java; | {{java:03-lab-jsdk.pdf|Usando o JSDK e pesquisando API de Java}} | Capitulo 1 do livro texto | Sala |
| | Ambientação com a sintaxe Java\\ **Miniteste 1** | {{java:04-sintaxe-java1.pdf|Ambientação com sintaxe java}} | {{java:exercicios1.txt|Exercícios casa}}\\ Sobre variaveis em Java (capitulo 3 do livro texto) | Lab |
| | Entrega de exercício da aula passada;\\ Ambientação com a sintaxe Java; | {{java:05-sintaxe-java2.pdf|Ambientação com a sintaxe Java - 2}} | | Lab |
| | Ambientação com a sintaxe Java;\\ Exercícios em sala; | | | Lab |
| | Introdução ao Eclipse | {{java:06-introducao-eclipse.pdf| Introdução ao Eclipse}} | | Lab |
| | Exercícios em programação estruturada | | | Lab |
| | Introdução à programação orientada a objetos;\\ Atributos;\ Encapsulamento; | {{java:07-introducao-objetos.pdf|Introdução à Orientação a Objetos}} | | Sala |
| | Métodos;\\ Acesso;\\ Exercícios em sala; | | | Sala |
| | Exercícios: definição de classes;\\ Recursos avançados do Eclipse para classes; | | | Lab |
| | Criação de objetos;\\ Construtores; | {{tw:08-criacao-objetos-gw.pdf|Criacao de objetos}} | | Sala |
| | Exercícios de criação de objetos; | | {{java:lista1.doc|Lista de exercícios 1}} | Lab |
| | Strings e Arrays; | {{java:09-strings-arrays.ppt|Strings e Arrays}} | Págs. 59 a 63 do livro Use a Cabeça | Lab |
| | Exercícios em arrays; | {{java:09-mais_sobre_arrays.pdf|Mais sobre arrays}} | | Lab |
| | Exercícios em arrays; | | | Lab |
| | Exercícios em arrays; | | | Lab |
| | Últimas dúvidas - exercício de arrays;\\ Discussão lista de exercícios 1; | | | Lab |
| 14/10 | **Prova 1** | | | Sala |
| | Coleções em Java; | | [[http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/ed/colecoes.htm|Material sobre coleções de Jacques]]\\ Livro use a cabeça:\\ Coleções: apêndice B Collections;\\ ArrayList: cap. 6 - pag 128 (página da versão em inglês) | Sala |
| | Estruturação de programas Java; | {{java:10-projetooocamadas.pdf|Projeto OO em camadas}} | | Sala |
| | Estruturação de programas Java;\\ Iniciar exercício no laboratório; | | | Lab |
| | Exercícios em estruturação de programas Java | | | Lab |
| | Exercícios em estruturação de programas Java | | | Lab |
| | Herança;\\ Polimorfismo; | {{java:11-heranca.pdf|Herança e Polimorfismo}} | | Sala |
| | Exercícios em herança; | | {{java:auditoriabancoseminterface.zip|Código auditoria banco sem interface}}\\ {{java:auditoriabancocominterface.zip|Código auditoria banco com interface}} | Lab |
| | Interfaces;\\ Pacotes; | {{java:12-interfaces-pacotes.pdf|Interfaces}} | [[http://www.artima.com/lejava/articles/designprinciples.html|Leitura: Program to an interface, not an implementation]]\\ Capítulo 8 de Use a Cabeça Java (Head First Java) | Sala |
| | Exercícios com pacotes;\\ Exercícios com interfaces;\\ Dúvidas - Herança| | {{java:exemploheranca.zip|Exemplo de código com herança de tipos: USB e dispositivos}} | Lab |
| | Tratamento de exceções; | {{java:13-excecoes.pdf|Exceções}} | Capítulo 11 de Use a Cabeça Java (Head First Java)\\ {{java:exemploexcecao.zip| Exemplo de uso de exceção com leitura de arquivo}} | Sala |
| | Avaliação do código Interface + Continuação de Exceções | | | Lab |
| | 8-) Corpus Christi | | | Praia |
| | Teste de Software | [[http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/testes.htm|Excelente aula do prof. Jacques sobre testes de unidade]] | | Sala |
| | Avaliação final do projeto | | | lab |
| | **Prova 2** | | | Sala |
| | ** Prova de Reposição ** | | | Sala |
| 16/12 | ** Prova Final ** | | | Sala |
===== Bibliografia =====
==== Basica ====
* SIERRA, Kathy, BATES, Bert. Use a cabeça! Java. 2ª edição. São Paulo: Oreilly, 2006
==== Complementar ====
* DEITEL, H. M., DEITEL, P. J. Java Como Programar. 3a./5a Edição. Bookman
* Horstmann e Cornell, Core Java 2: Volume 1, Fundamentos. Makron Books, 2003.
* ECKEL, Bruce. Thinking in Java. Prentice-Hall, 3a Edição, 2003.
* [[http://www.mindview.net/Books/TIJ/|Versao online do Thinking in Java - Livro grátis]]
* CADENHEAD, Rogers. Aprenda em 21 dias Java 2. Campus, 2005.
* FLANAGAN, David. Java: O Guia Essencial Java. Bookman, 5a Edição, 2006.
===== Avaliação =====
A avaliação será composta por 2 notas. A nota final é formada da seguinte forma: (média aritmética de 5 minitestes) * 0,3 + (média aritmética de laboratórios) * 0,3 + (média aritmética de provas) * 0,4.
* Prova 1: após arrays
* Prova 2: final do curso
Os laboratórios serão formados por grupos de no máximo 2 pessoas.
===== Notas dos alunos =====
[[http://spreadsheets.google.com/pub?key=p3dX20Y0XaQANqEcfzh3OQw|Notas]]
===== Projeto =====
==== Descrição ====
O projeto consiste em implementar um sistema de corretora de valores. O aluno evoluirá o código durante as aulas de laboratório e a avaliação levará em conta tanto o trabalho durante o laboratório quanto as funcionalidades implantadas.
Abaixo estah o documento de visao e o diagrama de classes versao 1.0 do sistema. Iremos evolui-lo com o tempo.
{{java:gwcorretoradeinvestimentosv1.pdf|Documento de visao v1}}