Ben du Boulay, University of Sussex
Central issues in the teaching of computer science and other subjects such as mathematics are those of the nature and use of representations. In Open Learning Environments a crucial role of representation is to encode and then offer students ways of thinking about the entities, relationships and processes of the domain in question. For example, in our work on learning Prolog, much effort centred on trying to make program trace information at once both meaningful yet explicit about the complex, and normally implicit, processes such as unification and search underpinning that computer language. In our work on the Discover system, an even more explicit model of the functioning of the virtual machine was provided to aid both program construction as well as debugging. In our work on an advice system for novice Unix file system users, the representation issue was centred not just on the semantics of the domain, but also on novices' misunderstandings of that domain. The system needed to make plausible inferences about what the user might have meant to achieve when they typed the peculiar command that did. In our current work with Java we have been exploring the way that programmers exploit the multiple representations typically available in a program development and debugging environment to build a coherent understanding of the program as a complex multi-faceted entity. Indeed like Prolog, Java provides complex, but normally implicit process that learners need to understand if they are to be successful programmers.
This paper describes a number of projects undertaken by our research group in the area of learning and teaching university level computer science. In each case it focuses on the various representations explicitly and implicitly available to the learners and discusses how those representations assisted (or impeded) learning and problem-solving.
Return to PVW '04 home page.
Last revision: 10 December 2004 by Mike Joy