2 revisão bibliográfica - Projeto Pesquisa

Propaganda
TURNO:
Noturno
VERSÃO:
2
No
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
CURSO DE CIÊNCIA DA COMPUTAÇÃO — BACHARELADO
COORDENAÇÃO DE TRABALHO DE CONCLUSÃO DE CURSO
PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO
TÍTULO:
WEBIDE 2.0 – UM AMBIENTE WEB USANDO GWT-EXT PARA
ACOMPANHAMENTO E DESENVOLVIMENTO DE EXERCÍCIOS DE
PROGRAMAÇÃO
ÁREA: Informática na Educação
Palavras-chave: Ensino. GWT-Ext. JPDA. Aprendizado de programação. Ambiente de
programação.
1 IDENTIFICAÇÃO
1.1
ALUNO
Nome: Rafael Adriano
Código/matrícula: 93391
Endereço residencial:
Rua: Antônio Benassi
Complemento: Casa
n: 185
Bairro: Velha
CEP: 89046-610
Telefone fixo: (47) 3330-0327
Cidade: Blumenau
UF: SC
Celular: (47) 9909-9844
Endereço comercial:
Empresa: Senior Sistemas
Rua: Joinville
CEP: 89035-200
n: 526
Cidade: Blumenau
E-Mail FURB: [email protected]
1.2
Bairro: Vila Nova
UF: SC
Telefone: (47) 3221-3300
E-Mail alternativo: [email protected]
ORIENTADOR
Nome: Adilson Vahldick
E-Mail FURB: [email protected]
E-Mail alternativo: [email protected]
2 DECLARAÇÕES
2.1
DECLARAÇÃO DO ALUNO
Declaro que estou ciente do Regulamento do Trabalho de Conclusão de Curso de
Ciências da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada
em todas as páginas. Ainda me comprometo pela obtenção de quaisquer recursos necessários
para o desenvolvimento do trabalho, caso esses recursos não sejam disponibilizados pela
Universidade Regional de Blumenau (FURB).
Assinatura:
2.2
Local/data:
DECLARAÇÃO DO ORIENTADOR
Declaro que estou ciente do Regulamento do Trabalho de Conclusão do Curso de
Ciências da Computação e que a proposta em anexo, a qual concordo, foi por mim rubricada
em todas as páginas. Ainda me comprometo a orientar o aluno da melhor forma possível de
acordo com o plano de trabalho explícito nessa proposta.
Assinatura:
Local/data:
3 AVALIAÇÃO DA PROPOSTA
Rafael Adriano
Orientador(a):
Adilson Vahldick
ASPECTOS AVALIADOS
1.
não atende
Acadêmico(a):
atende
parcialmente
AVALIAÇÃO DO(A) ORIENTADOR(A)
atende
3.1
INTRODUÇÃO
1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2.
ASPECTOS TÉCNICOS
3.
4.
5.
6.
7.
ASPECTOS
METODOLÓGICOS
8.
9.
OBJETIVOS
2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral?
Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
RELEVÂNCIA
3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
METODOLOGIA
4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a
metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de
maneira a permitir a execução do TCC no prazo disponível?
REVISÃO BIBLIOGRÁFICA
5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais
características dos mesmos?
REQUISITOS DO SISTEMA A SER DESENVOLVIDO
6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
CONSIDERAÇÕES FINAIS
7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
REFERÊNCIAS BIBLIOGRÁFICAS
8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na
proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
CITAÇÕES
9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada)
10.1. O texto obedece ao formato estabelecido?
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem
utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se:

qualquer um dos itens tiver resposta NÃO ATENDE;

pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou

pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER:
(
Assinatura do(a) avaliador(a):
) APROVADA
(
) NECESSITA DE COMPLEMENTAÇÃO
Local/data:
CONSIDERAÇÕES DO(A) ORIENTADOR(A):
Caso o(a) orientador(a) tenha assinalado em sua avaliação algum item como “atende parcialmente”, devem ser relatos os
problemas/melhorias a serem efetuadas.
Na segunda versão, caso as alterações sugeridas pelos avaliadores não sejam efetuadas, deve-se incluir uma justificativa.
Assinatura do(a) avaliador(a):
Local/data:
Rafael Adriano
Avaliador(a):
José Roque Voltolini da Silva
ASPECTOS AVALIADOS
1.
não atende
Acadêmico(a):
atende
parcialmente
AVALIAÇÃO DO(A) COORDENADOR DE TCC
atende
3.2
INTRODUÇÃO
1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2.
ASPECTOS TÉCNICOS
3.
4.
5.
6.
7.
ASPECTOS
METODOLÓGICOS
8.
9.
OBJETIVOS
2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral?
Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
RELEVÂNCIA
3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
METODOLOGIA
4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a
metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de
maneira a permitir a execução do TCC no prazo disponível?
REVISÃO BIBLIOGRÁFICA
5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais
características dos mesmos?
REQUISITOS DO SISTEMA A SER DESENVOLVIDO
6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
CONSIDERAÇÕES FINAIS
7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
REFERÊNCIAS BIBLIOGRÁFICAS
8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na
proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
CITAÇÕES
9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada)
10.1. O texto obedece ao formato estabelecido?
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem
utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se:

qualquer um dos itens tiver resposta NÃO ATENDE;

pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou

pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER:
(
) APROVADA
(
) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a):
Local/data:
Rafael Adriano
Avaliador(a):
Dalton Solano dos Reis
ASPECTOS AVALIADOS
1.
não atende
Acadêmico(a):
atende
parcialmente
AVALIAÇÃO DO(A) PROFESSOR(A) DA DISCIPLINA DE TCCI
atende
3.3
INTRODUÇÃO
1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2.
ASPECTOS TÉCNICOS
3.
4.
5.
6.
7.
ASPECTOS
METODOLÓGICOS
8.
9.
OBJETIVOS
2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral?
Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
RELEVÂNCIA
3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
METODOLOGIA
4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a
metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de
maneira a permitir a execução do TCC no prazo disponível?
REVISÃO BIBLIOGRÁFICA
5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais
características dos mesmos?
REQUISITOS DO SISTEMA A SER DESENVOLVIDO
6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
CONSIDERAÇÕES FINAIS
7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
REFERÊNCIAS BIBLIOGRÁFICAS
8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na
proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
CITAÇÕES
9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada)
10.1. O texto obedece ao formato estabelecido?
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem
utilizada é clara)?
PONTUALIDADE NA ENTREGA
atraso de
_____ dias
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se:

qualquer um dos itens tiver resposta NÃO ATENDE;

pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou

pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER:
(
) APROVADA
(
) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a):
Local/data:
3.4
AVALIAÇÃO DO(A) PROFESSOR(A) ESPECIALISTA NA ÁREA
Acadêmico(a):
Rafael Adriano
1.
não atende
ASPECTOS AVALIADOS
atende
parcialmente
atende
Avaliador(a):
INTRODUÇÃO
1.1. O tema de pesquisa está devidamente contextualizado/delimitado?
1.2. O problema está claramente formulado?
2.
ASPECTOS TÉCNICOS
3.
4.
5.
6.
7.
ASPECTOS
METODOLÓGICOS
8.
9.
OBJETIVOS
2.1. O objetivo geral está claramente definido e é passível de ser alcançado?
2.2. São apresentados objetivos específicos (opcionais) coerentes com o objetivo geral?
Caso não sejam apresentados objetivos específicos, deixe esse item em branco.
RELEVÂNCIA
3.1. A proposta apresenta um grau de relevância em computação que justifique o
desenvolvimento do TCC?
METODOLOGIA
4.1. Foram relacionadas todas as etapas necessárias para o desenvolvimento do TCC?
4.2. Os métodos e recursos estão devidamente descritos e são compatíveis com a
metodologia proposta?
4.3. A proposta apresenta um cronograma físico (período de realização das etapas) de
maneira a permitir a execução do TCC no prazo disponível?
REVISÃO BIBLIOGRÁFICA
5.1. As informações apresentadas são suficientes e têm relação com o tema do TCC?
5.2. São apresentados trabalhos correlatos, bem como comentadas as principais
características dos mesmos?
REQUISITOS DO SISTEMA A SER DESENVOLVIDO
6.1. Os requisitos funcionais e não funcionais do sistema a ser desenvolvido foram
claramente descritos?
CONSIDERAÇÕES FINAIS
7.1. As considerações finais relacionam os assuntos apresentados na revisão bibliográfica
com a realização do TCC?
REFERÊNCIAS BIBLIOGRÁFICAS
8.1. As referências bibliográficas obedecem às normas da ABNT?
8.2. As referências bibliográficas contemplam adequadamente os assuntos abordados na
proposta (são usadas obras atualizadas e/ou as mais importantes da área)?
CITAÇÕES
9.1. As citações obedecem às normas da ABNT?
9.2. As informações retiradas de outros autores estão devidamente citadas?
10. AVALIAÇÃO GERAL (organização e apresentação gráfica, linguagem usada)
10.1. O texto obedece ao formato estabelecido?
10.2. A exposição do assunto é ordenada (as idéias estão bem encadeadas e a linguagem
utilizada é clara)?
A proposta de TCC deverá ser revisada, isto é, necessita de complementação, se:

