Site menu:


My teaching focuses on the teaching of programming both declarative, imperative / procedural, functional, and object-oriented. The teaching involves the use of test-driven development and behaviour-driven development. The objective is to clarify the requirements through defining executable tests or behaviour specifications. In doing this, the initial design decisions are made. I see this as helping develop a programming process that aims to produce quality code.

Approach to teaching

My goal in teaching is to facilitate learning. My view of learning is influenced by my research into relational learning model (Ramsden 2003) and the use of variation theory (Marton & Tsui 2003, Marton 2015) in improving learning. The issue isn't how much the student knows, it is how they relate or are aware of the subject matter.

In the assessment of learning, I use a holistic approach to assessment based on the SOLO taxonomy (Biggs & Collis 1982, Biggs 1999). This approach focuses on the integration or structure of knowledge.

Tools to support teaching

The following have been developed to assist my teaching. They endeavour to open up the space of learning by presenting variations of the primary theme.


Biggs, J. B. & Collis, K. F. (1982) Evaluating the quality of learning: The SOLO taxonomy (Structure of the Observed Learning Outcome) , New York, Academic Press.

Biggs, J. B. (1999) Teaching for quality learning at University, Buckingham, Open University Press.

Marton, F. & Tsui, A. B. M. (Eds.) (2003) Classroom discourse and the space of learning, Mahwah, NJ; London, Lawrence Erlbaum Associates, Publishers.

Marton, F. (2015). Necessary conditions of learning. New York and London: Routledge.

Ramsden, P. (2003) Learning to teach in higher education, London, Routledge Falmer.