Oxford Brookes University School of Technology

Publications

Quick Overview

Full List (more recent first)


Multirelations Program Calculation C. E. Martin, S. A. Curtis
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 [close]]

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.


Multirelations Program Calculation C. E. Martin, S. A. Curtis, I. Rewitzky:
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 [close]]

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.


Multirelations Program Calculation C. E. Martin and S. A. Curtis:
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 [close]]

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.


Functional Programming Greedy Algorithms Algorithms S. A. Curtis:
Marble Mingling
Journal of Functional Programming, 2006, volume 16, issue 2, pages 129-136
[preprint (ps/gz) | abstract [close]]

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.


Functional Programming Algorithms Richard Bird, Sharon Curtis:
Finding celebrities: a lesson in functional programming
Journal of Functional Programming, 2006, volume 16, issue 1, pages 13-20
[abstract [close]]

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 Programming S.A. Curtis, C.E. Martin:
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 [close]]

This paper uses functional programming techniques to model fractal image compression. The language used is Haskell.


Functional Programming Education S.A. Curtis:
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 [close]]

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.


Education Sharon Curtis, Mary Zajicek:
Structuring an on-line assessment of students' learning
Proceedings IADIS International Conference e-Society 2005, Malta
[preprint (pdf) | abstract [close]]

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.


Education W. Iskander, S. A. Curtis:
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 [close]]

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.


Greedy Algorithms Algorithms S. A. Curtis:
Darts and Hoopla Board Design
Information Processing Letters, 2004, volume 92, pages 53-56
[preprint (pdf) | abstract [close]]

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.


Multirelations Program Calculation C. E. Martin, S. A. Curtis, I. Rewitzky:
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 [close]]

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.


Education Sharon Curtis and David Lightfoot:
Teaching Scientific Techniques of Software Development
Presented at the Grand Challenges in Computing Education conference, 2004
[pdf | abstract [close]]

Our grand challenge:
Develop materials and approaches that permit scientific techniques of software development to be taught successfully to all who aspire to become programmers, as a fundamental part of their programming education.


Program Calculation Greedy Algorithms Algorithms S. A. Curtis:
The Classification of Greedy Algorithms
Science of Computer Programming, 2003, volume 49, pages 125-157
[preprint (pdf) | abstract [close]]

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.


Greedy Algorithms Algorithms S. A. Curtis:
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 [close]]

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.


Functional Programming K. Hammond, S. Curtis (editors):
Trends in Functional Programming (volume 3)
published by Intellect, 2002
Proceedings of the 3rd Scottish Functional Programming Workshop, Stirling, 2001.

Functional Programming Greedy Algorithms Algorithms S. A. Curtis:
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 [close]]

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.

Functional Programming Sharon Curtis:
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 [close]]

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.


Functional Programming Program Calculation Algorithms Sharon Curtis:
Use of Relational Operators for Algorithm Development
(in the draft proceedings of the 1st Scottish Functional Programming Workshop, Stirling, 1999)
[preprint (ps/gz) | abstract [close]]

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.


Algorithms Sharon Curtis:
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 [close]]

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.

Program Calculation Graph Calculus Sharon Curtis and Gavin Lowe:
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 [close]]

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.

Program Calculation Graph Calculus Greedy Algorithms Algorithms Sharon Curtis:
A Relational Approach to Optimization Problems (D.Phil thesis)
Tech. report PRG-122 from Oxford University Computing Laboratory, 1996
[gzipped postscript | abstract [close]]

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.
This fresh approach provides additional insights into the relationship between dynamic programming and greedy algorithms, and helps to unify previously distinct approaches to solving combinatorial optimization problems. Some of the solutions discovered are new and solve problems which had previously proved difficult. The material is illustrated with a selection of problems and solutions that is a mixture of old and new.
Another contribution is the invention of a new calculus, called the graph calculus, which is a useful tool for reasoning in the relational calculus and other non-relational calculi. The graph calculus represents formulae by formal pictures, and this enables proofs to be expressed more simply. It is also more powerful than standard point-free reasoning, and its simple intuitive basis aids greater understanding of the structure of formulae and certain proofs.


Program Calculation Graph Calculus Sharon Curtis and Gavin Lowe:
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 [close]]

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.