qualquer um dos itens tiver resposta NÃO ATENDE;

pelo menos 4 (quatro) itens dos ASPECTOS TÉCNICOS tiverem resposta ATENDE PARCIALMENTE; ou

pelo menos 4 (quatro) itens dos ASPECTOS METODOLÓGICOS tiverem resposta ATENDE PARCIALMENTE.
PARECER:
(
) APROVADA
(
) NECESSITA DE COMPLEMENTAÇÃO
OBSERVAÇÕES:
Assinatura do(a) avaliador(a):
Local/data:
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO
WEBIDE 2.0 – UM AMBIENTE WEB USANDO GWT-EXT
PARA ACOMPANHAMENTO E DESENVOLVIMENTO DE
EXERCÍCIOS DE PROGRAMAÇÃO
RAFAEL ADRIANO
BLUMENAU
2009
RAFAEL ADRIANO
WEBIDE 2.0 – UM AMBIENTE WEB USANDO GWT-EXT
PARA ACOMPANHAMENTO E DESENVOLVIMENTO DE
EXERCÍCIOS DE PROGRAMAÇÃO
Proposta de Trabalho de Conclusão de Curso
submetida à Universidade Regional de
Blumenau para a obtenção dos créditos na
disciplina Trabalho de Conclusão de Curso I
do curso de Ciência da Computação —
Bacharelado.
Prof. Adilson Vahldick - Orientador
BLUMENAU
2009
2
1 INTRODUÇÃO
A disciplina de programação é uma das disciplinas chaves na formação do profissional
da computação, no entanto ela apresenta grande nível de dificuldade no processo de
ensino/aprendizagem, consequentemente a comunidade acadêmica tem se mostrado
preocupada com o desempenho dos alunos nas disciplinas introdutórias de programação
(XAVIER, 2004).
Para o sucesso no aprendizado de algoritmos, exige-se um forte comprometimento por
parte dos alunos em praticar os exercícios fornecidos pelo professor, assim como outras
tarefas extras. Porém, exige-se também do professor uma atenção personalizada ao aluno para
respeitar seu ritmo individual de aprendizado, seja corrigindo vários exercícios como
complementando com seus comentários (VAHLDICK; LOHN, 2008).
Para acompanhar os alunos na sua desenvoltura nas disciplinas de programação, hoje
se vêem necessários softwares para auxiliar professores no progresso individual do aluno, pois
segundo Branco e Schuvartz (2007), acadêmicos iniciantes, ao se depararem com a disciplina,
sentem-se incapazes de programar, devido ao conjunto de habilidades que a programação
exige como capacidade para solucionar problemas, raciocínio lógico, habilidade matemática,
capacidade de abstração, entre outras.
Os Sistemas Tutores Inteligentes (STI) podem ajudar os professores neste processo,
pois, segundo Moreira (2007), eles conseguem proporcionar o ensino individualizado criando
caminhos para o aprendizado de acordo com as necessidades do estudante. Este tipo de
sistema consegue automatizar a tarefa do professor ao corrigir as atividades dos alunos e
indicar o próximo passo que o aluno deve seguir. O aluno desenvolve o algoritmo, que pode
devolver a resposta desejada, mas a sua estrutura pode não ser a melhor para alcançar o
resultado. Por conseqüência, tal tipo de avaliação ainda precisa ser efetuada por pessoas
experientes.
Decorrente dos fatos acima expostos, e com intuito de melhorar o processo, foi
proposto em Lohn (2008) um ambiente web, onde o aluno pode desenvolver os exercícios,
acessando os enunciados no próprio ambiente, e o professor (ou monitor) acompanhar e
comentar a resolução neste mesmo ambiente. Além de editar os programas, ele também pode
compilar, executar e depurá-los, tanto como aluno quanto professor. Com esta possibilidade, o
professor avalia o programa e devolve o resultado da avaliação para o aluno, e este ciclo se
repete até o aluno alcançar o objetivo do exercício.
3
O ambiente foi disponibilizado como aplicação web, por facilitar a interação com o
usuário através de navegadores, dispensando a instalação do software e deixando mais
flexível o local onde o aluno desenvolverá os exercícios.
Na proposta aqui apresentada, serão usadas as mesmas idéias do trabalho de Lohn
(2008), com intuito de melhorá-la e estendê-la quanto a sua usabilidade e robustez, e para isso
será totalmente reescrito usando o framework1 Google Web Toolkit (GWT) (GOOGLE, 2009)
e a arquitetura Java Platform Debugger Architecture (JPDA) (SUN MICROSYSTEMS,
2004a) para depuração.
GWT é um framework Asynchronous Javascript And XML (AJAX), com o objetivo de
facilitar o desenvolvimento de telas web em JavaScript, pois através de código Java o
compilador do GWT traduz para JavaScript (GOOGLE, 2009). Além desta facilidade, as telas
têm um design arrojado e elegante. A interface atual do ambiente não é motivante para os
alunos. Além disso, faltam alguns recursos básicos para um ambiente de programação, como
número de linhas, auto complemento de código e syntax highlighting.
JPDA é uma arquitetura de depuração multi-camadas que permite aos desenvolvedores
de ferramentas criarem facilmente aplicações de depuração, portáveis em várias plataformas e
implementações de máquina virtual (SUN MICROSYSTEMS, 2004a). A tecnologia de
depuração utilizada pelo trabalho de Lohn (2008) é bastante precária, resultando em falhas
neste processo por parte do usuário e limitações às informações apresentadas.
1.1 OBJETIVOS DO TRABALHO
O objetivo deste trabalho é desenvolver um ambiente web em GWT-Ext para que se
possa codificar, depurar e executar exercícios de programação cadastrados pelo professor, e
acompanhar os alunos individualmente.
Os objetivos específicos do trabalho são:
a) disponibilizar uma nova interface mais amigável usando o framework GWT-Ext;
b) utilizar outra tecnologia de depuração com a arquitetura JPDA;
c) fornecer recursos de edição como número de linhas, auto complemento de código
e syntax highlighting.
1
Segundo Uchôa e Melo (1999) framework é um (sub) sistema de software, de um domínio particular, que pode
ser ajustado para aplicações individuais.
4
1.2 RELEVÂNCIA DO TRABALHO
A construção de um ambiente web onde é possível executar e depurar programas
podem ser consideradas atividades complexas, pois é um ambiente distribuído, onde parte da
aplicação é executado no cliente e parte no servidor.
Para envolver o aluno no uso de uma ferramenta, ela deve ser agradável e ter o mínimo
de erros. Esta proposta visa melhorar o trabalho anterior para que ele possa definitivamente
começar a ser utilizado.
1.3 METODOLOGIA
O trabalho será desenvolvido observando as seguintes etapas:
a) levantamento bibliográfico: realizar levantamento bibliográfico sobre arquitetura
JPDA e o framework GWT-Ext, além do estudo do trabalho de Lohn (2008) e
outros correlatos;
b) elicitação dos requisitos: detalhar e reavaliar os requisitos, observando as
necessidades levantadas durante a revisão bibliográfica;
c) especificação do projeto: especificar modelo com análise orientada a objeto
utilizando a Unified Modeling Language (UML). Será utilizada a ferramenta
Enterprise Architect para a elaboração dos diagramas de casos de uso, de classe, de
sequência e atividade;
d) implementação das interfaces: implementar as interfaces usando o framework
GWT-Ext;
e) aprimoramento do depurador: reescrever algoritmo de depuração usando a
arquitetura JPDA;
f) testes: efetuar testes unitários no decorrer do desenvolvimento do mesmo. Para
isso, utilizar o framework de testes JUnit para testar os algoritmos. Realizar testes
manuais com cenários exemplos usando a interface;
g) validação: organizar algumas aulas com os professores da disciplina de
Programação de Computadores para que os alunos experimentem e avaliem o
ambiente quando às suas funcionalidades.
5
As etapas serão realizadas nos períodos relacionados no Quadro 1.
2010
jan. fev. mar. abr. maio jun.
etapas / quinzenas 1 2 1 2 1 2 1 2 1 2 1 2
levantamento bibliográfico
elicitação dos requisitos
especificação do projeto
implementação das interfaces
aprimoramento do depurador
testes
validação
Quadro 1 - Cronograma
6
2 REVISÃO BIBLIOGRÁFICA
Na seção 2.1 são apresentados aspectos sobre depuração de código Java. Na seção 2.2
é descrito o framework GWT-Ext e suas bibliotecas para auxiliar na etapa do
desenvolvimento e por fim, na seção 2.3, são apresentados três trabalhos correlatos ao tema
em questão.
2.1 JAVA PLATFORM DEBUGGER ARCHITECTURE (JPDA)
Segundo Sun Microsystems (2006), Java Debugger (JDB) é um depurador de códigos
fonte Java e sua execução é realizada através de linhas de comando. Para efetuar a depuração
é necessário que as classes Java do usuário já tenham sido compiladas e os arquivos bytecodes
gerados.
Seu principal recurso é a depuração de códigos fonte passo-a-passo. Com isso se torna
mais fácil a localização de erros de lógica de programação, pois ele informa a linha de
comando em execução e os valores das variáveis em uso. O JDB destaca-se em relação a
muitos outros depuradores por efetuar a depuração tanto de modo local como remotamente
(SUN MICROSYSTEMS, 2006).
Java Platform Debugger Architecture (JPDA) é uma arquitetura que consiste em duas
interfaces, um protocolo e dois softwares que trabalham juntos como front-end e back-end.
Tudo isso foi projetado para uso de depuradores em ambientes de desenvolvimento para
sistemas desktop (SUN MICROSYSTEMS, 2004b).
As interfaces e protocolo dividem-se em (SUN MICROSYSTEMS, 2004c):
a) Java Virtual Machine Tools Interface (JVMTI): é uma interface nativa
implementada pela máquina virtual, onde é possível obter alguns serviços como
informações, ações e notificações;
b) Java Debug Interface (JDI): o depurador front-end é implementado pela interface
JDI. Enquanto aplicações de depuradores poderiam usar diretamente o JDWP ou
JVMTI, esta interface facilita a integração de recursos de depuração em ambientes
de desenvolvimento;
c) Java Debug Wire Protocol (JDWP): define o formato das informações e
7
requisições de transferência entre o processo de depuração e o depurador frontend. A especificação deste protocolo permite que o processo de depuração e o
depurador front-end executem em implementações de Virtual Machine (VM)
separadas e/ou em plataformas separadas. Permite também que o depurador frontend possa ser escrito em outra linguagem além do Java.
2.2 GWT-EXT
GWT compila o código Java, criando arquivos JavaScript que podem ser colocados em
qualquer servidor web. Além disso, as aplicações GWT suportam os browsers Internet
Explorer, Firefox, Mozilla, Safari e Opera (GOOGLE, 2009).
EXT JS é uma empresa que distribui bibliotecas para criação de interfaces ricas em
JavaScript (EXT JS, 2009a). GWT-Ext é uma junção da EXT JS com o GWT. Com isso
GWT-Ext utiliza as bibliotecas da EXT JS para compilar o JavaScript que o GWT gera (EXT
JS, 2009b).
O Quadro 2 é um exemplo de código Java para criação da interface, conforme
mostrada na Figura 1.
public class LoginUI extends Window {
public LoginUI() {
setTitle("Login");
setModal(true);
setResizable(false);
setClosable(false);
setWidth(300);
FormPanel frm = new FormPanel();
frm.setBorder(false);
frm.setPaddings(10);
frm.add(new TextField("Usuário", "user"));
frm.add(new TextField("Senha", "pass"));
Toolbar toolbar = new Toolbar();
ToolbarButton btLogin = new ToolbarButton("Entrar");
ToolbarButton btReset = new ToolbarButton("Limpar");
toolbar.addButton(btLogin);
toolbar.addButton(btReset);
setBottomToolbar(toolbar);
add(frm);
}
}
Quadro 2 – Exemplo de código usando GWT-Ext
8
Figura 1- Tela gerado pelo GWT-Ext
2.3 TRABALHOS CORRELATOS
Existem alguns sistemas semelhantes ao trabalho proposto. Dentre eles foram
escolhidos três cujas características enquadram-se nos principais objetivos deste trabalho.
Foram selecionados os seguintes projetos: “Ambiente na Web para Execução e Depuração de
Programas com Sintaxe Java” (LOHN, 2008), “Ferramenta Computacional de Apoio ao
Processo de Ensino-Aprendizagem dos Fundamentos de Programação de Computadores”
(BRANCO; SCHUVARTZ, 2007) e “Desenvolvimento de um Aplicativo Educacional para o
Estudo de Teoria dos Grafos” (SILVEIRA; SILVA, 2007).
2.3.1
Ambiente na Web para Execução e Depuração de Programas com Sintaxe Java
O objetivo do projeto Ambiente na Web para Execução e Depuração de Programas
com Sintaxe Java é fazer com que os professores ou monitores tenham um acompanhamento
individualizado e personalizado de cada aluno na disciplina introdutória de programação. Para
isso, desenvolveu-se um ambiente web para codificação de algoritmos na linguagem Java.
Este ambiente oferece:
a) edição de código Java;
b) compilação, execução e depuração do código;
c) sistema para visualização de exercícios e comentários do professor ou monitor
9
sobre os mesmos.
A Figura 2 apresenta a tela de edição do ambiente, com o qual foi desenvolvido com
servlets e AJAX.
Fonte: Lohn (2008, p. 72).
Figura 2 - Ambiente de programação
2.3.2
Ferramenta Computacional de Apoio ao Processo de Ensino-Aprendizagem dos
Fundamentos de Programação de Computadores
A ferramenta de Branco e Schuvartz (2007) tem por objetivo servir de apoio ao
processo de ensino-aprendizagem dos fundamentos de programação de computadores,
utilizando-se de técnicas de Inteligência Artificial (IA), e é dividida em três módulos
descritos:
a) módulo domínio: possui o conteúdo relacionado aos fundamentos de programação
de computadores e é representado pelas entidades Conceitos, Passos, Situações,
Imagens, Exercícios e Alternativas presentes no modelo conceitual da base de
dados do Sistemas Tutores Inteligentes (STI);
10
b) módulo aluno: visa armazenar informações sobre os usuários, permitindo que eles
sejam identificados pelo sistema e recebam tratamento adequado de acordo com
seu nível de conhecimento. Este módulo está fortemente ligado ao Módulo
Domínio e, em conjunto com ele, serve de base para que o Módulo Tutor possa
determinar qual estratégia de ensino aplicar a cada estudante.
c) módulo tutor: aplica a estratégia de ensino mais adequada a cada usuário do STI.
Para tanto, esse módulo deve trabalhar em conjunto com os demais Módulos,
Aluno e Domínio, que retêm informações úteis sobre os usuários e sobre o
conteúdo que está sendo ensinado pelo sistema respectivamente.
Utiliza-se de uma interface (Figura 3) para que o aluno possa acessar os conceitos e
exemplos, corrigindo exercícios e problemas, verificando o nível de conhecimento de cada
estudante e direcionando-o pelos conteúdos durante o processo de ensino-aprendizagem de
acordo com seu desempenho.
Fonte: Branco e Schuvartz (2007).
Figura 3 – Ambiente da ferramenta
11
2.3.3
Desenvolvimento de um Aplicativo Educacional para o Estudo de Teoria dos Grafos
A ferramenta de Silveira e Silva (2007) tem a finalidade de facilitar os processos de
criação, manipulação e análise de grafos, contando com alguns algoritmos fundamentais
propostos pela teoria de grafos. O aplicativo oferece ao usuário uma interface de alta
usabilidade para a manipulação e análise de grafos.
Na tela principal (Figura 4) o usuário cria grafos, adicionando e removendo vértices e
arestas. Junto a isso existe um quadro de informações onde são exibidas mensagens
explicativas que abordam apenas conceitos relacionados às operações na tela. Ainda possui
um módulo de análise de software, onde são exibidas para o usuário todas as características
do grafo criado, como a análise das matrizes de adjacência e incidência relacionadas ao grafo
criado e verificação de caminhos de menor custo, além das definições sobre a disciplina, que
são exibidas durante toda a execução do software, através de textos explicativos.
Fonte: Silveira e Silva (2007).
Figura 4 – Tela principal da ferramenta
12
3 REQUISITOS DO SISTEMA A SER DESENVOLVIDO
Os requisitos para o ambiente são:
a)
permitir que o programa seja carregado, editado e salvo (Requisitos Funcionais
(RF));
b)
fazer a execução do programa (RF);
c)
fazer a depuração do programa de modo passo-a-passo informando a linha e o
valor das variáveis em execução (RF);
d)
fazer a compilação do programa informando quando houver os erros de
compilação (RF);
e)
fazer um ambiente administrativo onde seja possível criar e corrigir os exercícios
(RF);
f)
permitir que os usuários cadastrem-se no ambiente (RF).
g)
permitir o auto-complemento de código (RF);
h)
fazer o syntax highlighting no código (RF);
i)
apresentar numeração de linhas (RF);
j)
utilizar a arquitetura JPDA para a depuração (Requisitos Não Funcionais (RNF));
k)
ser implementado utilizando o framework GWT-Ext (RNF);
l)
ser compatível com os principais navegadores comerciais (RNF).
13
4 CONSIDERAÇÕES FINAIS
A prática é fundamental no processo de aprendizagem de algoritmos, mas ela precisa
ser acompanhada em respeito à produtividade de cada aluno. O presente trabalho propõe-se
facilitar este processo de aprendizagem, utilizando um ambiente de programação web para
que o professor forneça exercícios e possa acompanhar cada aluno em sua resolução, dando
dicas, indicando o melhor caminho a ser seguido para alcançar a solução do problema do
melhor jeito.
Neste projeto será revisto o algoritmo de depuração, utilizando a arquitetura JPDA,
porque é de fácil implantação remota. Além disso, pode implementar qualquer VM, não sendo
unicamente a Java Virtual Machine (JVM), mas também outras que existem no mercado. A
interface será reestruturada, usando GWT-Ext, porque gera interfaces de alta qualidade
gráfica. A interface de edição de código terá suporte a números de linhas, auto-complemento
de código e syntax highlighting, para melhorar a usabilidade quando está trabalhando em
alguma implementação.
Quanto aos trabalhos correlatos, pode-se verificar que os mesmos possuem aplicações
iguais ou parecidas do que está sendo proposto. A Ferramenta Computacional de Apoio ao
Processo de Ensino-Aprendizagem dos Fundamentos de Programação de Computadores
utiliza-se de IA, fazendo que o próprio software direcione um caminho ao aluno, usando
resultados das capacidades cognitivas dele, sem precisar do auxílio direto do professor.
O Ambiente na Web para Execução e Depuração de Programas com Sintaxe Java é a
base fundamental deste projeto, pois é ele que deu o primeiro passo para concretizar este
ambiente. O presente projeto utilizará ou tomará como base as mesmas idéias e técnicas
usadas para a o editor de código, compilação e depuração, mas com o intuito de melhorar a
ferramenta.
14
REFERÊNCIAS BIBLIOGRÁFICAS
BRANCO, W. C.; SCHUVARTZ, A. A. Ferramenta computacional de apoio ao processo de
ensino-aprendizagem dos fundamentos de programação de computadores. In: SIMPÓSIO
BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO, 18., 2007, São Paulo. Anais… São
Paulo: Sociedade Brasileira de Computação, 2007. 1 CD-ROM.
EXT JS. Ext JS: cross-browser rich internet application framework. [S.l], 2009a. Disponível
em: < http://www.extjs.com/products/extjs>. Acesso em: 15 set.2009.
_____. Ext GWT: rich internet application framework for GWT. [S.l], 2009b. Disponível em:
<http://www.extjs.com/products/gxt>. Acesso em: 09 set.2009.
GOOGLE. Google web toolkit – product overview. [S.l.], 2009. Disponível em: <
http://code.google.com/webtoolkit/overview.html>. Acesso em: 08 set. 2009.
LOHN, S. Ambiente na web para execução e depuração de programas com sintaxe Java.
2008. 88 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.
MOREIRA, T. D. R. G. Sistemas tutores inteligentes. In: OLIVEIRA JR., H. A. (Coord.).
Inteligência Computacional: Aplicada à Administração, Economia e Engenharia em Matlab.
Thomson Learning. 2007. p. 265-280.
SILVEIRA, E. B. A.; SILVA, M. O. Desenvolvimento de um aplicativo educacional para o
estudo de teoria dos grafos. [S.l], UNICAP, 2007. Disponível em:
<http://www.lmendes.meuespaco.info/TCC/Semestre2007_2/Eduardo_Bruno_%20de_%20Ar
aujo_Silveira.pdf >. Acesso em: 09 set. 2009.
SUN MICROSYSTEMS. Java™ platform debugger architecture. [S.l.], 2004a. Disponível
em: < http://java.sun.com/j2se/1.5.0/docs/guide/jpda/architecture.html>. Acesso em: 09 set.
2009.
_____. Java™ platform debugger architecture. [S.l.], 2004b. Disponível em: <
http://java.sun.com/j2se/1.5.0/docs/guide/jpda/jpda.html#modularity>. Acesso em: 08 set.
2009.
_____. Java™ platform debugger architecture. [S.l.], 2004c. Disponível em: <
http://java.sun.com/j2se/1.5.0/docs/guide/jpda>. Acesso em: 08 set. 2009.
_____. JavaTM platform standard edition 6. [S.l.], 2006. Disponível em: <
http://java.sun.com/javase/6/docs/technotes/guides>. Acesso em: 08 set. 2009.
15
UCHÔA, E. M. A.; MELO, R. N. Integração de sistemas de bancos de dados heterogêneos
usando frameworks. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS, 14., 1999,
Florianópolis. Anais... Florianópolis: Sociedade Brasileira de Computação, 1999. Disponível
em < http://www.inf.ufsc.br/sbbd99/anais/SBBD-Completo/32.pdf >. Acesso em: 08 set.
2009.
VAHLDICK, A.; LOHN, S. Ambiente web para execução e acompanhamento de exercícios
de programação. In: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO, 19.,
2008, Fortaleza. Anais... Fortaleza: Sociedade Brasileira de Computação, 2008. 1 CD-ROM.
XAVIER, G. M. C. Estudo dos fatores que influenciam a aprendizagem introdutória de
programação. In: Simpósio Brasileiro de Informática na Educação, 15., 2004, Manaus.
Anais... Manaus: Sociedade Brasileira de Computação, 2004. 1 CD-ROM.
Download