Programming by discovery
Haider Ali Ramadhan · Journal of Computer Assisted Learning · 2000
Abstract The concept of Programming by Discovery refers to the process of designing programming environments and systems which use various visualisation, programming and interaction technologies in an effective way to help users, especially beginner programmers, in writing computer programs, understanding their dynamic behaviour, detecting any misconceptions and bugs associated with them, and seeing the effect of these programs on the underlying machine. A system for programming by discovery encourages a user to become an active learner by allowing him to form his own hypotheses, explore his own questions, and draw his own conclusions. This paper reports on the design and evaluation of a system for programming by discovery which embodies the principles outlined above. To assess the usefulness of the design framework presented in this paper, a pilot empirical evaluation was conducted. The results provided a number of interesting insights into the implication of incorporating visualisation and immediacy features along with graphical notional machine and algorithm‐like language into the design of programming systems.