8
$\begingroup$

Lately I've come across Conway's Game of Life in a number of different arenas (articles, conferences, blogs, etc.). Last night I coded it up in C and was utterly mesmerized watching it. That being said, I'm trying to come up with one or two precise, concrete, engaging concepts I can use it for in the classroom.

It comes up in my course (CS50 AP) as part of a lesson on simulations. The objectives from the AP Computer Science Principles curriculum are as follows:

  • LO 2.3.1: Use models and simulations to represent phenomena.
  • LO 2.3.2: Use models and simulations to formulate, refine, and test hypotheses.

It is clear to me that the Game of Life works for reaching both of those objectives, but I get a sense that I'm missing something more that I could use it for. Keep in mind that these students are relatively new to computer science and programming as high school students.

Ultimately, what is the pedagogical value of Conway's Game of Life for a high school CS course?

$\endgroup$
  • $\begingroup$ Pedagogically it can help to form an interest. From a CS point of view, it shows emergent behaviour, that is complex behaviour emerges from simple rules. You can set it up to do things that are not codded into the rules, the behaviour emerges. I think that it is not 100% understood: there may be undiscovered patterns, with interesting behaviour. I think it is Turing complete. $\endgroup$ – ctrl-alt-delor Nov 4 '17 at 18:25
  • $\begingroup$ I'm not certain on what your audience would know when taking this course, but my understanding of importance of GoL is in illustrating a different system of computation, in asking what computation is (perhaps also showing other examples, like lambda calculus, or Horn clauses). I don't think GoL is a particularly good example of simulations. Also, while I'm aware of mixed reception received by Wolfram's book "New Kind of Science", I think it would be still worthwhile to mention it when talking about GoL. $\endgroup$ – wvxvw Nov 5 '17 at 15:12
  • $\begingroup$ Conway is a bit subtle to program correctly. This may be a plus. If you change the neighbor of a cell before you evaluate that cell you don't have a true representation. So you can, for example, talk about two generations. The first creates the second and then reference switching resets the second to the first. If you aren't careful you can get chaos that doesn't match the literature. Those two generations are like paging and off-screen bitmaps conceptually. $\endgroup$ – Buffy Nov 5 '17 at 23:10
2
$\begingroup$

I really like Ben's answer, but I wanted to add my two cents:

Like Ben and others have mentioned, Conway's Game of Life provides a "wow" factor that's useful in and of itself. It's simple to understand, and easily leads to pretty patterns and cool animations. This inspires students to want to play around with the code, which by itself is pretty valuable.

On top of that, it leads to some pretty interesting more advanced topics, such as:

Emergence

From Wikipedia:

In philosophy, systems theory, science, and art, emergence is a phenomenon whereby larger entities arise through interactions among smaller or simpler entities such that the larger entities exhibit properties the smaller/simpler entities do not exhibit.

Emergence plays a central role in theories of integrative levels and of complex systems. For instance, the phenomenon of life as studied in biology is an emergent property of chemistry, and psychological phenomena emerge from the neurobiological phenomena of living things.

Imho, emergence is one of the coolest things about computer science.

Swarm Behavior

From emergence, you also get to talk about swarm behavior, including programs like:

The list goes on, and the related articles at the bottom of all of the above are a vertiable black hole of fascinating stuff.

Artificial Life

From Wikipedia:

Artificial life (often abbreviated ALife or A-Life) is a field of study wherein researchers examine systems related to natural life, its processes, and its evolution, through the use of simulations with computer models, robotics, and biochemistry.

From here you can talk about artificial intelligence, neural networks, machine learning, etc.

Cellular Automaton

The Game of Life is just one example of a cellular automaton. There are a ton of other examples.

You could use a 1D cellular automaton to introduce the concept to less experienced students.

Simulations

The game of life (and other cellular automata) also has practical applications, such as being used in simulations of bacteria, epidemic / disease outbreak, and forest fires.

Do a search for "cellular automata forest fires" or "cellular automata disease modelling" for a ton of results.

$\endgroup$
1
$\begingroup$

I'm not sure that AP CS Principles has a lot of direct relation to Conway's Game of Life, but nevertheless there is real value in introducing it, and it ultimately features pretty prominently in my program. First off, as you pointed out, it is plenty of fun to watch, so you can spend some time creating glider guns and exploders. You can ask the students to see if they can think up patterns that stay completely still (such as the 2x2 box), or patterns that flip back and forth (such as the line of 3).

But, of course, the system's really interesting properties are at higher levels. It serves as a good introduction to the mathematicians Conway (who simplified it to its current state) and Von Neumann (who originally designed the concept), both luminaries of our field. And most importantly, Conway's Game of Life is a great illustration of emergent complexity, and is also provably Turing Complete. Here is a video of a Turing Machine being run in GoL, and here is a video of GoL simulating logic gates.

So, in my own classes, I use it in AP Computer Science. It's a great lab for arrays of arrays in APCS (not sure about Principles), and if you are to continue on into computability theory in a later course, letting kids play with it in the earlier class sets up this totally beautiful hook for a really big, "oh, cool!" moment later on when you show them that GoL is Turing Complete.

$\endgroup$
  • $\begingroup$ If you want an even more impressive demonstration of GoL simulating logic, a group of people on the Code Golf and Programming Puzzles stack implemented Tetris. $\endgroup$ – Peter Taylor Nov 8 '17 at 9:03
1
$\begingroup$

I would use it as an introduction / teaser about Finite Element Analysis. FEA is commonly used to simulate air / water flow in / around various shapes. Like GoL, the math for each cell is fairly straightforward but the resulting behaviors observed are much more complex. FEA is also used to map / model wave propagation through various fluids. On a more coarse-grained level, this can simulate traffic jams in heavy traffic; one person taps their brakes in fast-moving, high-density traffic and you end up with a traffic jam, even if there are no accidents. This might be something you could simulate on a classroom computer using cellular automata similar, but not identical, to GoL.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.