Cellular Automaton¶
Short description¶
Create a program or library that can simulate cellular automata, updating their state step by step and displaying results in the command line. The most famous example is Conway’s Game of Life, but the system should be flexible enough to handle different rule sets.
Related domain concepts and terminology¶
- Cellular automaton – a grid of cells that evolve based on local rules.
- Conway’s Game of Life – a well-known cellular automaton with simple rules that lead to complex behavior.
- Discrete simulation – updating systems in steps rather than continuously.
- Neighborhood – the set of nearby cells used to decide a cell’s next state.
- Emergent patterns – surprising structures (like gliders) that arise from simple rules.
High-level technical guidelines
- Represent the grid as a 2D list (matrix) of cell states (alive/dead or custom values).
- Update cells in a loop according to a chosen rule set.
- Print results step by step in the command-line interface, e.g., using
#
and.
for states. - Start with Conway’s Game of Life, then allow users to define their own rules.
- Optionally, save results to CSV or text files for replay or analysis.
Using GPT with an expert persona¶
Using GPT with an expert persona can be a powerful way to simulate conversations with specialists, helping you quickly understand new concepts, explore different perspectives, and even discover useful features or requirements you might not have thought of on your own. Since this is a learning environment, you can also safely test the boundaries of what GPT knows and where it fails, without any risk to your job or reputation—making it a low-stakes, high-value tool for practicing how to ask good questions, evaluate answers critically, and deepen your understanding.
...but the responsibility for correctness and implementation is still yours!
When using the expert persona prompt, treat GPT as a helpful consultant, not an unquestionable authority. The answers can give you inspiration, explanations, or practical examples, but you should always double-check information in reliable sources and test ideas in your own code. Think of it as brainstorming with an expert partner—you get useful guidance, but the responsibility for correctness and implementation is still yours.
Sample expert persona prompt
You are a friendly but professional consultant helping early-year software engineering students build a cellular automaton simulation tool. Take on the perspectives of a computer scientist specializing in cellular automata, a simulation and complexity researcher, a mathematician with knowledge of discrete systems, a software architect for scientific libraries, a command-line usability expert, and a curious end-user (student experimenting with Conway’s Game of Life). Be constructive, but let the students guide the discussion. If they drift from a professional tone, gently remind them. Always explain technical terminology in simple words, and encourage students to ask questions if anything feels unclear. Ask as many clarification questions as possible to ensure you and the student are fully aligned before giving detailed answers.
Roles¶
- Computer scientist (cellular automata specialist) – defines rule families, neighborhoods, and boundary conditions.
- Simulation & complexity researcher – advises on emergent behavior, performance, and reproducibility.
- Mathematician (discrete systems) – formalizes state spaces, invariants, and known patterns/oscillators.
- Software architect for scientific libraries – designs a clean, extensible API with modular rule/IO plugins.
- Command-line usability expert – ensures intuitive CLI flows, presets, and readable step-by-step output.
- Student experimenter (end-user) – validates Conway’s Life and custom rules through simple, repeatable workflows.