Answers.Body: <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-07T19:25:24.297Z
Answers.LastActivityDate: 2017-11-07T19:25:24.297Z
Answers.UserDisplayName: Meower68
Answers.Body: <p>I really like <a href="https://cseducators.stackexchange.com/a/3924/2068">Ben's answer</a>, but I wanted to add my two cents:</p>
  <p>Like Ben and others have mentioned, Conway's Game of Life provides a &quot;wow&quot; 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.</p>
  <p>On top of that, it leads to some pretty interesting more advanced topics, such as:</p>
  <p><strong>Emergence</strong></p>
  <p>From <a href="https://en.wikipedia.org/wiki/Emergence" rel="nofollow noreferrer">Wikipedia</a>:</p>
  <blockquote>
  <p>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.</p>
  <p>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.</p>
  </blockquote>
  <p>Imho, emergence is one of the coolest things about computer science.</p>
  <p><strong>Swarm Behavior</strong></p>
  <p>From emergence, you also get to talk about <a href="https://en.wikipedia.org/wiki/Swarm_behaviour" rel="nofollow noreferrer">swarm behavior</a>, including programs like:</p>
  <ul>
  <li><a href="https://en.wikipedia.org/wiki/Boids" rel="nofollow noreferrer">Boids</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms" rel="nofollow noreferrer">Ant colony optimization algorithms</a>.</li>
  <li><a href="https://en.wikipedia.org/wiki/Swarm_intelligence" rel="nofollow noreferrer">Swarm intelligence</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Particle_swarm_optimization" rel="nofollow noreferrer">Particle swarm optimization</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Artificial_bee_colony_algorithm" rel="nofollow noreferrer">Artificial bee colony algorithm</a></li>
  </ul>
  <p>The list goes on, and the related articles at the bottom of all of the above are a vertiable black hole of fascinating stuff.</p>
  <p><strong>Artificial Life</strong></p>
  <p>From <a href="https://en.wikipedia.org/wiki/Artificial_life" rel="nofollow noreferrer">Wikipedia</a>:</p>
  <blockquote>
  <p>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.</p>
  </blockquote>
  <p>From here you can talk about artificial intelligence, neural networks, machine learning, etc.</p>
  <p><strong>Cellular Automaton</strong></p>
  <p>The Game of Life is just one example of a <a href="https://en.wikipedia.org/wiki/Cellular_automaton" rel="nofollow noreferrer">cellular automaton</a>. There are a ton of other examples.</p>
  <p>You could use a <a href="https://en.wikipedia.org/wiki/Elementary_cellular_automaton" rel="nofollow noreferrer">1D cellular automaton</a> to introduce the concept to less experienced students.</p>
  <p><strong>Simulations</strong></p>
  <p>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.</p>
  <p>Do a search for &quot;cellular automata forest fires&quot; or &quot;cellular automata disease modelling&quot; for a ton of results.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-07T22:42:31.240Z
Answers.LastActivityDate: 2017-11-07T22:42:31.240Z
Answers.LastEditDate: 2020-06-18T08:36:57.023Z
Answers.UserDisplayName: Kevin Workman
Answers.Body: <p>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).</p>
  
  <p>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.  <a href="https://www.youtube.com/watch?v=My8AsV7bA94" rel="nofollow noreferrer">Here</a> is a video of a Turing Machine being run in GoL, and <a href="https://www.youtube.com/watch?v=vGWGeund3eA" rel="nofollow noreferrer">here</a> is a video of GoL simulating logic gates.    </p>
  
  <p>So, in my own classes, I use it in AP Computer Science. It's a <strong>great</strong> 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, <em>"oh, cool!"</em> moment later on when you show them that GoL is Turing Complete.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-08T09:03:24.017Z
Answers.Text: 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](https://codegolf.stackexchange.com/a/142673/194).
Answers.UserDisplayName: Peter Taylor
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-05T03:05:09.943Z
Answers.LastActivityDate: 2017-11-05T04:41:17.870Z
Answers.LastEditDate: 2017-11-05T04:41:17.870Z
Answers.UserDisplayName: Ben I.
Body: <p>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, <em>engaging</em> concepts I can use it for in the classroom.</p>
  
  <p>It comes up in my course (CS50 AP) as part of <a href="https://ap.cs50.net/curriculum/3/simulation/" rel="noreferrer">a lesson on simulations</a>. The objectives from the AP Computer Science Principles curriculum are as follows:</p>
  
  <ul>
  <li><strong>LO 2.3.1</strong>: Use models and simulations to represent phenomena.</li>
  <li><strong>LO 2.3.2</strong>: Use models and simulations to formulate, refine, and test hypotheses.</li>
  </ul>
  
  <p>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. </p>
  
  <p>Ultimately, what is the pedagogical value of Conway's Game of Life for a high school CS course?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-11-04T18:25:12.577Z
Comments.Text: 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.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-11-05T15:12:36.623Z
Comments.Text: 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.
Comments.UserDisplayName: wvxvw
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-11-05T23:10:46.847Z
Comments.Text: 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.
Comments.UserDisplayName: Buffy
Tags: <ap-cs-principles>
Title: What is the pedagogical value of Conway's Game of Life?
ThreadText: # What is the pedagogical value of Conway's Game of Life?
  
  (Asked by: username_0 on 2017-11-04)
  
  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](https://ap.cs50.net/curriculum/3/simulation/). 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?
  
  **Tags:** ap-cs-principles
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_2**: 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.  
  > **username_3**: 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.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_5 on 2017-11-07. Score: 2
  
  I really like [Ben's answer](https://cseducators.stackexchange.com/a/3924/2068), 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](https://en.wikipedia.org/wiki/Emergence):
  
  > 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](https://en.wikipedia.org/wiki/Swarm_behaviour), including programs like:
  
  * [Boids](https://en.wikipedia.org/wiki/Boids)
  * [Ant colony optimization algorithms](https://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms).
  * [Swarm intelligence](https://en.wikipedia.org/wiki/Swarm_intelligence)
  * [Particle swarm optimization](https://en.wikipedia.org/wiki/Particle_swarm_optimization)
  * [Artificial bee colony algorithm](https://en.wikipedia.org/wiki/Artificial_bee_colony_algorithm)
  
  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](https://en.wikipedia.org/wiki/Artificial_life):
  
  > 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](https://en.wikipedia.org/wiki/Cellular_automaton). There are a ton of other examples.
  
  You could use a [1D cellular automaton](https://en.wikipedia.org/wiki/Elementary_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.
  
  
  ---
  
  ### Answer by username_6 on 2017-11-05. Score: 2
  
  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](https://www.youtube.com/watch?v=My8AsV7bA94) is a video of a Turing Machine being run in GoL, and [here](https://www.youtube.com/watch?v=vGWGeund3eA) 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.
  
  > **Comments:**
  > **username_7**: 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](https://codegolf.stackexchange.com/a/142673/194).  
  
  ---
  
  ### Answer by username_4 on 2017-11-07. Score: 1
  
  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.
  
  
  ---
  
  