O documento discute o uso de Ambientes de Desenvolvimento Integrados (IDEs) no ensino da linguagem funcional Haskell. Ele descreve um estudo de caso onde o IDE Eclipse com plugin para Haskell foi aplicado em uma disciplina universitária sobre paradigmas de programação. Os resultados indicaram que os alunos tiveram maior facilidade com o ciclo de edição e teste de programas na IDE em comparação a usar apenas um interpretador e editor de texto.
1. Davi Felipe Russi, davirussi@inf.ufsm.br
Andrea Schwertner Charão, andrea@inf.ufsm.br
Universidade Federal de Santa Maria
2. Haskell é uma linguagem que é comumente
usada no ensino do paradigma funcional.
Ambientes de Desenvolvimento Integrados
(IDEs) facilitam a programação de aplicativos.
3. Alunos da graduação tem dificuldades com o
aprendizado da linguagem funcional Haskell.
Erros iniciais como de sintaxe e lógica podem
ser minimizados com uso de IDEs.
4. Conhecer os Ambientes de Desenvolvimento
Integrado disponíveis para Linguagem de
Programação Haskell.
Analisar seus recursos e avaliar
experimentalmente suas características
Definir a melhor IDE para o ensino-
aprendizagem.
5. O uso de IDEs no ensino de linguagens de
programação é um assunto bastante
explorado.
De forma geral, entende-se que este tipo de
ferramenta possa trazer vantagens para o
aluno que está iniciando o aprendizado de
uma nova linguagem de programação (Pears
et al., 2007; Caspersen, 2007).
6. Existem, algumas IDEs que foram criadas com
o propósito do ensino como: BlueJ (Kölling et
al., 2003), Greenfoot (Henriksen & Kölling,
2004) e DrJava (Allen, Cartwright & Stoler,
2002) para linguagem Java.
7. Em relação a linguagem Haskell, existiu um
trabalho visando este mesmo propósito o
HEAT (Ashton et al., 2005). Mas, de acordo
com os autores apresentava problemas de
funcionamento.
9. A análise iniciou pela leitura da
documentação.
Experimentação das mesmas.
As observações de cada ferramenta foram
reunidas e sistematizadas em documentos
para referência.
Aplicação da IDE mais completa em sala de
aula
10.
11.
12.
13.
14.
15.
16. Disciplina: Paradigmas de Programação(UFSM)
É teórico-prática de 4 horas/semanais (3º
semestre)
Utiliza-se a linguagem Haskell para o ensino
do paradigma funcional.
Interpretador (GHC ou HUGS) mais editor de
texto.
+
17. Alguns alunos tinham problemas como:
esquecer de carregar o programa modificado
no interpretador.
Escolha do IDE Eclipse com seu plugin para
Haskell (EclipseFP).
Reunir opiniões e observações sobre o seu
uso durante a disciplina de graduação.
18. Turma de 30 alunos com 15 horas aulas
teórico-práticas sobre linguagem funcional e
Haskell.
Em uma aula foi utilizado a combinação
interpretador mais editor
Em seis aulas o Eclipse com o plugin
EclipseFP
19. As opiniões eram dadas verbalmente durante
as aulas práticas e então registradas pelo
professor.
Formulário online onde os alunos podiam dar
sua opinião anonimamente:
Questões sobre IDEs geral
Questões sobre o Eclipse
Opiniões e sugestões.
20. Os alunos apresentaram maior facilidade com
o ciclo edição, e testes dos programas.
Alguns alunos comentaram que preferem
usar IDE por causa da maior variedade de
recursos.
Vários alunos registraram que o uso da IDE
ajudou a evoluir na programação em Haskell,
o que corrobora com a hipótese inicial.
21. Outros comentaram que a experiência foi
positiva já que o Eclipse é uma ferramenta
popular para o desenvolvimento C, C++ e
Java.
Acredita-se que essa popularidade é mais
uma motivação para o aprendizado da
linguagem Haskell.
22. Alguns aluno apresentaram dificuldades na
instalação completa da IDE.
Alguns computadores do laboratório também
apresentaram a ferramenta parcialmente
instalada. (sem realce de sintaxe e ajuda
rápida)
Este fato acabou desmotivando alguns alunos
que usaram a combinação editor mais
interpretador.
23. Desenvolvimento de documentação específica
para cada uma das IDEs analisadas.
Geração da tabela comparando alguns dos
aspectos mais importantes de cada IDE
Resultados positivos do estudo de caso.
24. ALLEN, E.; CARTWRIGHT, R.; STOLER, B. DrJava: a lightweight pedagogic
environment for Java. In: SIGCSE '02: SIGCSE technical symposium on
computer science education, 33, 2002, Cincinnati, USA. Anais. ACM,
education
2002, p. 137-141.
ASHTON, D.; OLIVE, C.; TRAVERS, J.; WHEST, L. HEAT – A Beginners' IDE
Beginners'
for Haskell Technical Report. Canterbury: University of Kent, 2005.
Haskell.
CASPERSEN, M. E. Educating Novices in The Skills of Programming
Programming.
Aarhus, Denmark: University of Aarhus, 2007. 323 p. Tese de
Doutorado.
HENRIKSEN, P.; KÖLLING, M. Greenfoot: combining object visualisation
with interaction. In: OOPSLA '04: ACM SIGPLAN conference on Object-
Object-
oriented programming systems, languages, and applications, 19, 2004,
languages, applications
Vancouver, Canada. Anais. ACM, 2004, pp. 73-82.
25. HUGUES, J. Why Functional Programming Matters.
Computer Journal v.32, n.2, p. 98-207, 1989.
Journal.
JONES, S. P. Haskell 98 Language and Libraries – The
Revised Report. 2002. Disponível em:
<http://www.haskell.org/onlinereport/>. Acesso em:
Outubro/2011.
KÖLLING, M., QUIG, B., PATTERSON, A.; ROSENBERG, J., The
BlueJ system and its pedagogy, Journal of Computer
Science Education v.13, n.4, p. 249-268, 2003.
Education,
PEARS, A.; SEIDMAN, S.; MALMI, L.; MANNILA, L.; ADAMS,
E.; BENNEDSEN, J.; DEVLIN, M.; PATERSON, J. A survey of
literature on the teaching of introductory programming.
SIGCSE Bull v.39, n.4, p. 204-223, 2007.
Bull.