Título
An educational environment for code behaviour inspection
Autor
Neves, Afonso Maria Pissarra Mendonça Centeno
Resumo
pt
A programação é uma disciplina inerentemente difícil de aprender e ensinar devido à sua
natureza abstrata e complexa. Alunos em cursos introdutórios de programação enfrentam
regularmente desafios significativos que dificultam o seu percurso de aprendizagem desde
cedo. É também comum professores manifestarem dificuldades em ajudar os alunos com
os seus problemas de programação, uma vez que identificar a origem de um problema
no código nem sempre é trivial. Debuggers pedagógicos têm demonstrado melhorar a
experiência académica para ambos, porém, as abordagens existentes geralmente requerem
uma determinada proficiência em conceitos de programação e, frequentemente, operam
num ambiente separado do espaço dedicado à escrita de código.
Esta dissertação apresenta um protótipo de ambiente de debugging para Java integrado
no espaço de desenvolvimento de código, permitindo uma transição harmoniosa entre a
escrita e inspeção comportamental do código. O ambiente permite aos utilizadores aceder
a históricos de variáveis durante uma execução, consultar informação relativa a ciclos,
avaliar expressões em diferentes momentos do programa (nomeadamente, condições e
operações numéricas), e examinar mensagens de apoio para tratamento de erros. Além
disso, o ambiente visa promover a prática de test-driven development, fornecendo uma
estrutura para testes unitários integrada no sistema de debugging.
Realizámos um estudo para avaliar a eficácia do protótipo no auxílio à resolução de
problemas de programação. Recrutámos voluntários inexperientes na área, com o objetivo
de simular a experiência de um aluno principiante. Concluímos que o protótipo se mostrou
útil numa variedade de problemas que poderiam ser propostos a iniciantes em ambientes
académicos.
en
Programming is an inherently difficult subject to learn and teach due to its complex and
abstract nature. Students in introductory programming courses often face severe challenges
which hinder their learning path at an early stage. Teachers also recurrently struggle
to assist students with their coding issues, as identifying the source of a problem is not
always straightforward. Pedagogical debuggers have been shown to enhance the experience
for both, however, existing approaches generally require a certain level of programming
expertise to be used effectively and often function in a setting separate from the coding
workspace.
This dissertation presents a prototype of a debugging environment for Java that is
integrated with the coding area, allowing for a seamless transition between the tasks of
writing and inspecting code. These inspections allow users to examine variable histories,
gather information on loop iterations, evaluate expressions at different points in the
code (namely, conditions and numerical operations), and examine error handling support
messages. In addition, the tool aims to promote test-driven development by providing a
structure for writing unit tests that are fully integrated into the debugging system.
We conducted a study to evaluate the effectiveness of the prototype in assisting
users in solving programming problems. For this purpose, we recruited inexperienced
volunteers simulating the experience a beginner student would have when using the tool.
We concluded that the prototype proved useful across a range of problems that could be
presented to novice students in an academic setting.