trees
I taught this lesson to a year 13 class. The lesson was designed to make students understand trees and isomorphism in graphs a bit better.
We started by defining a tree, and discussed what makes a graph the same or different to another. Using people as nodes and skipping ropes for edges, we investigated the number of different trees with 3 people, then 4 people. Then I asked the question: How many different trees you can make with n people? The students worked in two large groups of 8. It worked really well; the students had fun, worked together and were involved in the task. They started by attempting to solve the problem in the usual haphazard way. However, the students soon realised the need to describe and label the nodes in terms of valencies. Through this, they noticed how adding a node (and an edge) increases the total valency of the graph by 2. As they progressed through the task, they gradually began to find a method for finding all the trees for a given number of nodes. It was an excellent exercise in solving a problem systematically. 

Have a look at my thoughts on this task here.
Extension: Create squares of people. What is the smallest number of edges you need for a nxn square to keep everyone connected?
Extension: Create squares of people. What is the smallest number of edges you need for a nxn square to keep everyone connected?
To follow this up, have a look at the link between hydrocarbons, isomers and trees here!