Skip to main content
Kent Academic Repository

The Design and Implementation of a Notional Machine for teaching Introductory Programming

Berry, Michael (2015) The Design and Implementation of a Notional Machine for teaching Introductory Programming. Doctor of Philosophy (PhD) thesis, University of Kent. (KAR id:54854)

Language: English
Download this file
[thumbnail of 125thesis.pdf]


Comprehension of both programming and programs is a difficult task for novices to master, with many university courses that feature a programming component demonstrating significant failure and drop out rates. Many theories exist that attempt to explain why this is the case. One such theory, originally postulated by du Boulay, is that students do not understand the properties of the machine; they do not understand what they are or how they are controlling them by writing code. This idea formed the development of the notional machine, which exists solely as an abstraction of the physical machine to aid with its understanding and comprehension.

This work contributes a design for a new notional machine and a graphical notation for its representation. The notional machine is designed to work with object-oriented languages (in particular Java). It provides several novel contributions over pre-existing models -- while existing similar models are generally constrained to line by line operation, the notional machine presented here can scale effectively across many program sizes, from few objects and lines to many. In addition, it is able to be used in a variety of formats (in both electronic and unplugged form). It also melds together three traditionally separate diagrams that had to be understood simultaneously (the stack trace, class diagram and object heap.)

Novis, an implemented version of the notional machine, is also presented and evaluated. It is able to create automatic and animated versions of notional machine diagrams, and has been integrated into BlueJ's main interface. Novis can present static notional machine diagrams at selected stages of program execution, or animate ongoing execution in real time.

The evaluation of Novis is presented in two parts. It is first tested alongside a selection of methodically chosen textbook examples to ensure it can visualise a range of useful programs, and it then undergoes usability testing with a group of first year computer science students.

Item Type: Thesis (Doctor of Philosophy (PhD))
Thesis advisor: Kölling, Michael
Uncontrolled keywords: education java novis novice programming notional machine introductory cs1 bluej
Subjects: Q Science > QA Mathematics (inc Computing science)
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Users 1 not found.
Date Deposited: 07 Apr 2016 17:00 UTC
Last Modified: 09 Dec 2022 11:35 UTC
Resource URI: (The current URI for this page, for reference purposes)

University of Kent Author Information

Berry, Michael.

Creator's ORCID:
CReDIT Contributor Roles:
  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.