Programação 2

Período: 2001.1

As Pessoas A Disciplina A Avaliação Outros
Professor Ementa Forma de avaliação Datas Importantes
Monitor Objetivos Notas dos Alunos Lista de Discussão
Alunos Programa Lista de Exercícios Como entrar/sair da lista
  Plano de Aulas Gabaritos minitestes Recursos
  Bibliografia Gabarito lista1 Código fonte dos exemplos
  Material da disciplina (html on-line) Gabarito lista2 Página do Laboratório
  Material HTML zipado Gabarito lista3  
  Material adicional Gabarito lista4  

Professor: Jacques Philippe Sauvé

Horários das Aulas e de Atendimento a Alunos pelo Professor

Monitor

Alunos

Aluno Observação
Acto de Lima Cunha  
Adilton Angelo Seixas Maga-  
Ana Emília Victor Barbosa  
Ana Isabella Muniz  
Ana Karina de Oliveira Rocha  
Antonio Jesus Souza Melo Neto  
Antonio Petrus Luiz de And-  
Ayran Leite Cruz  
Brunno Giordano Mello Silva  
Cleidson Santos Barreto  
Danilo Alexandre Barbosa de Araújo  
Darlan Araújo dos Santos  
Eduardo Costa Santos  
Eliana de Souza Souto  
Emílio de Farias Neto  
Fábio de Oliveira Paiva  
Filipe Teixeira Marques  
Frederico Augusto Santos Brasil  
Fúlvio Figueiroa Silvestre  
Genard Dantas de Aguiar Neto  
Guarany Marques Viana Filho  
Hugo Leonardo de Miranda R-  
Jackson Azevedo de Lima  
Lisandro de Brito Jordão  
Loreno Feitosa de Oliveira  
Malan Faustino Ribeiro  
Marcel de Andrade Sales  
Marcelino Antero Silva  
Márcio Roberto Pinto de Araújo  
Marcos Luiz Lins Filho  
Marcos Pinheiro Duarte  
Paulo Eduardo e Silva Barbosa  
Paulo Marcelo Figueiredo M-  
Phillipe Gustavo Holanda C-  
Randolph Rodrigues Oliveira  
Raniere dos Santos da Silva  
Rodrigo de Oliveira Tavare-  
Sadi Giorgi Pezzi Gitz  
Taciano de Morais Silva  
Uirá Henriques de Melo Lul-  
Wagner de Souza Porto  
Yuska Paola Costa Aguiar  

Plano de Aulas

Dia Realizado Assunto Planejado
1

04/06/2001

06/06

Calendário do semestre 2001.1

  • Início: 4/6
  • Feriados de junho: 14, 23
  • Feriado de setembro: 7
  • Fim: 2/10
  • Exames finais: 3 a 8 de outubro


Anunciar URL da disciplina: http://vulcano.dsc.ufpb.br/jacques/cursos/2001.1/p2/index.htm
Não imprimir nas impressoras da Universidade
Avisar para todos olharem as datas importantes
Objetivos da disciplina
Programa da disciplina
Critérios de avaliação

1. Introdução

1.1: Introdução à Linguagem Java através de exemplos
Exemplos de pequenos programas em java que evidenciem: tipos básicos, decisões e laços, (mas não métodos para evitar métodos estáticos), compilação e execução, IDE, constantes

2

06/06

11/06

1.1: Introdução à Linguagem Java através de exemplos
Exemplos de pequenos programas em java que evidenciem: expressões, alguns operadores, entrada e saída, arrays

3

11/06

13/06 2. Orientação a Objeto

2.1: Usando Objetos
Introdução à OO, conceito de objeto no mundo real, no mundo de software OO, diferenças entre mundo real e software, modelo, atributos, comportamento, responsabilidade, Padrão de Projeto Expert, instanciação e uso de objetos, classe de objeto, construtor, referência, métodos e envio de mensagem, encapsulamento

4

13/06

18/06
20/06

2.1: Usando Objetos
Identidade de objetos, uso de várias classes, overload, método de classe, persistência, tudo é um objeto, while e switch, referência nula, curto ciruito

5

18/06

  [Buffer de contingência para as aulas]
6

20/06

25/06

2.1: Usando Objetos
Captura e tratamento de exceções

7

25/06

27/06

2.2: Coleções de Objetos
Exemplos de pequenos programas em java que evidenciem: conceito de coleção, comportamento de uma coleção, iteração via índice, cast

8

27/06

27/06

2.2: Coleções de Objetos
Exemplos de pequenos programas em java que evidenciem: iteração sequencial em uma coleção

9

02/07

  [Buffer de contingência para as aulas]
10

04/07

02/07

2.3: Criação de Classes
Exemplos de pequenos programas em java que evidenciem: encapsulamento dados e comportamento, atributos, métodos, retorno, this, usando a classe criada. Introdução à UML

11

09/07

04/07

2.3: Criação de Classes
Exemplos de pequenos programas em java que evidenciem: Um segundo exemplo de criação de classes, com 2 classes

12

11/07

09/07

2.3: Criação de Classes
Exemplos de pequenos programas em java que evidenciem: métodos-padrão, sobrecarga

13

16/07

  [Buffer de contingência para as aulas]
14

18/07

11/07
16/07
18/07

2.4: Interfaces e Polimorfismo
Exemplos de pequenos programas em java que evidenciem: diferença entre implementação e tipo (comportamento), como duas classes podem implementar a mesma interface

16

23/07

23/07

