Cronograma de Atividades


Veja as alterações no cronograma do início de 2006.

Exceto quando indicado abaixo, as aulas serão realizadas no horário definido pela coordenação do curso.

As listas de exercícios só estarão disponíveis nas datas indicadas abaixo; não tente ter acesso as mesmas com antecedência para não pegar versões desatualizadas. 

Data e local/meio

Atividades

21/09, sala de aula 8

Discutir conceitos básicos de programação (veja as transparências).

Ver como editar, compilar e executar um programa simples em Java. Testar exemplo do celular, e olhar o programa correspondente em Java.

Discutir postura durante o curso: importância da disciplina, cronograma pessoal e carga de estudo necessária (6 horas por semana além das aulas, veja o que pode acontecer caso você não se organize já), perguntas durante a aula, preparação para a aula, aprendizado depende do aluno, freqüência nas aulas, relacionamento com os monitores. 

Navegar pelo site do curso, vendo detalhes sobre exames, cronograma, etc.

Ler páginas 1 a 3 do Capítulo 1 do livro texto.

Imprimir ou tirar cópia do livro texto do curso: Interactive Programming in Java, de Lynn Andrea Stein (veja http://www.babylon.com/ para um dicionário digital que pode ajudar a leitura de textos em Inglês no computador).

Se familiarizar com o ambiente dos laboratórios da graduação (editor de texto, browser, leitor de email e news, visualizadores de PS e PDF, software de compressão de arquivos) e assinar o newsgroup depto.cursos.grad.ip.

Definir equipe de 2 pessoas e enviar nomes completos e logins dos membros para nbs2@cin.ufpe.br.

 

23/09, sala de aula 8

Discutir diretrizes básicas para programação (veja as transparências) e um exemplo ilustrando a aplicação das diretrizes para um sistema bancário (veja as transparências).

Ler páginas 4 a 19 do Capítulo 1 do livro texto.

Resolver exercícios 1 e 4 do Capítulo 1 do livro texto.

Responder as 5 perguntas (Quem vai usar o programa? Que serviços são necessários? Que entidades realizam estes serviços? Como as entidades interagem? Como cada entidade realiza os seus serviços?)  considerando o sistema de automação do Estacionamento do Shopping Center Recife. Analisar as respostas preliminares, que devem ser revisadas e complementadas. 

 

 

26/09, sala de aula 8

Entregar  e discutir soluções dos exercícios passados na aula passada, incluindo o sistema de automação do Estacionamento do Shopping Center Recife.

Procurar na web, e no livro de Introdução a Ciência da Computação , por referências para sistemas numéricos, e olhar como transformar de decimal em binário, octal e hexadecimal, e vice-versa. Anunciar no newsgroup as boas referências encontradas. Ver algumas já anunciadas: 1, 2, 3, 4, 5, 6.

Revisar, no livro de Matemática Discreta, os conceitos básicos de álgebra booleana: operadores de negação, disjunção (ou), conjunção (e), e disjunção exclusiva (ou exclusivo).

 

28/09, sala de aula 8

 

Discutir conceitos básicos de programação orientada a objetos e Java: interfaces, tipos, String, exceções, objetos, classes, definição de atributos, information hiding (veja as transparências ).

Ler Capítulos 3 e 4 do livro texto.

Resolver exercícios 1, 2, 3, 4, 5, e 6 do Capítulo 3 do livro texto.

Resolver exercícios 2, 3, 4, e 5 do Capítulo 4 do livro texto. 

 

30/09, sala de aula 8

Discutir conceitos básicos de programação orientadas a objetos e Java: definição de métodos, distinção entre parâmetros e atributos, atribuição, return, int e boolean, igualdade e alguns outros operadores, comando condicional  (veja as mesmas transparências da aula anterior). 

 

Testar exemplo do celular, e olhar o programa correspondente em Java.

Verificar aqui quem é o monitor responsável pela sua equipe. Enviar e-mail para o monitor e combinar horário semanal para tirar dúvidas sobre exercícios, começando com estes acima. 

Resolver exercícios (veja a lista).

3/10, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios passados na aula do dia 28/09.

Discutir métodos set e get e exemplos com código completo de várias classes simples: Conta, Cliente, Endereço, Filme, Fita, e Produto.

Continuar a resolver exercícios (veja a lista).

 

5/10, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios passados na aula do dia 30/09. 

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

7/10, sala de aula 8

Discutir aspectos de criação de objetos (veja as transparências), o método main, produtividade, qualidade e reuso de construtores.

 

 

10/10, sala de aula 8

Discutir aspectos de manipulação de objetos, operador this,  composição de métodos (veja as transparências).

 

12/10

Feriado - Nossa Senhora Aparecida

14/10, sala de aula 8

Discutir as estruturas de controle e operadores pré-definidos de Java  (veja as transparências, parte I).

Resolver exercícios (veja a lista).

15/10, parte B de 8 às 10 hs, parte A de 10 às 12 hs, laboratório Grad 1 

Usar ambiente básico para programação em Java (veja o roteiro de aula). 

Copiar a classe Console (.class e .java) e a sua documentação para as suas máquinas. 

Continuar a resolver exercícios; só fazer isso depois de ter seguido completamente o roteiro de aula (veja a lista).

 

 

17/10, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1 

Continuar a resolver exercícios (veja a lista) e usar as ferramentas básicas para programação em Java.

19/10, sala de aula 8

Entregar  (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

21/10, sala de aula 8

Continuar a discutir as estruturas de controle e operadores pré-definidos de Java (veja as transparências, parte II).

Discutir notas das mini-provas e exercícios.

Resolver exercícios (veja a lista).

 

 

24/10, sala de aula 8

Continuar a discutir as estruturas de controle e operadores pré-definidos de Java (veja as transparências, parte II).

Discutir brevemente os conceitos de recursão, invariante de laço, sentinelas, e cuidados com terminação.

Discutir a utilização de métodos e atributos estáticos (veja as transparências).

Continuar a resolver exercícios (veja a lista).

 

 

26/10, parte A de 8 às 10 hs, laboratório Grad 1

parte B de 12 às 14 hs, laboratório Grad 1 

Usar ferramentas padrões para programação em Java (veja o roteiro de aula). Discutir importância e técnicas para testes de unidade e depuração.

Ver alternativa (JET) para a geração de código executável (Windows EXE) a partir de Java.

Continuar a resolver exercícios (veja a lista).

28/10

Feriado - Dia do Funcionário Público

31/10, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

2/11

Feriado - Finados

4/11, sala de aula 8

Discutir idéia básica de dividir para conquistar e impacto na estruturação de sistemas.

Discutir a utilização de arrays: motivação, várias versões de estrutura com inserção, remoção e busca de elementos (veja as transparências). 

Resolver exercícios (veja a lista).

 

 

7/11, sala de aula 8

Discutir a utilização de arrays: estrutura com atualização e manipulação de elementos; duplicação de tamanho da estrutura; consultas retornando vários objetos de um mesmo tipo; arrays bidimensionais  (veja as mesmas transparências da aula anterior).

Discutir idéias básicas sobre refactoring.

Continuar a resolver exercícios (veja a lista).

 

 

9/11, sala de aula 8

Discutir a estruturação de sistemas em camadas (veja as transparências).

Continuar a resolver exercícios (veja a lista).

 

 

11/11, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

Ler os artigos Software's chronic crisis e How software doesn't work

 

14/11, sala de aula 8

Discutir a utilização de pacotes (veja as transparências).

Discutir conceitos de qualidade de software (veja as transparências).

Discutir artigos passados na aula anterior.

Ler o Padrão de Codificação Java e o Guia de Fatores de Qualidade de Orientação a Objetos e Java.

16/11, parte A de 8 às 10 hs,

laboratório Grad 2

 

parte B de 12 às 14 hs, laboratório Grad 1

Usar ambiente gráfico para programação em Java (veja o roteiro de aula), noção básica sobre pacotes.

Temos também como alternativa o roteiro utilizando o JBuilder 5.0.

 

 

18/11, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1

Analisar em detalhe a implementação da primeira versão do sub-sistema de previsão de textos dos aparelhos celulares; ele ilustra de forma simplificada o que deve ser implementado e entregue na primeira parte do projeto, e como o código deve ser estruturado. Descobrir exatamente qual a funcionalidade deste sub-sistema (veja o projeto do Eclipse, uma classe básica, uma classe  coleção de dados, uma classe coleção de negócio, a classe fachada, a interface da fachada, uma classe auxiliar, e uma classe da interface com o usuário).

Identificar problemas e boas soluções em diferentes versões da aplicação acima. 

Desenvolver a primeira parte do projeto. 

 

 

19/11, parte B de 8 às 10 hs, parte A de 10 às 12 hs,  laboratório Grad 1

Desenvolver a primeira parte do projeto.

 

 

 

 

21/11, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1

Desenvolver a primeira parte do projeto.

 

 

23/11, parte A de 8 às 10 hs,
laboratório Grad 2

parte B de 12 às 14 hs, laboratório Grad 1

Desenvolver a primeira parte do projeto.

Ver o software Checkstyle para identificar falhas no seu projeto.

24/11, até às 18 hs (em ponto), para o email do monitor responsável pela sua equipe

Entregar a primeira parte do projeto.

25/11, sala de aula 8

Discutir conceitos básicos de herança e subtipos (veja as transparências).

Discutir notas das mini-provas e exercícios.

 

 

28/11, sala de aula 8

Discutir conceitos de polimorfismo e dynamic binding  (veja as mesmas transparências da aula passada). 

Discutir exemplos de modelagem com herança e subtipos: Produtos (simples, múltiplo, composto), Funcionários (gerente, operador, vendedor), Clientes (fidelizado e não fidelizado, pessoa física e jurídica).

Resolver exercícios (veja a lista).

 

 

30/11, sala de aula 8

Discutir conceitos de classes abstratas (veja as transparências).

Continuar a resolver exercícios (veja a lista).

 

 

2/12, sala de aula 8

Discutir conceitos de interfaces (veja as transparências).

Continuar a resolver exercícios (veja a lista).

 

 

5/12, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

6/12, com o monitor responsável pela sua equipe

 Pegar a correção do projeto e tirar dúvidas com o seu monitor.

7/12, sala de aula 8

Discutir conceitos de exceções (veja as transparências).

 

 

9/12, sala de aula 8

Discutir conceitos básicos de concorrência (veja as transparências).

Resolver exercícios (veja a lista).

 

 

12/12, sala de aula 8

Continuar a discutir conceitos básicos de concorrência (veja as mesmas transparências da aula passada).

Discutir onde introduzir sincronização nas várias classes da arquitetura em camadas.

Analisar métodos da classe Thread de Java.

Continuar a resolver exercícios (veja a lista).

 

 

14/12, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

16/12,  parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1

Analisar em detalhe a implementação da segunda versão do sub-sistema de previsão de textos dos aparelhos celulares; esta versão ilustra de forma simplificada o que deve ser implementado e entregue na segunda parte do projeto, e como o código deve ser estruturado. Compare com a versão anterior

Desenvolver a segunda parte do projeto.

 

 

17/12, parte B de 8 às 10 hs, parte A de 10 às 12 hs, laboratório Grad 1

Desenvolver a segunda parte do projeto.

 

 

19/12, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1

Desenvolver a segunda parte do projeto.

 

 

21/12, até às 18 hs (em ponto), para o email do monitor responsável pela sua equipe

Entregar a segunda parte do projeto.

 

 

22/12 a 22/1

Recesso Acadêmico

 

23/1, sala de aula 8

Discutir o desenvolvimento de interfaces gráficas com Java (veja as transparências e os exemplos sobre applets e os componentes básicos para desenvolvimento de GUIs).

Usar os recursos para desenvolvimento de GUIs do Eclipse.

Resolver exercícios (veja a lista).

 

 

25/1, sala de aula 8

Discutir o desenvolvimento de interfaces gráficas com Java (veja as transparências e os exemplos sobre beans, e os exemplos sobre frames e menus).

Continuar a resolver exercícios (veja a lista).

 

 

27/1, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1   

Continuar a resolver exercícios (veja a lista) e usar os recursos para desenvolvimento de GUIs do Eclipse (veja o roteiro para criar Beans). 

 

 

30/1, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

1/2, sala de aula 8

Discutir os conceitos de persistência e arquivos (veja os exemplos e as transparências). 

Analisar as classes e interfaces do pacote java.io de Java.

 

 

2/2, com o monitor responsável pela sua equipe

 Pegar a correção do projeto e tirar dúvidas com o seu monitor.

 

 

3/2, sala de aula 8

Discutir compartilhamento de uma fachada por vários clientes, necessidade de tecnologia de servidor (RMI, EJB, Servlets) e criação automática de threads.

Discutir utilização de objetos remotos (veja as transparências).

Discutir classes, interfaces e ferramentas associadas ao pacote java.rmi de Java.

 

 

6/2, sala de aula 8

Discutir aspectos de linguagens imperativas e ponteiros e registros (veja as transparências e os exemplos).

Resolver exercícios (veja a lista).

 

 

8/2

Sem aula devido a viagem

10/2, sala de aula 8

Discutir ponteiros e registros (veja as mesmas transparências e exemplos da aula passada).

Discutir métodos nativos (veja os exemplos).

Continuar a resolver exercícios (veja a lista).

 

 

13/2, parte A de 12 às 14 hs, parte B de 14 às 16 hs laboratório Grad 1

Utilizar compilador de C (veja o roteiro de aula).

Continuar a resolver exercícios (veja a lista).

 

 

15/2, sala de aula 8

Entregar (para o seu monitor) e discutir soluções dos exercícios.

Fazer mini-prova (veja as passadas); começando exatamente 1 hora após o início da aula.

Analisar solução da mini-prova.

 

 

17/2, parte A de 12 às 14 hs, parte B de 14 às 16 hs, laboratório Grad 1

Analisar em detalhe a implementação da terceira versão (GUI, concorrência e arquivos, métodos nativos e C) do sub-sistema de previsão de textos dos aparelhos celulares; esta versão ilustra de forma simplificada o que deve ser implementado e entregue na terceira parte do projeto, e como o código deve ser estruturado. Compare com a versão anterior

Desenvolver a terceira parte do projeto.

 

 

20/2, parte A de 12 às 14 hs,  parte B de 14 às 16 hs, laboratório Grad 1

Desenvolver a terceira parte do projeto.

 

 

22/2, parte A de 8 às 10 hs, parte B de 12 às 14 hs, laboratório Grad 1

Desenvolver a terceira parte do projeto.

Para quem quiser ir além do que foi feito, uma boa opção nas férias é modificar o sistema para usar o Prevayler (http://www.prevayler.org/), que tornará a sua aplicação persistente.

24/2, até às 18 hs (em ponto), para o email do monitor responsável pela sua equipe

Entregar a terceira parte do projeto.

 

 

3/3, sala de aula 8

Fazer exame escrito.

Caso você queira, durante as férias, desenvolver um projeto mais avançado, versões simplificadas dos seguintes sistemas seriam bem interessantes: o leitor de email do Mozilla (http://www.mozilla.org/) ou do Eudora (http://www.eudora.com/), o sistema de vendas da Amazon (http://www.amazon.com/), o webspider JoBo (http://www.matuschek.net/software/jobo), o sistema de reservas da Varig (http://www.varig.com.br/), o sistema do Banco do Brasil (http://www.bb.com.br/) ou de outro banco, o sistema Lattes de currículos (http://lattes.cnpq.br/), o sistema de manipulação de programas Recoder (http://recoder.sourceforge.net/), o sistema Napster de troca de arquivos, o SIG@ da UFPE (http://www.siga.ufpe.br/),  algum sistema em Sourceforge (http://sourceforge.net/), ou o software do seu celular.

 

 

13/3,  sala de aula 8

Fazer exame escrito final.