My Education Manifesto

I've been involved in learning and education for over 5 years, enough time to start to make sense of my values and preferences -- what I stand for in education. So I've created a first draft education manifesto, to seek comment, feedback and discussion.

Why have a manifesto?

I want to explain to others what I'm up to in education, join forces with other like minded people, do a gap analysis and enable others to critique my approach.

(Format and ideas inspired by the Agile Manfesto

Education Manifesto

We are uncovering better ways to learn by doing it and helping others do it. Through this work we have come to value:
  • Learner led over leader led
  • Working on the learning environment over working on the learner
  • Intrinsic satisfaction over token rewards
  • Right pace over race to results
  • Deep understanding over memorisation
  • Working through struggle and mistakes over showing off perfection
  • Coaching and mentoring over micro-management
  • Questions from the learner over questions from the leader


  • Create an ideal environment for learning. Think about productive environments and the activity they encourage, e.g. library, workshop, artists studio, music practice room. 
  • Recognise energy now and choose task appropriately. If energy remains low, respect this and try something else.
  • Regular feedback to leader and learner to drive improvement. Respect learner's readiness for feedback and seek permission periodically (not continuously).
  • Deliberate practice builds mastery.
  • Connected learning to learner's needs + desires. "What does this mean for me?" is a great question.


  • Making meaning / my own interpretation
  • Repeated encounters:
  • Building mastery
  • Learning journey or jigsaw: small pieces make up the whole. Pieces often snap into place in a seemly random (to the leader) order.
  • Foundations "I can do this real fast!" lead to higher level performance.
Let me know what you think...

Tiling and tessellation with a Context Free Grammar - Part 2

In my previous blog post we looked at how to use a Context Free Grammar to make simple grids of circles and then use colour variation to produce a rainbow effect. Now let's look at making more interesting patterns of shapes.

Simple spirals

First let's draw a series of ever decreasing, spiralling triangles...

#lang s-exp stamps/lang

(define-shape spiral
  (spiral [r 22]
          [x .8]
          [s .95]))
(maximum-render-cycles 1000)
(start-shape spiral)

Play with those numbers in square brackets to produce something you like. Remember, r=rotation, x=x translation, s=scale.

Recursive loops

This example draws a hexagon with a circle of hexagons around it, and for each of those hexagons, it draws a circle of hexagons around it, recursively building up a pattern that fills the artwork.

#lang s-exp stamps/lang

(define-shape hex-circle
  ((loop ([i 6])
           [r (* 360 (/ i 6))]
           [y .9])))

(define-shape scene
  (hex-circle [alpha -.7]
              [b .2])

(maximum-render-cycles 1000)
(start-shape scene)

There's a few new concepts in this code:
  • A loop construct to draw a circle of 6 hexagons. There's a lot of brackets in there! These denote the loop; the binding, in this case i takes the values from 1 to 6; then the loop body, in this case a call to hex-circle with attributes to draw each at the right position around the central hexagon.
  • A bit of lisp-style maths: (* 360 (/ i 6)) means 360*(i/6), in other words, rotate by a sixth of a circle for each loop iteration. 
  • We use a scene function to set up the basic attributes, for everything drawn: reduced alpha (transparency) and reduced brightness.
As with previous examples, play with the numbers, or add in extra adjustments to create something you like.

Recursive branching

You may have noticed in the previous example that we drew many hexagons on top of other hexagons, resulting in dark hexagons in the centre of the pattern. As an alternative we can instead draw just two outer shapes, positioned at alternative angles (in this case -60˚ and 60˚), the effect of recursion then fills the plane.

#lang s-exp stamps/lang 

(define-shape C
  (C [r -60] [y .5])
  (C [r 60] [y .5])

(define-shape scene
     [alpha -.9]
     [b .2]))

(maximum-render-cycles 1000)
(start-shape scene)

Let's introduce a few variables to make playing with the numbers easier. This code is the pretty much the same as the above, but with the angle and space set at the start of the program (and red dots):

#lang s-exp stamps/lang 

(define angle (/ 360 8))
(define space 3)

(define-shape C
  (C [r (- angle)] [y space])
  (C [r angle] [y space])

(define-shape scene
     [alpha -.9]
     [b 1]
     [sat 1]
     [hue 0]))

(maximum-render-cycles 50000)
(start-shape scene)

What next? Let's explore tessellation with regular shapes such as pentagons, hexagons and heptagons... (coming soon)