An investigation into novel software tools for enhancing students' higher cognitive skills in computer programming
Active learning is considered by many academics as an important and effective learning strategy. Students can improve the quality of their work by developing their higher cognitive skills through reflection on their own ideas, and through practice of analytic and evaluative skills. Assessment is a tool for learning, but traditional assessment methods often encourage surface learning, rather than deep learning which is an approach to developing higher cognitive skills. Peer assessment is one of the successful approaches, which can be used to enhance deep learning. It is a method of motivating students, involving students discussing, marking and providing feedback on other students' work. Although it is often used in the context of essays, it has seldom been applied to computer programming courses. The skill of writing good software includes understanding different approaches to the task, and stylistic and related considerations - these can be developed by evaluation of other programmers' solutions. As part of a study investigating the extent that peer assessment can promote deep learning to develop the higher cognitive skills in a programming course, a novel web-based peer assessment tool has been developed. - The process used is novel, since students are engaged not only in marking each other's work, but also in evaluating the quality of marking of their peers. - This system is designed to provide anonymity for the whole process, in order to ensure that the process is fair, and to encourage students to discuss without embarrassment by using an anonymous communication device (ACD) in a variety of roles (script authors, marker, and feedback marker). In this thesis, we describe and compare the learning theory and tools, which are relevant in learning computer programming. Deep learning, which can be described using the six categories of learning in Bloom's taxonomy, is discussed. Other peer assessment software tools are compared and discussed. The design and implementation of a novel web-based peer assessment system (with anonymous communication device) are described, and set in the context of the learning theories. The results of evaluating the tools through several experiments involving large programming classes and an essay writing module are reported. In this thesis, we also propose a new variation of Bloom's taxonomy, which is appropriate to describe the skills required for tasks such as programming. The results indicate that this approach to web-based peer assessment has successfully helped students to develop their higher cognitive skills in learning computer programming, and peer assessment is an accurate assessment method in a programming course.