===== Java Básico 2006.1 =====
==== 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 ^
| 03/02 | 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:Java.zip|Motivação Java}} | JUG - www.cgjug.com.br\ Entrem na lista de discussão do grupo | Sala |
| 06/02 | Introdução ao Java;\\ Histórico; | {{java:02-introducao-java.zip|Introdução}} | | Sala |
| 10/02 | Prática com o Java SDK;\\ Pesquisando API de Java; | {{java:03-lab-jsdk.ppt|Trabalhando com JSDK}} | | Lab |
| 13/02 | Ambientação com a sintaxe Java | {{java:04-sintaxe-java1.ppt|Ambientação com sintaxe java}} | | Sala |
| 17/02 | Entrega de exercício da aula passada;\\ Ambientação com a sintaxe Java; | {{java:05-sintaxe-java2.ppt|Ambientação com sintaxe java parte 2}} | | Sala |
| 20/02 | Ambientação com a sintaxe Java;\\ Exercícios em sala; | {{java:javabasico.jar|Classes de IO - Entrada}}\\ {{java:testeentrada.java| Exemplo de uso de Entrada}} | | Sala |
| 24/02 | Introdução ao Eclipse | {{java:06-introducao-eclipse.ppt|Introdução ao eclipse 3.1}} | | Lab |
| 27/02 | 8-) Carnaval | | | Praia |
| 03/02 | Exercícios em programação estruturada | | | Lab |
| 06/03 | Introdução à programação orientada a objetos;\\ Atributos;\ Encapsulamento; | {{java:07-introducao-objetos.ppt|Introdução a OO - Atributos e Encapsulamento}} | | Sala |
| 10/03 | Métodos;\\ Acesso;\\ Exercícios em sala; | {{java:07-introducao-objetos.ppt|Métodos e Acesso}} | | Sala |
| 13/03 | Exercícios: definição de classes;\\ Recursos avançados do Eclipse para classes; | | | Lab |
| 17/03 | Criação de objetos;\\ Construtores; | {{java:08-criacao-objetos.ppt|Criação de Objetos}} | | Sala |
| 20/03 | Exercícios de criação de objetos; | {{java:lista1.doc|Lista de exercício 1}} | | Lab |
| 24/03 | Strings e Arrays; | {{java:09-strings-arrays.ppt|Strings e Arrays}} | | Sala |
| 27/03 | Exercícios em arrays; | | | Lab |
| 31/03 | Exercícios em arrays; | | | Lab |
| 03/04 | Exercícios em arrays; | {{java:09-mais sobre arrays.ppt|Mais sobre arrays}} | | Lab |
| 07/04 | Últimas dúvidas - exercício de arrays;\\ Discussão lista de exercícios 1; | | | Lab |
| 10/04 | **Prova 1** | | | Sala |
| 14/04 | 8-) Sexta-feira Santa | | | Praia |
| 17/04 | Estruturação de programas Java; | | | Sala |
| 21/04 | 8-) Tiradentes | | | Praia |
| 24/04 | Estruturação de programas Java;\\ Iniciar exercício no laboratório; | {{java:10-projetooocamadas.ppt|Estruturação de Programas}} | | Lab |
| 28/04 | Exercícios em estruturação de programas Java | | | Lab |
| 01/05 | 8-) Dia do Trabalho | | | Praia |
| 05/05 | Exercícios em estruturação de programas Java | | | Lab |
| 08/05 | Herança;\\ Polimorfismo; | {{java:11-heranca.ppt|Herança e Polimorfismo}} | | Sala |
| 12/05 | Exercícios em herança; | | | Lab |
| 15/05 | Interfaces;\\ Pacotes; | {{java:12-interfaces-pacotes.ppt|Interface e Pacote}} | | Sala |
| 19/05 | Exercícios com pacotes;\\ Exercícios com interfaces;\\ Dúvidas - Herança| | | Lab |
| 22/05 | Tratamento de exceções; | {{java:13-excecoes.ppt|Exceções}} | {{java:lista2.doc|Lista de Exercícios 2}} | Sala |
| 26/05 | Exercícios com exceções; | | | Lab |
| 29/05 | Programação interface gráfica: Swing;\ Janelas e Painéis; | | | Sala |
| 02/06 | Gerenciadores de Layout;\\ Tratamento de Eventos;\\ Exercícios com Swing extras; | | | Sala |
| 05/06 | **Prova 2** | | | Sala |
| 09/06 | Aula de dúvidas | | | Sala |
| 12/06 | **Prova de Reposição** | | | Sala |
| 16/06 | Aula de Dúvidas | | | Sala |
| 19/06 | **Prova Final** | | | 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.1.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.