Publications
Quick Overview
Multirelations
My work on multirelations is joint with Clare Martin; the first and most accessible of our papers is Modelling angelic and demonic nondeterminism with multirelations, which introduces multirelations in a set-theoretic setting. The second paper deals with multirelational folds, and our most recent paper (more theoretical) constructs multirelational monadic maps and folds, giving multirelations a categorical semantics from power allegories and Kleisli categories. More papers on multirelations are in progress.
Algorithms
My other main research area is algorithmics. Publications on the theory of algorithms include papers about greedy algorithms, dynamic programming and my thesis. For papers on
greedy algorithms, see
marble mingling,
darts and hoopla board design and
minimum chain partitioning.
I've also a non-greedy algorithm that solves the
celebrity clique problem.
-
Functional Programming
Papers presenting algorithms in a functional programming style include algorithms about marble mingling, finding celebrities, fractal image compression, quilting. There's also a paper Word Puzzles in Haskell that makes a suggestion of functional programming assignments to give to students.
Program Calculi
Much of my work involves calculational program development. For example, the paper on monadic maps and folds uses an algebra for multirelations, and the papers on greedy algorithms theory and dynamic programming theory use relational algebra. In addition, the
graph calculus is useful for calculating with relations
and other sequential calculi.
-
Pedagogy
In the realm of education, my publications are rather eclectic. There's a suggestion for the use of formal techniques in software development, a report on the use of a computerised assessment system for HCI, and a suggestion for functional programming assignments. My former research student, Wejdan Iskander, studied how the use of 3D interactive animations can help high school students learn vector mathematics better.
Full List (more recent first)
|
Monadic Maps and Folds for Multirelations in an Allegory To appear in the proceedings of UTP08 (links to LNCS/Springer to be added when known) [paper (pdf) | proof supplement (pdf) | abstract This paper contributes to the unification of semantic models and program development techniques by making a link from multirelations and predicate transformer semantics to algebraic semantics and the derivation of programs by calculation, as used in functional programming and relational program development. Two common ways to characterise iteration, namely the functional programming operators map and fold, are extended to multirelations, using concepts from category theory, power allegories and monads. |
|
Modelling angelic and demonic nondeterminism with multirelations Science of Computer Programming, 2007, volume 65, issue 2, pages 140-158 Note: This paper is an extended journal version of the paper Modelling Nondeterminism. [abstract This paper presents an introduction to a calculus of binary multirelations, which can model both angelic and demonic kinds of non-determinism. The isomorphism between up-closed multirelations and monotonic predicate transformers allows a different view of program transformation, and program transformation calculations using multirelations are easier to perform in some circumstances. Multirelations are illustrated by modelling both kinds of nondeterministic behaviour in games and resource-sharing protocols. |
|
Nondeterministic Folds Proceedings of the 8th Mathematics of Program Construction conference, 2006 published in Lecture Notes in Computer Science, vol. 4014, pages 274-298 [preprint (pdf) | abstract The map and fold operators are both key elements of every functional programmer's toolkit. In this paper we examine the corresponding concepts in the domain of multirelations, which can be used to model both angelic and demonic nondeterminism. |
|
Marble Mingling Journal of Functional Programming, 2006, volume 16, issue 2, pages 129-136 [preprint (ps/gz) | abstract A bag (literally and mathematically!) of marbles is deemed to be mingled if all the colours of the marbles are different. Given a positive integer k and a collection of m marbles, our objective is to try and extract as many mingled bags as possible from the collection, where each bag contains exactly k marbles. |
|
Finding celebrities: a lesson in functional programming Journal of Functional Programming, 2006, volume 16, issue 1, pages 13-20 [abstract Given is a nonempty list xs of people at a party. By definition, a nonempty sublist ys of xs forms a celebrity clique if everybody at the party knows every member of ys, but members of ys know only each other. Assuming there is such a clique at the party, the problem is to write a functional program to find it. |
|
Functional Fractal Image Compression In the proceedings of the 6th Symposium on Trends in Functional Programming (TFP 2005), Tallinn, Estonia, 23-24 September 2005, pages 383-398 [abstract This paper uses functional programming techniques to model fractal image compression. The language used is Haskell. |
|
Word Puzzles in Haskell: Interactive Games for Functional Programming Exercises In the proceedings of the 2005 workshop on Functional and declarative programming in education (FDPE05), pages 15-18 [preprint (pdf) | abstract This paper describes some functional programming exercises in the form of implementing some interactive word puzzle games. The games share a common framework and provide good opportunities for practising higher-order functions, recursion, and other list processing functions. Experience suggests that these games are motivating and enjoyable for students. |
|
Structuring an on-line assessment of students' learning Proceedings IADIS International Conference e-Society 2005, Malta [preprint (pdf) | abstract This paper describes an on-line assessment system (HCIQ) for HCI. The assessment questions were structured to assess understanding of HCI concepts in a way that allows for automated marking. The HCIQ system was designed so that for a large number of students, the on-line test could take place in multiple short sittings in computer labs, and in such a way that cheating was prevented. |
|
Use of Colour and Interactive Animation in Learning 3D Vectors Journal of Computers in Mathematics and Science Teaching, 2005, volume 24, issue 2, pages 149-156 [preprint (pdf) | abstract This study investigated the effects of two computer-implemented techniques (colour and interactive animation) on learning 3D vectors. The participants were 43 female Saudi Arabian high school students, who were pre-tested on 3D vectors using a paper questionnaire consisting of calculation and visualization types of questions, and then divided into four groups. Each group was allocated to a different version of software for learning 3D vectors: the versions differed in their use of colour/greyscale and static images/interactive animation. After using the software, a post-test was administered. All students improved their overall test scores, with no significant difference between the groups. However, test scores on the visualization questions differed noticeably, with the groups viewing animated versions scoring higher than the groups seeing static versions. |
|
Darts and Hoopla Board Design Information Processing Letters, 2004, volume 92, pages 53-56 [preprint (pdf) | abstract This paper presents a greedy algorithm for the design of circular dartboards and linear (hoopla) boards. The algorithm's correctness also leads to a simple verification of the optimality of certain arrangements. |
|
Modelling Nondeterminism Presented at the Mathematics of Program Construction conference, 2004 Lecture Notes in Computer Science, number 3125, pages 228-251. Note: This paper also has an extended journal version. [preprint (ps) | abstract A calculus of multirelations is presented, which can model two kinds of non-determinism: angelic and demonic. The basic operators, refinement and correctness conditions of the calculus are illustrated with examples of games and resource division protocols. |
|
Teaching Scientific Techniques of Software Development Presented at the Grand Challenges in Computing Education conference, 2004 [pdf | abstract
Our grand challenge:
|
|
The Classification of Greedy Algorithms Science of Computer Programming, 2003, volume 49, pages 125-157 [preprint (pdf) | abstract This paper presents principles for the classification of greedy algorithms for optimization problems. These principles are made precise by their expression in the relational calculus, and illustrated by various examples. A discussion compares this work to other greedy algorithms theory. |
|
A Generic Algorithm for Minimum Chain Partitioning in "Generic Programming", edited by Jeremy Gibbons and Johan Jeuring, Kluwer, 2003 (proceedings of the IFIP WG2.1 Working Conference on Generic Programming, Dagstuhl, July 2002) [preprint (ps/gz) | abstract This presents a generic algorithm to obtain a minimum sized partition of a partially ordered set into chains. The algorithm is illustrated with three examples, including a novel box stacking problem and solution. |
|
Trends in Functional Programming (volume 3) published by Intellect, 2002 Proceedings of the 3rd Scottish Functional Programming Workshop, Stirling, 2001. |
|
Laziness, Drugs and Jam Jars In the draft proceedings of the 3rd Scottish Functional Programming Workshop, Stirling, 2001 The work described in this paper is also described differently in the paper Marble Mingling. [preprint (ps/gz) | abstract This concerns a combinatorial problem to allocate drugs for a medical trial. Two algorithms are presented which solve a more general problem, one of these making crucial use of laziness to achieve a (not straightforward) linear complexity. These results are then used to solve the original problem. |
|
An Application of Functional Programming: Quilting in "Trends in Functional Programming", edited by Stephen Gilmore, vol. 2, Intellect, 2000 In the proceedings of the 2nd Scottish Functional Programming Workshop, St. Andrew's, 2000 [preprint (ps/gz) | abstract Quilting (including the patchwork that the typical quilter indulges in) is primarily a leisure activity, one which on the surface seems to have little to do with functional programming. However, both the patchwork and the social participation in group projects often yield interesting combinatorial problems. This paper looks at the suitability of functional programming for solving these types of problems, considering two representative problems and their functional solutions. |
|
Use of Relational Operators for Algorithm Development (in the draft proceedings of the 1st Scottish Functional Programming Workshop, Stirling, 1999) [preprint (ps/gz) | abstract We examine the use of the relational limit operator for the solution of combinatorial problems. In particular, the first developmental steps from specifications and the construction of feasible solutions are considered. |
|
Dynamic Programming: a different perspective In Algorithmic Languages and Calculi, edited by R.S.Bird and L.Meertens, Chapman and Hall; the proceedings of the IFIP TC2 Working Conference on Algorithmic Languages and Calculi (Feb 1997), Le Bischenberg, France [preprint (ps/gz) | abstract Dynamic programming has long been used as an algorithm design technique, with various mathematical theories proposed to model it. Here we take a different perspective, using a relational calculus to model both problems and their solutions obtained from dynamic programming. This approach serves to shed new light on the different styles of dynamic programming, represneting them by different search strategies of the tree-like space of partial solutions. |
|
Proofs with Graphs Science of Computer Programming, 1996, volume 26, pages 197-216 Note: This paper is an extended journal version of the paper A Graphical Calculus. [preprint (ps/gz) | abstract Defines a graphical calculus for aiding reasoning in the relational and sequential calculi. In particular the power and expressivity of the graph calculus is emphasized. |
|
A Relational Approach to Optimization Problems (D.Phil thesis) Tech. report PRG-122 from Oxford University Computing Laboratory, 1996 [gzipped postscript | abstract
The main contribution of this thesis is a study of the dynamic
programming and greedy strategies for solving combinatorial optimization
problems. The study is carried out in the context of a calculus of
relations, and generalises previous work by using a loop operator
in the imperative programming style
for generating feasible solutions, rather than the fold and unfold
operators of the functional programming style.
The relationship between fold operators and loop operators
is explored, and it is shown how to convert from the former to the
latter.
|
|
A Graphical Calculus Presented at the Mathematics of Program Construction conference, 1995. Lecture Notes in Computer Science, 1995, number 947, pages 214-231 Note: This paper also has an extended journal version. [preprint (ps/gz) | abstract We present a graphical calculus, which allows mathematical formulae to be represented and reasoned about using a visual representation. We define how a formula may be represented by a graph, and present a number of laws for transforming graphs, and describe the effects these transformations have on the corresponding formulae. We then use these transformation laws to perform proofs. We illustrate the graphical calculus by applying it to the relational and sequential calculi. The graphical calculus makes formulae easier to understand, and so often makes the next step in a proof more obvious. Furthermore, it is more expressive, and so allows a number of proofs that cannot otherwise be undertaken in a point-free way. |
