Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 1
Introdução à Programação de
Aplicações Científicas em Java
Escola de Verão do Laboratório Associado de Computação
e Matemática Aplicada do INPE
Rafael Santos
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 2
Sobre o curso
● Dividido em quatro partes:
1. Tecnologia, Linguagem e Orientação a Objetos.
2. APIs comuns.
3. Programação com Interfaces Gráficas.
4. APIs para Processamento Científico (aplicações diversas).
● Cada parte tem aproximadamente 3 horas.
● O curso é somente teórico, sem laboratório.
●
Exemplos, links, etc. serão disponibilizados em
http://www.lac.inpe.br/~rafael.santos
● Muitos exemplos formatados como how-to.
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 3
Sobre o curso
● Pré-requisitos: conhecimentos em uma linguagem de
programação ou de técnicas de programação.
● Devemos evitar...
– Flame wars: “Minha linguagem é maior que a sua linguagem”.
A melhor linguagem é a que conhecemos, o objetivo aqui é
apresentar Java.
Eventualmente não poderei evitar algumas comparações...
– Consultorias: “Como faço algo incrivelmente esotérico e arcano em
Java?”
Provavelmente existe uma resposta ou API, www.google.com!
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 4
Parte 1: Linguagem e Tecnologia
● Porquê Java?
● A Tecnologia Java.
– Showcase.
● Introdução à Programação Orientada a Objetos.
– Encapsulamento/abstração, herança, polimorfismo.
● Ferramentas para desenvolvimento.
– JDK, Eclipse, Subversion.
● Algumas considerações.
– Performance e uso de memória.
– Segurança.
– Deployment.
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 5
Parte 2: APIs comuns
● Processamento de Texto.
● Conversões, classes-envelope e autoboxing.
● Entrada e Saída (console, streams e rede).
● Coleções (estruturas de dados).
● Classes para processamento numérico.
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 6
Parte 3: Interfaces Gráficas
● Criando aplicações gráficas em Java.
● Usando componentes das APIs Swing/AWT.
● Programação com Eventos.
● Escrevendo componentes específicos.
● Programação de aplicações standalone e applets.
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 7
Parte 4: APIs específicas
● Algumas APIs para processamento científico (com exemplos
de código).
– Processamento de Imagens: JAI.
– Data Mining: Weka.
– Redes Neurais: JOONE.
– Aplicações georeferenciadas: GeoTools.
– Visualização/3D: Java3D.
● Comentário sobre outras APIs.
– BioJava, JGAP, Batik, jogl, Colt, JGraph, JSimul,
JXTA, leJOS, JMF, Jade, JScience...
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 8
Ainda sobre o curso
● Motivação: abrir caminhos, complementar ensino, mostrar
possibilidades...
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 9
Ainda sobre o curso
● Abordagem: código e exemplos.
Janeiro/2007 http://www.lac.inpe.br/~rafael.santos 10
Ainda sobre o curso
● Provavelmente não poderemos ver tudo!
● O curso deverá ser expandido e oferecido regularmente, sua
opinião é importante.
● Que aspectos da linguagem podem ou devem ser cobertos,
considerando...
– Limitações de tempo.
– Que o curso não pode ser de introdução à programação.
– Que o curso não deverá servir como consultoria.
● Que pontos podem ser melhorados?

Introducao a programacao de aplicacoes cientificas em java