O documento descreve o PotigolCode, um ambiente web desenvolvido para auxiliar o ensino de programação usando a linguagem Potigol. Ele permite o gerenciamento de cursos, exercícios e materiais didáticos, e fornece avaliação automática e feedback imediato para os alunos. O sistema mostrou-se uma ferramenta útil, mas ainda há espaço para melhorias como aperfeiçoar a avaliação e acompanhar o progresso dos alunos.
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Aprendizagem de Programação com Potigol
1. PotigolCode
Ambiente de apoio ao ensino de lógica de programação
através da linguagem de programação Potigol.
Allyson Bruno Campos BarrosVilela
Orientador: Leonardo Reis Lucena
Co-Orientador: Jailton Carlos Paiva
2. Motivação
• As disciplinas de introdução à programação
são de extrema importância nos cursos de TI
para a formação da lógica de programação e
da habilidade de resolução de problemas.
MOREIRA e FAVERO (2008)
• O processo de aprendizado de algoritmos é
difícil e exigente para a maioria dos alunos
ingressantes nos cursos de TI.
3. Motivação
• Muitos alunos concluem as disciplinas de
programação sem ter um conhecimento
mínimo adequado.
Borges (2000 apud MOREIRA; FAVERO, 2008)
• Muitos abandonam o curso nos primeiros
semestres devido às dificuldades encontradas
durante o processo de ensino.
Borges (2000 apud MOREIRA; FAVERO, 2008)
4. Problemas na aprendizagem
de algoritmos
• Ausência ou ineficácia de estratégias de
resolução lógica por parte dos alunos.
RAABE e SILVA (2005)
• Diferença de experiência e ritmo de
aprendizagem entre os alunos.
RAABE e SILVA (2005)
• Dificuldade para motivar os alunos e os
manter interessados na disciplina.
PETRY e ROSATELLI (2006)
5. Problemas na aprendizagem
de algoritmos
• Grande número de alunos por turma,
dificultando a avaliação individual.
RAABE e SILVA (2005)
• Lentidão na avaliação e feedback de todos os
exercícios enviados pelos alunos.
MOREIRA e FAVERO (2008)
• Outros problemas de ordem pessoal e/ou
emocional.
RAABE e SILVA (2005)
6. Objetivos
• Desenvolver uma ferramenta de apoio para
o ensino e aprendizado de algoritmos que
utilizasse a linguagem de programação
Potigol.
• Permitir que a ferramenta possa ser utilizada
nas disciplinas de programação do curso de
Análise e Desenvolvimento de Sistemas do
IFRN.
7. O PotigolCode
• 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.
• Inspirado 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.
8. Requisitos Funcionais do
Projeto
• Gerenciamento de cursos e exercícios;
• Administração dos alunos e dos materiais de
aula;
• Avaliação das respostas submetidas e
geração de feedbacks através de testes
automatizados;
• Pontuação automática e Ranking dos alunos.
9. Requisitos Não Funcionais
do Projeto
• Autenticação dos usuários e controle de
permissões;
• Disponibilidade de acesso de qualquer lugar
e em qualquer horário através de um
ambiente web;
• Bom desempenho para executar os testes
automatizados com rapidez.
12. Tecnologias Utilizadas
• Desenvolvido utilizando as linguagens de
programação Java e Scala através do Play
Framework 2.0 e o banco de dados
relacional MySQL.
• Utilizada a versão inicial e de testes da
linguagem Potigol que é responsável pela
execução dos algoritmos submetidos ao
sistema.
16. Conclusão
• O sistema mostrou-se uma boa ferramenta
de apoio para o ensino e aprendizagem da
linguagem Potigol, pois permite o
gerenciamento dos cursos, exercícios e de
seus materiais de aula.
• As funcionalidades de avaliação automática
e o feedback imediato possibilitam maior
rapidez na avaliação e feedback de todos os
exercícios enviados pelos alunos durante as
disciplinas.
17. Trabalhos Futuros
• Aprimoramento da avaliação automática
das respostas dos exercícios e critérios de
pontuação automática dos exercícios
resolvidos pelos alunos;
• Implementação do acompanhamento das
respostas enviadas a fim de avaliar o
progresso e erros mais comuns mais
cometidos pelos alunos
• Implementação de restrição temporal para
a resolução dos exercícios;
18. Trabalhos Futuros
• Criação de mecanismos de conquistas e
selos baseados na pontuação do aluno;
• Integração com as redes sociais permitindo
o compartilhamento do progresso e
conquistas;
• Integração e suporte à outras linguagens de
programação como Java, Scala, Ruby,
Python, C#, etc.
19. Referências
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.
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.
RAABE, André Luís Alice; SILVA, Júlia Marques Carvalho da. Um Ambiente
p a r a A t e n d i m e n t o a s D i fi c u l d a d e s d e A p re n d i z a g e m d e
Algoritmos. Disponível em: <http://200.169.53.89/download/CD
%20congressos/2005/SBC%202005/pdf/arq0027.pdf>. Acesso em: 30 out.
2012.