Activities and Services

Related Links

University Links

Back to list of seminars for 2006/07

Abstract for Seminar

The modern world is critically dependent on the reliable functioning of computer software. The sheer scale of software systems makes their design and implementation a highly demanding intellectual activity. The level of rigour, accuracy and effectiveness required in reasoning about software has no precedent.

Computing scientists have responded to this challenge by developing novel reasoning techniques for designing efficient computer algorithms. These "correct-by-construction" techniques emphasise the *process* of algorithm design, rather than the end result. The insight that has been gained has the potential of causing a revolution in the art of effective reasoning, with immense benefits for the way that problem solving is taught in schools and universities.

This talk is about how I am trying to introduce first-year undergraduates to these skills in a module entitled "Algorithmic Problem Solving" at the University of Nottingham http://www.cs.nott.ac.uk/~rcb/G5AAPS/G5AAPS.html

The problems presented in the module are typically challenging, but easily understood, and involve some sort of construction. I use, for example, simple two-person games, where what is to be constructed is a winning strategy. The problems are deliberately non-mathematical, in the sense that they are expressed in natural language, without the aid of mathematical formulae. Nevertheless, my goal is to demonstrate how the use of the mathematics of algorithm design is truly effective in their solution. The problems are not new, but the focus is.

The talk uses an overview of the module as a basis for a discussion of good and bad problem-solving skills. I will draw on my own experience, and offer a personal view, on how to make radical improvements in teaching "hard" problem-solving skills.