First steps towards a web framework for an automated Eiffel code teaching assistant
Bachelor's Thesis, February 2015 — July 2015
Author: Christian Vonrüti
Supervisor: Marco Piccioni
"In my experience as a TA for Introduction to Programming, I noticed that students tend to develop an understanding and oftentimes misunderstanding of Eiffel which seemed to be rooted in intuitions they formed about certain program constructs based on example programs. When tasked to write their own programs they would then extrapolate on their intuitions. This would lead them to invent constructs and syntax that Eiffel, much to their dismay, would then reject. If Eiffel did in fact accept their program, it would often do something completely different from what they expected. All of this combined seemed to make the students regard Eiffel as a magical black box, rather than a mechanical one following very precise rules. I found this belief to be confirmed further when I noticed that students' understanding would improve, when explaining certain lines of code thoroughly and mechanically, by explicitly mentioning every step, and its substeps recursively. However, explaining in such detail is a quite tedious and time consuming process, and lends itself to automation. And thus the idea to create a tool that could be used to aid students in understanding Eiffel programs, and the precise rules that govern it, was born."