Graph Constructor

22 March 2010


Introduction

The first working version of Graph Constructor is shown below.

How to use Graph Constructor

Just experiment with it; you'll soon see what to do. The letters in brackets printed on each button are shortcuts for changing the behaviour of the mouse. Please report to me any bugs or suggestions for improvements; all comments will be appreciated.

Questions and answers

What is Graph Constructor?
It is an environment for constructing graphs.

Why not just use a pen and paper to draw graphs?
In many cases, Graph Constructor is more economical and efficient. You can position nodes, delete nodes, add nodes, colour nodes, and label nodes. Similarly for edges. You can also save and load graphs. Making adjustments to large graphs on paper is tiresome. With Graph Constructor it is simple.

As graph theory is not part of the UK school syllabus, do we have much use for Graph Constructor?
There are three reasons why I believe graph theory should be taught to young students. First, it is a fascinating and fun topic which differs from the usual mathematical subjects taught at a low level. Second, it is exceptionally accessible; the basics of graph theory can be taught to an infant. Third, it is an important research topic, and there are many strong graph theory researchers in the UK. This indicates that graph theory is a relevant subject to study in modern mathematics. In light of these three reasons, I believe it is worth enriching the mathematics taught to school students by introducing them to graph theory.

What, explicitly, can we do with Graph Constructor?
In the next section I supply links to several sets of notes and problems on topics in graph theory, introduced using Graph Constructor.

Topics in graph theory

Introduction to graph theory
Trees
Euler tours
Hamilton cycles
Planar graphs
Weighted graphs

NRICH content which could be generalised with graph theory

Sticky numbers
Cycling squares
Factors and multiples

Graph Constructor may also be relevant for Dividing walls.

Desirable additional features

Improve functionatlity of node and edge labeller.
Improve functionatlity of node shaper.
Multiple node dragging.
Clearer overlapping edges.
Curved edges.
Multiple edges between nodes.
Edge from node to itself.
Directed edges.
Algorithms for calculating minimum routes etcetera.
Undo feature.
Remove overlapping edges from planar graphs.