2.4: Interfaces e Polimorfismo
Exemplos de pequenos programas em java que evidenciem: a interface como tipo abstrato de dado (que define apenas comportamento) polimorfismo: fazendo com que o código cliente se amarre a uma interface e não a implementação

17

25/07

  [Buffer de contingência para as aulas]
18

30/07

25/07

2.5: Reuso com Herança
Exemplos de pequenos programas em java que evidenciem: classes implementando a mesma interface, fatoramento de implementação criação de hierarquias de classes

19

01/08

30/07
(Glaucimar)

2.5: Reuso com Herança
Exemplos de pequenos programas em java que evidenciem: classes abstratas, override, programming by difference, casting, upcast e downcast

14

06/07

06/08

2.6: Tratamento de Erros usando Exceções
Exemplos de pequenos programas em java que evidenciem: exceções, sem criar nova exceção
2.7: Testes de Unidade
Exemplos da criação de testes de unidade com JUNIT

20

08/08

08/08
13/08

2.7: Testes de Unidade
Exemplos da criação de testes de unidade com JUNIT
2.8: Visibilidade
Exemplos de pequenos programas em java que evidenciem: encapsulamento revisitado, visibilidade, packages

21

13/08

  [Buffer de contingência para as aulas]
22

15/08

15/08
20/08
27/08

2.9: Regras Básicas de Design
Exemplos de programas que evidenciem regras básicas de design: "Colocar as responsabilidades com os dados", "Quem conhece cria", "Manter acoplamento baixo", "Manter coesão alta"

23

20/08

27/08

2.10: Composição de Objetos
Exemplos de pequenos programas em java que evidenciem: reuso com composição, delegação, herança versus composição

24

22/08

29/08
03/09
3. Estruturas de Dados

3.1: Arquivos
Exemplos de pequenos programas em java que evidenciem: uso de arquivos, serialização de objetos

25

27/08

  [Buffer de contingência para as aulas]
26

29/08

05/09
10/09

3.2: Tipos de Coleções
Exemplos de pequenos programas em java que evidenciem: Definições de interfaces para tipos variados de coleções (listas, mapas, conjuntos, ...)
3.3: Implementações de Coleções usando Arrays
Exemplos de pequenos programas em java que evidenciem: Implementação de lista como array, implementação de conjunto como array. Complexidade computacional

27

03/09

12/09

3.4: Implementações de Coleções usando Listas Encadeadas
Exemplos de pequenos programas em java que evidenciem: Implementação de lista como array, implementação de conjunto como array. Complexidade computacional. Regras de escolha de estruturas de dados.

28

05/09

 

[Buffer de contingência para as aulas]

29

10/09

Não foi feito 4. Algoritmos

4.1: Algoritmos de Pesquisa
Exemplos de pequenos programas em java que evidenciem: o problema de pesquisa, pesquisa linear e binária, complexidade dos algoritmos.

30

12/09

Não foi feito

4.2: Algoritmos de Ordenação
Exemplos de pequenos programas em java que evidenciem: o problema de ordenação, ordenação por seleção, mergesort, complexidade dos algoritmos.

31

17/09

17/09 5. Um Exemplo Final

5.1: Um Exemplo Final
Exemplo completo maior com modelagem, etc. Poderá haver um exemplo de refactoring, se houver tempo.

32

19/09

19/09
24/09

5.1: Um Exemplo Final
Exemplo completo maior com modelagem, etc. Poderá haver um exemplo de refactoring, se houver tempo.

33

24/09

  [Buffer de contingência para as aulas]
34

01/10

01/10 Prova Final

Bibliografia

Bibliografia sobre Java

  1. Java - Como Programar, Deitel, Bookman, 2000. [Mais ou menos recomendado, em português]
  2. Thinking In Java : The Definitive Introduction To Object-Oriented Programming The Language Of The World Wide Web, Bruce Eckel, Prentice Hall, 1998. [Altamente recomendado, em inglês]
  3. Core Java 2: Volume I - Fundamentals, Horstmann e Cornell, Prentice-Hall, 1999.
  4. Core Java 2: Volume1 - Fundamentos, Horstmann e Cornell, Makron Books, 2000.
  5. The Java Programming Language, Arnold e Gosling, Addison-Wesley, 1998. [A bíblia da linguagem Java]
  6. ... e centenas de outros livros. Infelizmente, a maioria não é boa.

Avaliação

A avaliação será feita com mini-testes dados esporadicamente durante as aulas e com listas de exercícios.

Os pesos atribuídos aos vários tipos de avaliação são indicados abaixo. Alunos podem faltar a até 25% dos mini-testes, sem prejuízo. Perde-se 5% do valor da nota dada a uma lista de exercícios para cada dia de atraso na entrega.

Evento de Avaliação Peso
Mini-testes 80%
Listas de exercícios 20%

Datas Importantes

Evento Data limite
Lista 1: Introdução a Java 13/06/2001
Lista 2: Usando objetos e coleções 09/07/2001
Lista 3: Criando classes e usando exceções 25/07/2001
Lista 4: Polimorfismo e herança 30/08/2001
Lista 5: Regras de design e composição
(ou Projeto do Laboratório)
27/09/2001
Prova final 01/10/2001

Recursos

Como entrar e sair da lista de discussão

Para entrar/sair na lista de discussão, mande um mail para listserv@listas.dsc.ufpb.br com uma das seguintes linhas no corpo da mensagem (não na linha de Assunto):

SUBSCRIBE progii-l voce@seudominio

ou

UNSUBSCRIBE progii-l voce@seudominio

Você ainda pode obter informação de ajuda do processador de listas enviando a mensagem HELP para listserv@listas.dsc.ufpb.br