Abstract:
Programming is traditionally considered to be an activity which aims only to produce a software artefact as its primary goal. With this view programming languages are simply the notations which define these artefacts. This paper examines the relationships between internal representations (mental models) and external representations (notations and other forms) arguing that program code behaves as an external representation in a similar way to mathematical or logical notations but with the added property that code can be executed and its notational consequences observed.
Furthermore some environments allow program operation to be manipulated at run-time; we propose that these systems also operate as external representations and that programming language statements and their run-time environments can thereby be utilised as reasoning systems to promote the exploration and discovery of new understandings. In this context we consider NetLogo as a framework for reasoning about complex and emergent systems, evaluating its suitability from a representational perspective.
Furthermore some environments allow program operation to be manipulated at run-time; we propose that these systems also operate as external representations and that programming language statements and their run-time environments can thereby be utilised as reasoning systems to promote the exploration and discovery of new understandings. In this context we consider NetLogo as a framework for reasoning about complex and emergent systems, evaluating its suitability from a representational perspective.