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.