E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Desenvolvendo uma Ferramenta de Auxílio à Aprendizagem de Algoritmos Acadêmica: Orientador: Andréia Cristina dos Santos Gusmão Prof. Artur Luís Ribas Barbosa E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Visão Geral E agora? como resolver esse problema? E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Visão Geral Ah, agora entendi o que é lógica! E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Visão Geral E com a lógica, posso escrever meus algoritmos... E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Como testar os algoritmos? E agora? Como saber se meu código está correto? Através do Teste de mesa? E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Exemplo de Teste de Mesa E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Como testar os algoritmos? Através de linguagem de programação? E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Exemplo Java E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Exemplo C E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Exemplo Delphi E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Objetivo Desenvolver uma ferramenta que interprete códigos em algoritmos. E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Metodologia Pesquisa Aplicada Linguagem Java Framework ANother Tool for Language Recognition (ANTLR) Ambiente gráfico ANTLRWorks E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Demonstração Ferramenta JPortugol e Resultados encontrados até o momento • E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Conceitos Envolvidos Compilador x Interpretador Um Compilador. Fonte: Aho et al (1995, p. 1) Estrutura utilizada: Analisador Léxico, Analisador Sintático e Analisador Semântico. E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Conclusão Ferramenta para auxiliar nos testes de algoritmos, como objetivo de contribuir para a motivação. Aprender algoritmos para desenvolver em uma linguagem de programação. E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Referências AHO, Alfred V.; SETHI, Ravi; ULLMAN, Jeffrey D. Compiladores: princípios, técnicas e ferramentas. Tradução Daniel de Ariosto Pinto. Rio de Janeiro: LTC, 1995. CRISTÓVÃO, Henrique Monteiro. Aprendizagem de Algoritmos num Contexto Significativo e Motivador: Um Relato de Experiência. In.: XVI Workshop de Educação em Computação, XXVIII Congresso da Sociedade Brasileira de Computação, Belém do Pará - Pará, 2008. p. 30-40. Disponível em: http://www.prodepa.gov.br/sbc2008/anais/pdf/arq0123.pdf . Acesso em: 07 abr. 2010. DELAMARO, Márcio Eduardo. Como Construir um Compilador: Utilizando Ferramentas Java. São Paulo: Novatec, 2004. MANZANO, José A. N. G.; OLIVEIRA, Jayr F. Estudo dirigido de Algoritmos. 11. ed. São Paulo: Érica, 2007. p.1-18. PARR, Terence. The Definitive ANTLR Reference: Building Domain-Specific Languages. EUA: Pragmatic Programmer, 2007. E INATEL - CIENTÍFICA INICIAÇÃO DE DO CIENTÍFICA INCIAÇÃO XXII ENCONTRO INICITEL 2010 TECNOLÓGICA DO INATEL - INCITEL 2010 Obrigada! “Existe a crença de que só se pode programar o que se compreende perfeitamente. Essa crença ignora a evidência de que a programação, como qualquer outra forma de escrita, é um processo experimental. Programamos como redigimos, não porque compreendemos, mas para chegar a compreender.” (Joseph Weizenbaum)