Potigolcode

  • 355 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
355
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALLYSON BRUNO CAMPOS BARROS VILELA POTIGOLCODE: AMBIENTE DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM DE PROGRAMAÇÃO POTIGOL NATAL-RN 2012
  • 2. ALLYSON BRUNO CAMPOS BARROS VILELA POTIGOLCODE: AMBIENTE DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM DE PROGRAMAÇÃO POTIGOL Trabalho de Conclusão de Curso apresentado ao Curso Superior de Análise de Sistemas do Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte, em cumprimento às exigências legais como requisito parcial à obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Orientador: Leonardo Reis Lucena. Co-Orientador: Jailton Carlos Paiva. NATAL/RN 2012
  • 3. ! ALLYSON BRUNO CAMPOS BARROS VILELA POTIGOLCODE: AMBIENTE DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM DE PROGRAMAÇÃO POTIGOL Trabalho de Conclusão de Curso apresentado ao Curso Superior de Análise de Sistemas do Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte, em cumprimento às exigências legais como requisito parcial à obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Trabalho de Conclusão de Curso apresentado e aprovado em ___/___/____, pela seguinte Banca Examinadora: BANCA EXAMINADORA Prof. Msc. Leonardo Reis Lucena – Presidente Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Prof. Msc. Alexandre Gomes de Lima - Examinador Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Prof. Msc. Plácido Antonio de Souza Neto - Examinadora Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte
  • 4. ! AGRADECIMENTOS Agradeço primeiramente a Deus, por sempre ter me guiado, me abençoado e por ter iluminado minha mente durante os inúmeros desafios enfrentados ao longo do curso. À meus pais, Marcos e Conceição, por terem se esforçado para me proporcionar e me dar condições necessárias para os meus estudos, pelas orientações nos momentos importantes e por sempre terem me apoiado e confiado no meu potencial. À meus familiares por sempre estarem orando pela minha vida pessoal, profissional e espiritual e pelos momentos alegres e descontraídos com a família reunida. À minha noiva Railma Almeida e sua família, por estarem sempre ao meu lado e com muito amor e compreensão terem me apoiado e me auxiliado a enfrentar e superar todos os desafios que surgiram durante esta etapa tão importante na minha vida. Ao meu orientador Leonardo Lucena, pela confiança, paciência e pelos ensinamentos que tornaram possível o desenvolvimento deste trabalho e de inúmeros outros ao longo do curso. E ao meu co-orientador Jailton Paiva, pelo apoio, colaboração, atenção e ensinamentos durante os momentos finais deste trabalho. Aos membros da banca, por dedicarem o seu tempo a ler este trabalho e por contribuírem com seu conhecimento para a minha formação. A todos os meus professores do IFRN por compartilharem seus conhecimentos que foram muito importantes no desenvolvimento deste trabalho e para minha formação profissional. Aos professores e alunos do Laboratório de Inovação Tecnológica em Saúde – LAIS por terem compartilhado o seu conhecimento, por acreditarem em meu trabalho e terem me dado a oportunidade de fazer parte desta equipe. Aos meus amigos e companheiros do Grupo WebLovers: Sedir Morais, Elionai Moura, Daniele Montegro e Giancarlo Silva pela parceria, apoio, amizade e confiança durante esses anos de projetos. Aos meus amigos e meus colegas de curso, pelo incentivo e pelo apoio e por torcerem por mim. DESEJO SUCESSO A TODOS E QUE DEUS OS ABENÇOE ABUNDANTEMENTE!
  • 5. ! RESUMO Uma das disciplinas mais importantes para os cursos de tecnologia da informação é a disciplina introdutória à programação, pois é por meio dela que os alunos são capacitados para utilizar a lógica de programação na resolução de problemas. O presente trabalho tem por finalidade descrever o desenvolvimento de uma ferramenta de apoio ao ensino e aprendizado de programação permitindo o desenvolvimento dos algoritmos na linguagem Potigol, linguagem de programação multiparadigma e totalmente em português. Palavras-chave: Algoritmos. Ensino-aprendizagem. Ferramenta de apoio. Introdução à programação. Lógica de programação.
  • 6. ! ABSTRACT One of the most important disciplines for the information technology courses is the discipline Introductory Programming, because is through it that the students are trained to use the programming logic in the troubleshooting. The purpose of the present study is describes the developing of a teaching/learning support tool allowing the developing of algorithms in the potigol language, multi paradigm programming language and entirely in Portuguese. Keywords: Algorithm. Teaching/learning. Support tool. Introductory programming. Programming logic.
  • 7. ! LISTA DE ILUSTRAÇÕES Figura 1- Exemplo de código escrito em Potigol 20 Figura 2- Estrutura da linguagem Potigol 21 Figura 3- A arquitetura geral do Play Framework 23 Figura 4- A arquitetura MVC no Play Framework 25 Figura 5- Exemplo de erro de compilação no Play Framework 2.0 25 Figura 6- Console do Play Framework 26 Figura 7- Exemplo de um script de evolução do banco de dados gerado pelo Play Framework 2.0 27 Figura 8- Diagrama da arquitetura proposta do sistema 30 Quadro 1- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Professor 30 Quadro 2- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Aluno 30 Quadro 3- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Sistema 31 Quadro 4- Lista de Requisitos Não Funcionais do PotigolCode referentes ao ator Sistema 31 Figura 9- Diagrama dos casos de uso referentes ao ator Professor 33 Figura 10- Diagrama dos casos de uso referentes ao ator Aluno 34 Figura 11- Diagrama dos casos de uso referentes ao ator Sistema 34 Figura 12- Telas referentes ao caso de uso Gerenciar Cursos 35 Figura 13- Telas referentes ao caso de uso Gerenciar Exercícios 36 Figura 14- Telas referentes ao caso de uso Gerenciar Download 37 Figura 15- Telas referentes ao caso de uso Gerenciar Glossários 38 Figura 16- Telas referentes ao caso de uso Gerenciar Alunos 39 Figura 17- Telas referentes ao caso de uso Gerenciar Professores 40 Figura 18- Telas referentes ao caso de uso Registrar-se 41 Figura 19- Telas referentes ao caso de uso Visualizar Cursos 42 Figura 20- Telas referentes ao caso de uso Visualizar Exercícios 43 Figura 21- Tela referente ao caso de uso Resolver Exercícios 44 Figura 22- Telas referentes ao caso de uso Enviar Dúvida sobre um Exercício 45
  • 8. ! Figura 23- Tela referente ao caso de uso Enviar Dúvida sobre um Exercício 46 Figura 24- Tela referente ao caso de uso Visualizar Downloads 47 Figura 25- Telas referentes ao caso de uso Visualizar Glossário 48 Figura 26- Visão geral do funcionamento do caso de uso Avaliar Resposta 49 Figura 27- Exemplo de feedback apresentado ao aluno após a avaliação da resposta 50 Figura 28- Organização do pacote Controllers que contêm todos os controladores da aplicação 50 Figura 29- Organização do pacote models que contêm todos as entidades da aplicação 51 Figura 30- Organização do pacote helpers que contêm as classes utilitárias da aplicação 52
  • 9. ! LISTA DE E SIGLAS API Application Programming Interface AVA Ambiente Virtual de Aprendizagem BIP Basic Instruction-set Processor DSL Domain-Specific Language HTML5 Hypertext Markup Language, versão 5 HTTP Hypertext Transfer Protocol IFRN Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte MVC Model, View, Controller Play Play Framework SBT Simple Build Tool SGDB Sistema de Gerenciamento de Banco de Dados SQL Structured Query Language TI Tecnologia da Informação
  • 10. ! ! SUMÁRIO 1 INTRODUÇÃO 12 1.1 OBJETIVOS 13 1.1.1 Objetivo geral 13 1.1.2 Objetivos específicos 13 1.2 METODOLOGIA 14 1.3 ESTRUTURA DO TRABALHO 14 2 FUNDAMENTAÇÃO TEÓRICA 15 2.1 ESTADO DA ARTE 15 2.2 PROCESSO ENSINO-APRENDIZAGEM DE PROGRAMAÇÃO 16 2.2.1 Problemas de aprendizagem de algoritmos 16 2.2.2 Ferramentas de apoio ao aprendizado de algoritmos 17 2.3 A LINGUAGEM POTIGOL 18 2.3.1 Processo de compilação 19 2.4 PLAY FRAMEWORK 20 2.4.1 Arquitetura do play framework 21 2.4.1.1 MVC (Model, View, Controller) 22 2.4.1.2 Programação assíncrona e agendamento de tarefas 23 2.4.1.3 Foco na segurança de tipos 24 2.4.1.4 Poderoso sistema de construção 25 2.4.1.5 Evoluções dos Bancos de Dados 25 3 POTIGOLCODE: AMBIENTE DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM DE PROGRAMAÇÃO POTIGOL 27 3.1 ARQUITETURA DO SISTEMA 27 3.2 REQUISITOS 28 3.2.1 Requisitos funcionais 29 3.2.2 Requisitos não-funcionais 30 3.3 CASOS DE USO 31 3.3.1 Casos de uso do ator professor 33 3.3.1.1 Gerenciar cursos 34 3.3.1.2 Gerenciar exercícios 34
  • 11. ! ! 3.3.1.3 Gerenciar downloads 35 3.3.1.4 Gerenciar glossários 36 3.3.1.5 Gerenciar alunos 37 3.3.1.6 Gerenciar professores 38 3.3.2 Casos de uso do ator aluno 39 3.3.2.1 Registrar-se 39 3.3.2.2 Visualizar cursos 40 3.3.2.3 Visualizar exercícios 41 3.3.2.4 Resolver exercícios 42 3.3.2.5 Enviar dúvida sobre um exercício 43 3.3.2.6 Acompanhar ranking dos alunos 44 3.3.2.7 Visualizar downloads 45 3.3.2.8 Consultar glossários 46 3.3.3 Casos de uso do ator sistema 47 3.3.3.1 Avaliar resposta submetida pelo aluno 47 3.3.3.2 Pontuar aluno 49 3.4 DIAGRAMA DE CLASSES 49 4 CONSIDERAÇÕES FINAIS 54 4.1 TRABALHOS FUTUROS 54 REFERÊNCIAS 56
  • 12. ! ! 12! 1 INTRODUÇÃO Uma das disciplinas mais importantes para os cursos de Tecnologia da Informação (TI) é a Introdução à Programação. É por meio dela que os alunos desenvolvem a lógica de programação e a habilidade de análise e resolução de problemas. Estas habilidades são necessárias em outras disciplinas mais avançadas do curso. Para a maioria dos alunos que acabaram de ingressar nos cursos de TI, o processo de aprendizado de algoritmos é difícil e exigente já que muitos deles ingressaram no curso sem nenhum conhecimento prévio sobre programação. Segundo Borges (2000 apud MOREIRA; FAVERO, 2008), muitos dos alunos que concluíram a disciplina não possuem um conhecimento adequado e muitos dos alunos acabam abandonando o curso nos semestres iniciais. As dificuldades encontradas pelos alunos durante o processo de aprendizagem de algoritmos são causadas, geralmente, devido a ausência ou ineficácia de estratégias de resolução lógica dos problemas propostos pelos professores durante o curso, o grande número de alunos por turma, falta de motivação, insegurança e baixa autoestima e a demora na correção e feedback dos exercícios. Com a finalidade de reduzir os problemas no processo de ensino-aprendizagem de algoritmos são utilizadas ferramentas de apoio que auxiliem professores e alunos durante a disciplina. Essas ferramentas são chamadas de Ambientes Virtuais de Aprendizagem (AVAs) e são utilizadas, geralmente, em cursos ministrados à distância. Os AVAs permitem que os alunos tenham acesso ao ambiente de qualquer lugar, sem a necessidade de instalação de aplicativos e de um computador com muitos recursos para exercitarem seus conhecimentos. Nestas ferramentas, os professores são capazes de gerenciar cursos, exercícios, atividades avaliativas, fóruns de discussão e outros recursos, facilitando a administração da turma. Existem diversas ferramentas que auxiliam os alunos no aprendizado de algoritmos e lógica de programação utilizando linguagens de programação populares como Java, Ruby e Python, como exemplo temos o CodingBat, CodeCademy e TryRuby.com. Outras utilizam fluxogramas ou pseudocódigos, como o Portugol, para geração da resolução dos problemas. Neste trabalho é proposta a criação de um ambiente de apoio ao aprendizado de algoritmos utilizando o Potigol, uma Linguagem de Domínio Específico (DSL)
  • 13. ! ! 13! multiplataforma, multiparadigma e de sintaxe fácil e intuitiva que utiliza recursos dos paradigmas de programação estruturados, orientado a objetos e funcional (DANTAS; MORAIS, 2011). A linguagem foi desenvolvida por alunos do IFRN com o propósito de facilitar o aprendizado de algoritmos e técnicas de programação através de códigos escritos totalmente em português. Esta ferramenta, chamada de PotigolCode, tem o objetivo de apoiar os alunos no aprendizado de programação através de desafios práticos propostos pelos professores. Para minimizar os problemas relacionados às dificuldades e demora na avaliação dos exercícios, o PotigolCode utiliza recursos de avaliação e geração de feedback através de testes automatizados. A ferramenta conta com recursos de gerenciamento de cursos, exercícios, downloads, glossários e usuários permitindo uma melhor administração dos alunos e dos conteúdos da turma. 1.1 OBJETIVOS O objetivo principal deste trabalho é desenvolver uma ferramenta de apoio para o ensino e aprendizado de algoritmos, através da linguagem de programação Potigol, nas disciplinas de Introdução à programação, programação orientada à objetos e paradigmas de linguagem de programação do curso de Análise e Desenvolvimento de Sistemas do IFRN. 1.1.1 Objetivos específicos Os objetivos específicos do presente trabalho consistem em: a) estudar as tecnologias necessárias para a implementação e implantação do sistema; b) elicitar os requisitos do sistema que será desenvolvido; c) modelar o Sistema; d) realizar implementação da aplicação; e) testar e validar o sistema desenvolvido;
  • 14. ! ! 14! f) documentar o desenvolvimento. 1.2 METODOLOGIA A metodologia adotada por este trabalho consiste das fases teórica e experimental. A primeira baseia-se em pesquisar e adquirir o conhecimento necessário para a realização do objetivo deste trabalho. Nesta fase, é formada toda a base de conhecimento necessária para o desenvolvimento da ferramenta proposta. A fase experimental consiste em descrever os requisitos, modelar e desenvolver o sistema PotigolCode. 1.3 ESTRUTURA DO TRABALHO O restante do trabalho encontra-se divido da seguinte forma: A Seção 2 descreve os principais temas relacionados ao trabalho desenvolvido. Inicia com uma revisão bibliográfica dos trabalhos correlatos apresentados dentro da área de pesquisa deste trabalho. Em seguida é feita uma abordagem sobre o processo ensino-aprendizagem de programação, os problemas de aprendizagem de algoritmos, ferramentas de apoio ao aprendizado de algoritmos, a linguagem potigol e o play framework. A seção 3 traz a especificação e implementação da ferramenta. É feita, descrevendo a arquitetura do sistema, os requisitos funcionais e não funcionais, os diagramas de casos de uso e os diagramas de classes. A Seção 4 apresenta as conclusões e os possíveis trabalhos futuros relacionados ao tema abordado neste trabalho.
  • 15. ! ! 15! 2 FUNDAMENTAÇÃO TEÓRICA Nesta seção são apresentados alguns aspectos teóricos relacionados ao trabalho, tais como: processo de ensino-aprendizagem de programação, problemas de aprendizagem de algoritmos, ferramentas de apoio ao aprendizado de algoritmos, a linguagem de programação Potigol e o Play Framework. Na seção estado da arte são apresentados alguns trabalhos correlatos. 2.1 ESTADO DA ARTE Moreira e Favero (2008) propuseram a criação de um ambiente de aprendizado virtual para o ensino e aprendizado de algoritmos integrado ao Moodle, sistema de gerenciamento de cursos para aprendizagem online. No ambiente foi utilizado o modelo de regressão linear múltipla e métricas de engenharia de software para avaliação automática, pontuação e para a geração dos feedbacks dos algoritmos submetidos. Rebelo e seus colegas (2005) propuseram a criação de um modelo de ferramentas colaborativas voltadas para o ensino e aprendizado de algoritmos, que permitam a realização de atividades práticas e problemas do contexto real dos alunos. Estas ferramentas permitem o planejamento, construção e simulação de algoritmos utilizando a colaboração entre os alunos, por meio de grupos de discussão e argumentação, mesmo fora de sala de aula. Manso (2010) propôs o PortugolIDE, ambiente de ensino e aprendizado de algoritmos que utiliza os recursos da linguagem de programação Portugol e de fluxogramas para geração dos algoritmos. O ambiente permite que os alunos construam, executem e chequem o funcionamento dos algoritmos. Vieira (2010) propôs o Bipide, ambiente de desenvolvimento integrado voltado para o desenvolvimento, conversão e simulação de programas voltados para a família de processadores BIP através da linguagem de programação Portugol com o objetivo de facilitar o ensino e aprendizado da disciplina de arquitetura e organização de computadores. O ambiente é composto por um editor de texto, um compilador que
  • 16. ! ! 16! converte o código para a linguagem de montagem dos processadores BIP e um simulador dos processadores BIP. Hontins (2000) propôs o desenvolvimento e a utilização de um ambiente de auxílio na construção de lógica de programação através de pseudolinguagem nas disciplinas iniciais dos cursos de TI que permitisse que os alunos pudessem acessar de qualquer lugar e construir e executar o passo a passo de seus algoritmos ilustrando as variáveis utilizadas e mostrar mensagens de feedback quanto à execução dos códigos. 2.2 PROCESSO ENSINO-APRENDIZAGEM DE PROGRAMAÇÃO Segundo Moreira e Favero (2008), as disciplinas introdutórias de programação são essenciais para os estudantes de TI, principalmente para os cursos que envolvem o desenvolvimento de software, pois é por meio delas que os alunos são capacitados para utilizar a lógica de programação na resolução de problemas. Diversas disciplinas mais avançadas necessitam que os alunos possuam esse conhecimento prévio para obterem êxito. O processo de aprendizado de programação é difícil e exigente para a maioria dos alunos, pois estes, geralmente, ingressaram no curso sem conhecimento prévio sobre o assunto. Borges (2000 apud MOREIRA; FAVERO, 2008) afirma que o número de alunos que concluem essas disciplinas sem ter um conhecimento mínimo adequado em programação é alto, ou ainda, muitos abandonam o curso nos primeiros semestre devido às dificuldades. Gomes e Mendes (2000 apud PIMENTEL et al, 2003) afirmam que, os principais erros apresentados pelos alunos são: erros de sintaxe e semântica, dificuldades na compreensão do enunciado dos problemas e concepção dos algoritmos e a incapacidade de detectar erros de lógica de programação. 2.2.1 Problemas de aprendizagem de algoritmos Segundo Raabe e Silva (2005), a maioria dos problemas relacionados à dificuldade na aprendizagem de algoritmos se dá devido à ausência ou ineficácia de
  • 17. ! ! 17! estratégias de resolução lógica por parte dos alunos. Petry e Rosatelli (2006) citam que um dos principais problemas do modo tradicional do processo de ensino e aprendizagem de algoritmos é a dificuldade para motivar os alunos e os manter interessados pela disciplina já que a esta é essencial para outras disciplinas do curso. Raabe e Silva (2005) ao pesquisar os problemas relacionados ao processo ensino aprendizagem de algoritmos durante nove semestres identificaram três grupos de problemas distintos: problemas de natureza didática, cognitiva e afetiva. Dentre os problemas citados em sua pesquisa é possível destacar que os problemas mais comuns são: a) grande número de alunos: Geralmente as turmas iniciais dos cursos de TI contam com cerca de 50 alunos. Esse alto número de alunos dificulta a avaliação individual e acaba reduzindo a quantidade de avaliações realizadas no semestre. b) outro problema relacionado ao grande número de alunos é a dificuldade encontrada pelos professores na avaliação e feedback de todos os exercícios dos alunos em um curto prazo (MOREIRA; FAVERO, 2008). c) diferença de experiência e ritmo de aprendizagem entre os alunos: Alguns alunos possuem conhecimento ou alguma experiência em programação enquanto boa parte dos alunos não possui nenhuma experiência prévia. d) alunos sem perfil para solução de problemas: Muitos alunos apresentam problemas em solucionar os algoritmos propostos, pois não conseguiram desenvolver, previamente, as estratégias necessárias para compreensão e solução dos problemas. e) outros problemas de ordem pessoal e/ou emocional, tais como baixa autoestima, pouca motivação, insegurança, aversão ao conteúdo ou ao professor, impedem que os alunos se concentrem e desenvolva seu raciocínio lógico. 2.2.2 Ferramentas de apoio ao aprendizado de algoritmos Atualmente, várias ferramentas são amplamente utilizadas para apoiar o ensino e aprendizado nos cursos ministrados à distância. Essas ferramentas chamadas de
  • 18. ! ! 18! Ambientes Virtuais de Aprendizagem (AVAs), são importantes, pois permitem que os alunos tenham acesso ao ambiente de qualquer lugar, sem a necessidade de instalação de aplicativos e de um computador com muitos recursos para exercitarem seus conhecimentos. Os ambientes virtuais servem de mediador das atividades propostas pelo professor, auxiliando no gerenciamento dos cursos, atividades e fóruns de discussão e outros recursos (MOREIRA; FAVERO, 2008). No contexto do ensino e aprendizado de algoritmos, estes ambientes possibilitam aos professores uma melhor gestão dos alunos e dos exercícios além de permitir que os alunos interajam com a disciplina fora da sala de aula através da resolução dos exercícios propostos, envio de dúvidas e sugestões. Segundo Kjollerstrom e Martensson (1999 apud MOREIRA; FAVERO, 2008), os principais benefícios do uso das ferramentas de apoio para os professores são: a) melhoria na qualidade do ensino; b) melhor administração dos alunos e exercícios; c) melhor acompanhamento dos alunos, individualmente; d) redução do tempo de correção dos algoritmos através de mecanismos de avaliação automática. 2.3 A LINGUAGEM POTIGOL O Potigol é uma Linguagem de Domínio Específico (DSL) multiplataforma, multiparadigma e de sintaxe fácil e intuitiva, voltada para o ensino e aprendizado (DANTAS; MORAIS, 2011). A linguagem utiliza recursos dos paradigmas estruturados, orientado a objetos e funcional presentes em outras linguagens como Java, Scala, Python e Ruby. Segundo Dantas e Morais (2011), a linguagem de programação Potigol foi desenvolvida com o propósito de facilitar o aprendizado de Algoritmos e Técnicas de Programação, pois facilita a escrita de código através do uso da língua portuguesa já que todas as palavras-chaves da linguagem são em português.
  • 19. ! ! 19! Figura 1- Exemplo de código escrito em Potigol Fonte: Elaborado pelo autor (2012) 2.3.1 Processo de compilação As linguagens de programação geralmente são estruturadas em quatro partes que funcionam de forma sequencial que compõe o processo de compilação do código: Análise léxica, análise sintática, interpretação e execução. Cada uma dessas partes é responsável por gerar uma saída, a partir de uma entrada de dados, para o seu sucessor, até que o processo seja finalizado na execução do código.
  • 20. ! ! 20! Figura 2- Estrutura da linguagem Potigol Fonte: Dantas e Morais (2012) O analisador léxico é responsável pela análise de todo o código fonte a fim de produzir os símbolos, também conhecidos como tokens, que serão manipulados pela próxima etapa. É na análise léxica que são eliminados todos os espaços em branco e comentários do código fonte. Dantas e Morais (2011) definem a análise léxica como sendo uma forma de verificar se as palavras existem ou não no alfabeto especificado na linguagem. O analisador sintático é responsável pela análise da sequência de entrada para determinar sua estrutura gramatical de acordo com a gramática da linguagem e por gerar a árvore de nós, conhecida como Abstract Syntax Tree. O interpretador é responsável pela avaliação do código a partir da árvore de nós e executar cada nó. 2.4 PLAY FRAMEWORK O Play é um framework multiplataforma, livre e de código aberto, para desenvolvimento ágil de aplicações web. Desenvolvido por Guillaume Bort em 2007, teve sua primeira versão oficial lançada em outubro de 2009. Originalmente foi escrito em Java e inspirado em outros frameworks para o desenvolvimento ágil como o Ruby on Rails e Django. O Play foi criado com o intuito de fazer com que o desenvolvimento
  • 21. ! ! 21! de aplicações web com Java ou Scala se torne uma tarefa fácil, divertida e produtiva, mesmo para os programadores iniciantes no framework. Atualmente o Play Framework se encontra na versão 2.0.4 e a partir da versão 2.0 foi totalmente reescrito na linguagem de programação Scala tornando o framework mais rápido, produtivo e robusto. O Play permite que os desenvolvedores utilizem a API em Java ou Scala para construírem suas aplicações, sendo o mais aconselhável para os iniciantes no framework o uso da linguagem Java devido a o sucesso e a comunidade da linguagem porém se você quiser tornar o desenvolvimento ainda mais rápido e produtivo é recomendado utilizar a linguagem Scala devido ao seu código conciso, escalabilidade e o suporte à programação funcional (LEROUX et al, 2012). 2.4.1 Arquitetura do play framework Segundo Leroux et al (2012), algumas caraterísticas e qualidades tornam o Play Framework produtivo e divertido de usar: a) Sistema de configuração e declaração das URLs da aplicação baseados no protocolo HTTP. b) Sintaxe de template poderosa e fácil de utilizar e aprender. c) Integração com os ambientes integrados de desenvolvimento e editores de textos: Eclipse, NetBeans, IntelliJ, TextMate e SublimeText. d) Possui um servidor web leve e rápido integrado nativamente em sua arquitetura. e) Não necessidade de recarregar o servidor da aplicação à cada alteração no código. f) Recursos de segurança, persistência, validação e internacionalização já implementados na estrutura do framework. g) Arquitetura projetada para utilizar os recursos do HTML5 como WebSockets e validações. h) Boa documentação e número expressivo de participantes da comunidade de desenvolvimento.
  • 22. ! ! 22! Figura 3- A arquitetura geral do Play Framework Fonte: Leroux et al (2012) 2.4.1.1 MVC (Model, View, Controller) O Play é baseado na arquitetura MVC, considerada o padrão de arquitetura de aplicações web. O padrão MVC separa as camadas de Controle, Modelo e Visualização, permitindo uma maior flexibilidade e organização do código fonte, escalabilidade da aplicação, independência das camadas. O funcionamento da arquitetura MVC no Play se dá conforme a Figura 4:
  • 23. ! ! 23! Figura 4- A arquitetura MVC no Play Framework Fonte: Play Framework (2012) De acordo com a Figura 4, todas as requisições feitas pelos usuários são enviadas para o Controlador através das Rotas, que mapeiam qual controlador é responsável pela requisição. O Controlador é responsável pela manipulação e validação dos dados através dos Modelos e por repassar esses dados para a camada de Visualização que é responsável pela exibição dos dados. 2.4.1.2 Programação assíncrona e agendamento de tarefas O Play foi projetado e desenvolvido para utilizar os recursos de programação assíncrona. Com ele é possível utilizar conexões HTTP persistentes de longa duração
  • 24. ! ! 24! através de tecnologias como Comet, Long Polling e WebSockets, que permitem a troca simultânea de dados em tempo real. No Play é possível fazer o agendamento e execução de tarefas de longa duração sem a intervenção direta do usuário, como por exemplo o envio massivo de e-mails durante um determinado horário do dia ou atualizar sempre que a aplicação é iniciada ou parada. 2.4.1.3 Foco na segurança de tipos Uma das vantagens do uso de uma linguagem de programação estaticamente (fortemente) tipada, como Java, no desenvolvimento de aplicações web com o Play 2.0 é que o compilador do framework verifica as partes do código e consegue facilmente identificar a existência de erros de sintaxe tanto nos Controladores, Rotas e Modelos quanto na camada de Visualização. A Figura 5 mostra um exemplo de erro de compilação de um arquivo de Controlador da aplicação. Os erros de compilação são mostrados no navegador e são destacados com as letras vermelhas. Figura 5- Exemplo de erro de compilação no Play Framework 2.0 Fonte: Leroux et al (2012)
  • 25. ! ! 25! 2.4.1.4 Poderoso sistema de construção Os desenvolvedores que utilizam o Play para o desenvolvimento de aplicações web empresariais escaláveis necessitam de um mecanismo moderno e flexível para a construção de aplicações em Java e Scala. Por esse motivo o Play Framework 2.0 é integrado com os recursos do SBT (Simple Build Tool), sistema de construção de aplicações em Java e Scala que permite uma maior facilidade na criação, execução, compilação, construção, distribuição e gerenciamento de dependências da aplicação. Figura 6- Console do Play Framework Fonte: Elaborado pelo autor (2012) 2.4.1.5 Evoluções dos Bancos de Dados As aplicações web geralmente necessitam de banco de dados relacional com muitas tabelas e é preciso que os desenvolvedores criem documentações sobre a modelagem de uma das tabelas, principalmente quando muitos desenvolvedores são responsáveis pelo desenvolvimento e manutenção da aplicação ou quando é necessário fazer alguma alteração no banco de dados. O Play Framework 2.0 utiliza os scripts de evoluções para manter documentadas todas as mudanças que ocorreram no banco de dados. Estes arquivos de evoluções são arquivos escritos em SQL e são gerados automaticamente pelo Play a cada vez que os
  • 26. ! ! 26! modelos são alterados. Cada script de evolução é composto de duas partes: Uma parte de atualização da estrutura do banco de dados, e a outra parte com a regressão da estrutura do banco de dados. Figura 7- Exemplo de um script de evolução do banco de dados gerado pelo Play Framework 2.0 Fonte: Play Framework (2012)
  • 27. ! ! 27! 3 POTIGOLCODE: AMBIENTE DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM DE PROGRAMAÇÃO POTIGOL O PotigolCode é um ambiente web desenvolvido para auxiliar os professores no ensino de disciplinas como Introdução à Programação, Orientação a Objetos e Paradigmas de Linguagens de Programação. O ambiente foi desenvolvido utilizando as linguagens de programação Java e Scala através do Play Framework 2.0 e o banco de dados relacional MySQL. O sistema permite que os professores cadastrem os cursos e exercícios propostos, arquivos e ferramentas de auxílio ao desenvolvimento utilizando a linguagem de programação Potigol e o glossário da linguagem Potigol. Também permite que os alunos sejam capazes de resolver esses exercícios, recebam feedback automático da resposta submetida e ganhem uma pontuação, caso a resposta submetida esteja correta. Para a geração dos feedbacks automáticos são utilizados casos de testes unitários definidos previamente pelo professor no cadastro do exercício. Os códigos submetidos pelos alunos são submetidos a estes casos de testes e caso os testes sejam satisfeitos o aluno receberá a pontuação total, definida pelo professor, ou parte dela, caso o aluno tenha visualizado a solução do exercício. 3.1 ARQUITETURA DO SISTEMA O PotigolCode é um sistema web baseado na arquitetura MVC e utiliza o Play Framework 2.0. A Figura 8 ilustra a arquitetura utilizada no PotigolCode.
  • 28. ! ! 28! Figura 8- Diagrama da arquitetura proposta do sistema Fonte: Elaborado pelo autor (2012) O sistema utiliza uma infraestrutura privada de computação na nuvem com sistema operacional Linux que conta com alta disponibilidade, escalabilidade horizontal e vertical e alta capacidade de armazenamento e processamento. Esses recursos são essenciais para garantir que alunos e professores possam acessar o sistema de qualquer lugar do mundo e que o sistema execute os testes automatizados dos algoritmos rapidamente. Como sistema gerenciador de banco de dados (SGDB) foi utilizado o MySQL por ser livre, de código aberto e multiplataforma. No servidor foi utilizada a versão inicial e de testes da linguagem Potigol que é responsável pela execução dos algoritmos submetidos ao sistema. 3.2 REQUISITOS Os requisitos do PotigolCode foram inspirados em aplicações web voltadas para o ensino das linguagens de programação Java, Python e Ruby como CodingBat.com, CodeCademy.com e TryRuby.org e nas necessidades apresentadas pelo professor Leonardo Lucena, orientador deste trabalho e da linguagem de programação Potigol.
  • 29. ! ! 29! 3.2.1 Requisitos funcionais Os requisitos funcionais representam as principais funcionalidades que o sistema deve ser capaz de realizar. Eles são representados pelas tabelas 5, 6 e 7. Quadro 1- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Professor Código Ator Nome Descrição F01 Professor Gerenciar Cursos Permite que o professor gerencie os cursos. F02 Professor Gerenciar Exercícios Permite que o professor gerencie os exercícios pertencentes aos cursos. F03 Professor Gerenciar Downloads Permite que o professor gerencie os downloads. F04 Professor Gerenciar Glossários Permite que o professor gerencie os glossários da linguagem Potigol. F05 Professor Gerenciar Alunos Permite que o professor gerencie os alunos cadastrados no sistema. F06 Professor Gerenciar Alunos Permite que o professor gerencie os alunos cadastrados no sistema. Fonte: Elaborado pelo autor (2012) Quadro 2- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Aluno Código Ator Nome Descrição F08 Aluno Visualizar os Downloads Permite que os alunos visualizem os downloads cadastrados no sistema. F09 Aluno Realizar o Download do Arquivo Permite que os alunos façam o download dos arquivos cadastrados no sistema. F10 Aluno Consultar Permite que os alunos consultem os
  • 30. ! ! 30! Glossários glossários cadastrados no sistema. F11 Aluno Visualizar Cursos Permite que os alunos visualizem os cursos cadastrados no sistema. F12 Aluno Visualizar Exercícios Permite que os alunos visualizem os exercícios cadastrados no sistema. F13 Aluno Resolver Exercícios Permite que os alunos resolvam os exercícios cadastrados no sistema F14 Aluno Enviar Dúvida sobre o Exercício Permite que o aluno envie uma dúvida sobre o exercício para os professores cadastrados no sistema. F15 Aluno Acompanhar Ranking Permite que os alunos acompanhem o ranking dos alunos. Fonte: Elaborado pelo autor (2012) Quadro 3- Lista de Requisitos Funcionais do PotigolCode referentes ao ator Sistema Código Ator Nome Descrição F16 Sistema Avaliar a resposta submetida pelo aluno Responsável por submeter os casos de testes, definidos pelo professor, à resposta submetida pelo aluno. F17 Sistema Pontuar o aluno Responsável pelo cálculo da pontuação obtida pelo aluno. Fonte: Elaborado pelo autor (2012) 3.2.2 Requisitos não-funcionais Os requisitos não funcionais são relacionados às restrições do sistema quanto à disponibilidade, desempenho e segurança. Eles são representados pelas tabelas a seguir.
  • 31. ! ! 31! Quadro 4- Lista de Requisitos Não Funcionais do PotigolCode referentes ao ator Sistema Código Nome Descrição Categoria NF01 Autenticação dos Usuários Os usuários do sistema deverão ser autenticados através de diferentes níveis de acesso. Obrigatório NF02 Disponibilidade O sistema deve ser acessível de qualquer lugar e em qualquer hora através de um ambiente web. Obrigatório NF03 Desempenho O sistema deve possuir um bom desempenho para executar os testes automatizados. Desejável Fonte: Elaborado pelo autor (2012) 3.3 CASOS DE USO De acordo com as Figuras 9, 10 e 11, o PotigolCode possui dezessete casos de uso e três atores. O ator Professor interage com os casos de uso gerenciar cursos, gerenciar exercícios, gerenciar downloads, gerenciar glossários, gerenciar alunos e gerenciar professores. O ator Aluno interage com os casos de uso registrar-se, visualizar exercícios, resolver exercícios, visualizar downloads, fazer download dos arquivos, visualizar glossários e acompanhar o ranking dos alunos. O ator Sistema interage com o caso de uso avaliar resposta e pontuar resposta.
  • 32. ! ! 32! Figura 9- Diagrama dos casos de uso referentes ao ator Professor Fonte: Elaborado pelo autor (2012)
  • 33. ! ! 33! Figura 80- Diagrama dos casos de uso referentes ao ator Aluno Fonte: Elaborado pelo autor (2012) Figura 11- Diagrama dos casos de uso referentes ao ator Sistema Fonte: Elaborado pelo autor (2012) 3.3.1 Casos de uso do ator professor A seguir são apresentados os casos de uso executados pelo ator Professor e que compõem o módulo de gerenciamento do PotigolCode.
  • 34. ! ! 34! 3.3.1.1 Gerenciar cursos O caso de uso Gerenciar Cursos é responsável pelo cadastro, edição, exclusão e visualização dos cursos oferecidos no sistema. A Figura 12 representa as telas referentes ao caso de uso. Nela estão representadas a listagem, o formulário de cadastro e edição e a visualização dos cursos respectivamente. Figura 12- Telas referentes ao caso de uso Gerenciar Cursos Fonte: Elaborado pelo autor (2012) 3.3.1.2 Gerenciar exercícios O caso de uso Gerenciar Exercícios é responsável pelo cadastro, edição, exclusão e visualização dos exercícios pertencentes aos cursos oferecidos no sistema. A Figura 13 representa as telas referentes ao caso de uso. Nela estão representadas a listagem, o formulário de cadastro e edição e a visualização dos exercícios respectivamente.
  • 35. ! ! 35! Figura 13- Telas referentes ao caso de uso Gerenciar Exercícios Fonte: Elaborado pelo autor (2012) 3.3.1.3 Gerenciar downloads O caso de uso Gerenciar Downloads é responsável pelo cadastro, edição, exclusão e visualização dos downloads e de suas categorias de download. A Figura 14 representa as telas referentes ao caso de uso. Nela estão representadas a listagem, o formulário de cadastro e edição dos downloads e suas categorias respectivamente.
  • 36. ! ! 36! Figura 14- Telas referentes ao caso de uso Gerenciar Download Fonte: Elaborado pelo autor (2012) 3.3.1.4 Gerenciar glossários O caso de uso Gerenciar Glossários é responsável pelo cadastro, edição, exclusão e visualização dos glossários e seus capítulos da linguagem Potigol. A Figura 15 representa as telas referentes ao caso de uso. Nela estão representadas a listagem, o formulário de cadastro e edição e a visualização dos glossários e seus capítulos respectivamente.
  • 37. ! ! 37! Figura 15- Telas referentes ao caso de uso Gerenciar Glossários Fonte: Elaborado pelo autor (2012) 3.3.1.5 Gerenciar alunos O caso de uso Gerenciar Alunos é responsável pelo cadastro, edição e exclusão dos alunos cadastrados no sistema. A Figura 16 representa as telas referentes ao caso de uso. Nela estão representadas a listagem, o formulário de cadastro e edição e a visualização dos alunos respectivamente.
  • 38. ! ! 38! Figura 16- Telas referentes ao caso de uso Gerenciar Alunos Fonte: Elaborado pelo autor (2012) 3.3.1.6 Gerenciar professores O caso de uso Gerenciar Professores é responsável pelo cadastro, edição, exclusão e visualização dos professores cadastrados no sistema. A Figura 17 representa as telas referentes ao caso de uso. Nela está representado o formulário de cadastro e edição dos professores.
  • 39. ! ! 39! Figura 17- Telas referentes ao caso de uso Gerenciar Professores Fonte: Elaborado pelo autor (2012) 3.3.2 Casos de uso do ator aluno A seguir são apresentados os casos de uso executados pelo ator Aluno e que compõem o módulo de aprendizagem do PotigolCode. 3.3.2.1 Registrar-se O caso de uso Registrar-se é responsável pelo cadastro do aluno no sistema. A Figura 18 representa as telas referentes ao caso de uso. Nela estão representadas o formulário de cadastro, email de confirmação do cadastro e acesso ao sistema.
  • 40. ! ! 40! Figura 18- Telas referentes ao caso de uso Registrar-se Fonte: Elaborado pelo autor (2012) 3.3.2.2 Visualizar cursos O caso de uso Registrar-se é responsável pela listagem dos cursos e seus exercícios. A Figura 19 representa as telas referentes ao caso de uso. Nela está representada a listagem dos cursos.
  • 41. ! ! 41! Figura 19- Telas referentes ao caso de uso Visualizar Cursos Fonte: Elaborado pelo autor (2012) 3.3.2.3 Visualizar exercícios O caso de uso Registrar-se é responsável pela listagem dos cursos e seus exercícios. A Figura 20 representa as telas referentes ao caso de uso. Nela está representada a listagem dos exercícios. Figura 20- Telas referentes ao caso de uso Visualizar Exercícios Fonte: Elaborado pelo autor (2012)
  • 42. ! ! 42! 3.3.2.4 Resolver exercícios O caso de uso Resolver Exercícios é responsável por exibir a descrição do exercício e é por meio dele que o aluno submete sua resposta para os testes automatizados. A Figura 21 representa a tela referente ao caso de uso. Nela está representada a resolução de um exercício cadastrado no sistema. Figura 21- Tela referente ao caso de uso Resolver Exercícios Fonte: Elaborado pelo autor (2012) 3.3.2.5 Enviar dúvida sobre um exercício O caso de uso Enviar Dúvida sobre um Exercício permite que os alunos submetam dúvidas aos professores cadastrados no sistema. A Figura 22 representa as tela referente ao caso de uso. Nela está representado o formulário de envio da dúvida.
  • 43. ! ! 43! Figura 22- Tela referente ao caso de uso Enviar Dúvida sobre um Exercício Fonte: Elaborado pelo autor (2012) 3.3.2.6 Acompanhar ranking dos alunos O caso de uso Acompanhar Ranking dos Alunos permite que os alunos acompanhem a pontuação obtida dos alunos. A Figura 23 representa as telas referentes ao caso de uso. Nela está representada a listagem do ranking dos alunos cadastrados no sistema.
  • 44. ! ! 44! Figura 23- Tela referente ao caso de uso Acompanhar Ranking dos Alunos Fonte: Elaborado pelo autor (2012) 3.3.2.7 Visualizar downloads O caso de uso Visualizar Downloads permite que os alunos consultem os downloads cadastrados no sistema. A Figura 24 representa as telas referentes ao caso de uso. Nela está representada a listagem dos downloads disponíveis ordenados por categorias.
  • 45. ! ! 45! Figura 24- Tela referente ao caso de uso Visualizar Downloads Fonte: Elaborado pelo autor (2012) 3.3.2.8 Consultar glossários O caso de uso Consultar Glossários permite que os alunos consultem os glossários da linguagem Potigol. A Figura 25 representa a tela referente ao caso de uso. Nela está representada a visualização de um glossário cadastrado no sistema.
  • 46. ! ! 46! Figura 25- Tela referentes ao caso de uso Visualizar Glossário Fonte: Elaborado pelo autor (2012) 3.3.3 Casos de uso do ator sistema Abaixo são apresentados os casos de uso executados pelo ator Sistema e que compõem o módulo de avaliação das respostas submetidas pelos alunos no PotigolCode. 3.3.3.1 Avaliar resposta submetida pelo aluno O caso de uso Avaliar Resposta é o caso de uso mais crítico do sistema. Ele é o responsável pela avaliação da resposta submetida pelo usuário através de testes unitários automatizados baseado nos casos de testes cadastrados previamente pelo professor. A Figura 26 apresenta uma visão geral do funcionamento do caso de uso.
  • 47. ! ! 47! Figura 26- Visão geral do funcionamento do caso de uso Avaliar Resposta Fonte: Elaborado pelo autor (2012) De acordo com a Figura 26, o código submetido pelo aluno e os casos de teste do exercício são gravados em um arquivo temporário com a extensão .poti. A classe utilitária PotigolTestsHelper é responsável por executar o arquivo, capturar o retorno do código executado e comparar com os casos de testes. Uma vez os resultados comparados, o feedback da execução é mostrada para o usuário. A figura 27 representa as telas referentes ao caso de uso. Nela está representada o feedback que o aluno recebe após a avaliação automática da resposta submetida.
  • 48. ! ! 48! Figura 27- Exemplo de feedback apresentado ao aluno após a avaliação da resposta Fonte: Elaborado pelo autor (2012) 3.3.3.2 Pontuar aluno O caso de uso Pontuar Aluno é responsável pela contabilização dos pontos obtidos pelo aluno no exercício. Caso o aluno submeta uma resposta correta para o exercício sem ter consultado a solução proposta para o professor, a pontuação obtida é a quantidade total de pontos do exercício. Se o aluno submeter uma resposta correta, porém tenha consultado a solução proposta, a pontuação obtida corresponde à 75% do valor do total de pontos do exercício. 3.4 DIAGRAMA DE CLASSES O diagrama de classes do PotigolCode apresenta três pacotes principais onde são armazenadas as classes de controladores, modelos, formulários e utilitários do sistema. As Figuras 28 a 30 ilustram a organização das classes do sistema.
  • 49. ! ! 49! Figura 28- Organização do pacote Controllers que contêm todos os controladores da aplicação Fonte: Elaborado pelo autor (2012)
  • 50. ! ! 50! Figura 29- Organização do pacote models que contêm todos as entidades da aplicação Fonte: Elaborado pelo autor (2012)
  • 51. ! ! 51! Figura 30- Organização do pacote helpers que contêm as classes utilitárias da aplicação Fonte: Elaborado pelo autor (2012)
  • 52. ! ! 52! No pacote controllers estão as classes controladoras da aplicação que são responsáveis por gerenciar o acesso aos modelos, definir as regras de negócio e repassar os dados para a camada de visualização. No pacote models estão as entidades da aplicação que são uma representação das tabelas do banco de dados do sistema e são responsáveis pela manipulação e persistência dos dados. No pacote helpers estão as classes auxiliares do sistema como as de controle de acesso e permissão dos usuários, execução dos testes automatizados, ordenadores e comparadores.
  • 53. ! ! 53! 4 CONSIDERAÇÕES FINAIS O projeto desenvolvido neste trabalho permite que professores das disciplinas iniciais dos cursos de TI tenham uma ferramenta de apoio no processo ensino aprendizagem capaz de auxilia-los na ministração da disciplina e organização dos cursos e exercícios propostos. Como vantagem, o sistema demonstrou ser capaz de auxiliar os professores no gerenciamento dos materiais e glossários utilizados nos cursos e exercícios propostos. Outra vantagem é que o aluno recebe o feedback imediato da resposta submetida. Acredita-se que o sistema seja uma boa ferramenta de apoio para o ensino e aprendizado da linguagem Potigol, pois permite que os alunos acessem o sistema de qualquer lugar, por computador ou dispositivo móvel, não havendo a necessidade de instalação de nenhum aplicativo. A utilização das tecnologias adotadas foi bastante importante para o desenvolvimento deste trabalho, atendendo todos os requisitos funcionais e não funcionais. 4.1 TRABALHOS FUTUROS Como trabalho futuro, sugere-se o aprimoramento da avaliação automática das respostas dos exercícios a fim de aumentar o desempenho dos testes automatizados. Outra proposta é o aprimoramento dos critérios de pontuação do sistema para calcular a pontuação obtida através de critérios de desempenho, verificação de estilos de codificação, execução dos testes automatizados e qualidade do código. Também como proposta, sugere-se a adição da funcionalidade de acompanhamento das respostas enviadas pelo aluno, afim de avaliar o progresso e erro mais comuns dos alunos durante os cursos. Outra funcionalidade proposta é a possiblidade do professor adicionar uma restrição temporal para o aluno submeter a resposta do exercício. Esta funcionalidade poderá ser utilizada em sala de aula a fim de testar o nível conhecimento e habilidade de resolução de problemas em um curto prazo.
  • 54. ! ! 54! Também é proposta a criação de mecanismos de conquistas e selos baseado na pontuação obtida pelo aluno e a possibilidade de compartilhamento de tais conquistas e selos nas redes sociais como Twitter e Facebook. Propõe-se também a implementação do suporte à outras linguagens de programação como Java, Scala, Python e Ruby, permitindo que o PotigolCode possa ser utilizado em outras instituições de ensino que utilizem tais linguagens de programação.
  • 55. ! ! 55! REFERÊNCIAS CODE SCHOOL. TryRuby Disponível em: <http://www.tryruby.org/>. Acesso em: 05 out. 2012. CODECADEMY: Aprenda a Programar. Disponível em: <http://www.codecademy.com/pt/>. Acesso em: 05 out. 2012. DANTAS, Lucas Hiago A.; MORAIS, Clemilson de Lima. A LINGUAGEM DE PROGRAMAÇÃO POTIGOL. In: VIII CONGRESSO DE INICIAÇÃO CIENTÍFICA DO IFRN, 2011, Natal. HOSTINS, Higor; RAABE, André. AUXILIANDO A APRENDIZAGEM DE ALGORITMOS COM A FERRAMENTA WEBPORTUGOL. Disponível em: <http://www.de9.ime.eb.br/~sousamaf/cd/pdf/arq0011.pdf>. Acesso em: 30 out. 2012. LEROUX, Nicolas; KAPER, Sietse de. Play for Java: Covers Play 2. New York: Manning, 2012. MANSO, António; MARQUES, Célio Gonçalo; MARQUES, Célio Gonçalo. Portugol IDE v3.x: A new environment to teach and learn computer programming. Disponível em: <http://www.ieec.uned.es/Investigacion/Educon2010/SearchTool/EDUCON2010/papers/2010S 05D04.pdf>. Acesso em: 30 out. 2012. MOREIRA, Mireille Pinheiro; FAVERO, Eloi Luiz. Um Ambiente para Ensino de Programação.Disponível em: <http://www.ufpa.br/ppgcc/ppgcc/files/File/Seminario_Andamento/2008/EAD/artigo_1.1.pdf>. Acesso em: 22 out. 2012. PARLANT, Nick, CodingBat: Code Practice. Disponível em: <http://codingbat.com/>. Acesso em: 05 out. 2012. PETRY, Patrícia Gerent; ROSATELLI, Marta Costa. Ensino e Aprendizagem de Algoritmos com o AlgoLC. Disponível em: <http://www.lbd.dcc.ufmg.br/colecoes/sbie/2006/040.pdf>. Acesso em: 5 nov. 2012. PIMENTEL, Edson P. et al. Avaliação Contínua da Aprendizagem, das Competências e Habilidades em Programação de Computadores. Disponível em: <http://www.br- ie.org/pub/index.php/wie/article/view/819/805>. Acesso em: 30 out. 2012. RAABE, André Luís Alice; SILVA, Júlia Marques Carvalho da. Um Ambiente para Atendimento as Dificuldades de Aprendizagem de Algoritmos. Disponível em:
  • 56. ! ! 56! <http://200.169.53.89/download/CD%20congressos/2005/SBC%202005/pdf/arq0027.pdf>. Acesso em: 30 out. 2012. REBELO, Beatriz Jesus et al. Sistema Colaborativo de Suporte à Aprendizagem em Grupo da Programação – SICAS-COL. Disponível em: <http://www.niee.ufrgs.br/eventos/SIIE/2005/PDFs/Comunica%E7%F5es/c113-Rebelo.pdf>. Acesso em: 30 out. 2012. VIEIRA, Paulo Viníccius; RAABE, André Luis Alice; ZEFERINO, Cesar Albenes. Bipide – Ambiente de Desenvolvimento Integrado para a Arquitetura dos Processadores BIP. Disponível em: <http://www.br-ie.org/pub/index.php/rbie/article/view/1215/1111>. Acesso em: 30 out. 2012. ZENEXTY; TYPESAFE; Play 2.0 Documentation Disponível em: <http://www.playframework.org/documentation/2.0.4/Home>. Acesso em: 05 out. 2012.