Curso extra-curricular de Java para alunos do IME
Introdução à linguagem Java
Tempo:
6 aulas aos sábados, das 9H às 12H
(1 projeto)
Datas: aos sábados
- 14 / setembro - primeira aula
- 21 / setembro - segunda aula
- 05 / outubro - terceira aula + monitoria após a aula
- 19 / outubro - quarta aula + monitoria após a aula
- 26 / outubro - quinta aula + monitoria após a aula
(entrega etapa 1 projeto)
- 09 / novembro - sexta aula + monitoria após a aula
Profa.:
Nilsa Arean Garcia (ex-aluna do BCC)
[material disponível nos "links" de cabeçalho de cada aula]
[aula 1 |
aula 2 |
aula 3 |
aula 4 |
aula 5 |
aula 6 |
projeto
]
Aula 01 :
Programação Orientada a Objetos e noções gerais da linguagem Java.
(exemplos: exemplo 1; exemplo 2)
Tópicos da Aula
Fundamentos
de orientação a objetos
- Características de orientação a objetos
- Definições de objetos e classes
- Encapsulamento e mensagens
- Operações envolvendo classes e objetos
- Introdução à metodologia OMT
- Fases da metodologia
- Análise: modelo de objetos
- Principais características da linguagem Java
- Integração de Java com outras plataformas
- Linguagens orientadas a objetos
- PARADIGMA DE ORIENTAÇÃO A OBJETOS:
- Alta reutilização de software, Desenvolvimento sempre
evolutivo, Construções complexas a partir de
construções simples, Manutenção tende a
ser simples.
- Elementos básicos: OBJETOS, CLASSES, INSTANCIAÇÃO
- OBJETOS:
caracterização(identificação, estado
interno, comportamento) e classificação
- CLASSES:
Abstrações para representar objetos com
características e comportamentos comuns. Caracterização:
nome, atributos e métodos. Encapsulamento.
Classificação/Instanciação,
Generalização/ Especialização,
Agregação/ Decomposição.
- HERANÇA
- METODOLOGIA
OMT ( Object Modeling Technique ) ou técnica de Rumbaugh.
- FASES DA METODOLOGIA: Análise, Projeto do sistema, Projeto dos
objetos, Implementação. Passos das fases. Modelos,
diagramas e notações.
- JAVA
- Java x Outras Linguagens
- Características Gerais de Java
- Suporte de Desenvolvimento: JDK ( Compilador e Interpretador ), Jbuilder (
PC ), Visual Café ( PC ), Code Warrior ( PC-Macintosh)
- Mecanismo de Trabalho, Estrutura de um arquivo
.java, Pacotes, Suporte Gráfico
- APPLETS:
Mecanismo de funcionamento, Applets
em páginas, HMTL
- Suporte para redes, Suporte para banco de
dados, Suporte para objetos remotos
- Interligação de Java com outras plataformas
Aula 02 :
Programando com a linguagem Java.
(exemplos: exemplo 3;
exemplo 4)
Tópicos da Aula
- Sintaxe
da linguagem Java e programação
- Applets
- Mecanismo
de funcionamento das applets
- Mecanismos
de segurança com applets
- Estrutura
do pacote java.applet
- Programação
de applets
- Interfaceamento
de applets com páginas WWW
- JAVA
- Organização de um programa Java
Estrutura básica de uma classe
Sintaxe da linguagem: Palavras reservadas, Tipos básicos,Operadores e
suas precedências, Comandos de controle, arrays e
comentários
- APPLETS:
Mecanismos de carregamento de applets, de segurança e carga remota
Gerenciamento de segurança pelos navegadores
Applets carregadas localmente
Estrutura do pacote java.applet
Ciclo de vida e implementação de applets
Interfaceamento com páginas WWW e HTML
Sintaxe e atributos do marcador <applet>
Passagem e recuperação de parâmetros para as applets
Outros métodos importantes das applets:URL getDocumentBase(), URL getCodeBase().
Aula 03 :
Estruturação de classes com a linguagem Java.
(exemplos e tarefas:
exemplo 3;
tarefa 3)
Tópicos da Aula
- Estrutura geral de uma classe
- Construtores e Garbage collection
- Operador de autoreferência this
- Atributos, métodos e herança
- Operador super
- Polimorfismo
- Classes abstratas
- Métodos abstratos
- Interfaces
Aula 04 :
Pacotes, Tratamento de exceções (erros) e Mecanismos de IO
(exemplo(s) 4)
Tópicos da Aula
- Detecção e tratamento de exceções
- Construção de classes e pacotes de exceções
- Utilização de pacotes de classes
- Restrições de acesso
- Organização do java.lang e java.util
- Organização do pacote java.io
- Classe File e interface FilenameFilter
- Entrada e Saída
Aula 05 :
Interfaces gráficas e manipulação de imagens.
(exemplo(s) 5)
Tópicos da Aula
- Estrutura básica do pacote java.awt
- Ciclo de desenvolvimento de interfaces gráficas
- Componentes
- Estrutura básica do java.awt-components
- Containers
- Gerenciadores de layout
- Eventos
- Handler gráfico Graphics
- Primitivas gráficas do AWT
- Texto no modo gráfico
- Cores
- Pacote java.awt.image
Aula 06:
Gerenciamento de processos, Threads e Applets.
(exemplo(s) 6)
Tópicos da Aula
- Conceitos básicos de processos
- Concorrência e semáforos
- Classes Runtime e Process
- Threads
- Interface Runnable
- Threads concorrentes
- Comunicação entre threads
- Uso de threads em animação
- Implementação de Applets
- Ciclo de vida de uma Applet
- Produtores, consumidores e observadores de imagens
- Filtros para imagens
Projeto:
Um sistema gráfico para Cálculo.
Projeto em grupo, com os alunos divididos em times (tamanho do time a ser decidido de acordo com a turma)
Objetivo geral do sistema:
- desenhar f(x) com parâmetros a, b, ...
- alterar parâmetro a (b,...), com barra de rolagem p.e., altera
dinamicamente o desenho
- desenhar f'(x)
- desenhar f(.) e f'(.) em duas janelas, lado-a-lado, e pode-se animar um ponto
na curva (x,f(.)), desenhando a reta tangente à f(.) neste
ponto
- mais recursos do gênero com integral, talvez variando-se o método
de integração (de modo modular, p/ o usuário
escolher o método)
Dica de animação: fazer animação em AWT/Java tem alguns problemas, pois
a chamada para "repaint" dentro de um laço pode
ser escalonada (e portanto chamada) apenas uma vez!! Uma solução que
frequente em programas é usar "threads", mas podemos também usar "double
buffering" (técnica útil para evitar "imagens tremidas"). Estude os
exemplos deste arquivo.
Exemplo de calculadora: aqui apresentamos um exemplo funcional de
calculadora
que pode ser utilizada (incrementando-a)
para entrada da expressão aritmética.
|
Etapas:
DOC com primeira etapa
Projeto - Terceira Parte
30/11/2002 - 10:00 hs
Faça uma interface gráfica em uma "applet" que ao receber (por exemplo, por
meio de um "TextField") uma função: f(x) (R ->R), contínua e derivável, trace
as funções f(x) e f´(x) em um gráfico no R^2 (ou seja, desenhe graficamente
as duas funções na tela), com barras de rolagem: vertical e horizontal.
Opcionalmente, pode ser calculada, explicitamente a função f´(x).
O código fonte deve estar, obrigatóriamente, documentado.
Lista de discussão: http://www.ime.usp.br/~leo/java2002/msq/
Apresentação: dia 30/11/2002, 10:00 hs, sala 16-B.
Grupos de no máximo 5 (cinco) componentes.
Monitorias: quatro reuniões para acampanhamento do projeto
(após as aulas 3, 4, 5 e 6)
Nilsa Arean Garcia
Leônidas O. Brandão