===== Java Básico 2006.2 ===== ==== Horário/Sala ==== Segundas: 10-12\\ Sextas: 08-10\\ Sala: Laboratório: ==== Lista de discussão ==== Cadastre-se na lista:\\ javabasicofatec@grupos.com.br\\ Ao enviar e-mail à lista, coloque no início do subject: [fatec-java] ==== 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 ^ | 04/08 | 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.ppt|Motivação Java}} | JUG - www.cgjug.com.br\ Entrem na lista de discussão do grupo | Sala | | 07/08 | Introdução ao Java;\\ Histórico; | {{java:02-introducao-java.zip|Histórico e Introdução a Java}} | | Sala | | 11/08 | Prática com o Java SDK;\\ Pesquisando API de Java; | {{java:03-lab-jsdk.ppt|Usando o JSDK e pesquisando API de Java}} | | Lab | | 14/08 | Ambientação com a sintaxe Java | {{java:04-sintaxe-java1.ppt|Ambientação com sintaxe java}} | | Lab| | 18/08 | Entrega de exercício da aula passada;\\ Ambientação com a sintaxe Java; | {{java:05-sintaxe-java2.ppt|Ambientação com a sintaxe Java - 2}} | {{java:javabasico.jar|Biblioteca de I/O}}\\ \\ {{java:testeentrada.java|Exemplo de uso da biblioteca}}\\ \\ {{java:javadocconsole.zip|JavaDoc da biblioteca de I/O}} | Lab | | 21/08 | Ambientação com a sintaxe Java;\\ Exercícios em sala; | | | Lab | | 25/08 | Introdução ao Eclipse | {{java:06-introducao-eclipse.ppt| Introdução ao Eclipse}} | | Lab | | 28/08 | Exercícios em programação estruturada | | | Lab | | 01/09 | Introdução à programação orientada a objetos;\\ Atributos;\ Encapsulamento; | {{java:07-introducao-objetos.ppt|Introdução à Orientação a Objetos}} | | Sala | | 04/09 | Métodos;\\ Acesso;\\ Exercícios em sala; | | | Sala | | 08/09 | Exercícios: definição de classes;\\ Recursos avançados do Eclipse para classes; | | | Lab | | 11/09 | Criação de objetos;\\ Construtores; | {{java:08-criacao-objetos.ppt|Criação de Objetos}} | | Sala | | 15/09 | Exercícios de criação de objetos; | | {{java:lista1.doc|Lista de exercícios 1}} | Lab | | 18/09 | Strings e Arrays; | {{java:09-strings-arrays.ppt|String e Arrays}} | | Sala | | 22/09 | Exercícios em arrays; | {{java:09-mais_sobre_arrays.ppt|Mais sobre arrays}} | | Lab | | 25/09 | Exercícios em arrays; | | | Lab | | 29/09 | Exercícios em arrays; | | | Lab | | 02/10 | Últimas dúvidas - exercício de arrays;\\ Discussão lista de exercícios 1; | | | Lab | | 06/10 | **Prova 1** | | | Sala | | 09/10 | Estruturação de programas Java; | {{java:10-projetoOOcamadas.ppt|Projeto OO em Camadas}} | | Sala | | 13/10 | Estruturação de programas Java;\\ Iniciar exercício no laboratório; | | | Lab | | 16/10 | Exercícios em estruturação de programas Java | | | Lab | | 20/10 | Exercícios em estruturação de programas Java | | | Lab | | 23/10 | Herança;\\ Polimorfismo; | {{java:11-heranca.ppt|Herança e Polimorfismo}} | | Sala | | 27/10 | Exercícios em herança; | | | Lab | | 30/10 | Interfaces;\\ Pacotes; | {{java:12-interfaces-pacotes.ppt|Interfaces}} | [[http://www.artima.com/lejava/articles/designprinciples.html|Leitura: Program to an interface, not an implementation]] | Sala | | 03/11 | Exercícios com pacotes;\\ Exercícios com interfaces;\\ Dúvidas - Herança| | | Lab | | 06/11 | Tratamento de exceções; | {{java:13-excecoes.ppt|Exceções}} | | Sala | | 10/11 | Exercícios com exceções; | | | Lab | | 13/11 | Teste de Software | | | Sala | | 17/11 | Cont. Teste de Software | | | Sala | | 20/11 | Programação interface gráfica: Swing;\ Janelas e Painéis; | | | Sala | | 27/11 | Gerenciadores de Layout;\\ Tratamento de Eventos;\\ Exercícios com Swing extras; | | | Sala | | 01/12 | **Prova 2** | | | Sala | | 04/12 | ** Prova de Reposição ** | | | Sala | | 08/12 | 8-) Nossa Senhora da Conceição | | | Praia | | 11/12 | ** Prova Final ** | | | Sala | | 15/12 | ** Buffer ** | | | Sala | | 18/06 | ** Buffer ** | | | Sala | ==== Bibliografia ==== * Java Como Programar – H. M. Deitel e P. J. Deitel – 3a./5a Edição – Bookman. * Core Java 2: Volume 1, Fundamentos. Horstmann e Cornell, Makron Books, 2000. * [[http://www.mindview.net/Books/TIJ/|Thinking in Java - Livro grátis]] ==== Avaliação ==== A avaliação será composta por 2 notas. Cada nota é formada da seguinte forma: (nota de prova escrita) * 0,6 + (nota de laboratórios) * 0,4. Os laboratórios serão formados por grupos de no máximo 2 pessoas. Avaliação 1: após Unidade 2.\\ Avaliação 2: após Unidade 4. === Notas dos alunos === {{java:notas-java-2006.2.xls|Notas}} ==== Datas Importantes ==== ==== Projeto ==== === Descrição === O projeto consiste em implementar um sistema bancário. 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. Para isso, usaremos o EasyAccept descrito abaixo. Isso significa que se seu código não fizer o que foi pedido, você não obterá uma boa nota no laboratório. === Testes de Aceitação === Iremos usar a ferramenta EasyAccept para garantir a corretude das funcionalidades do sistema.