SlideShare a Scribd company logo
1 of 42
Coderetreat
Matteo Baglini
Freelance Software Developer (and so on...)
Coders TUG & DotNetToscana Co-Founder
@matteobaglini
matteo.baglini@gmail.com
by Coders TUG
Coders Tuscany User Group è una
community di sviluppatori
appassionati che credono nel
collaborative learning.
Il nostro obiettivo è creare un network
di coders che desiderino alimentare la
propria passione condividendo le proprie
Learning Through Sharing
Conosciamoci
Come ti chiami?
Da dove vieni?
Che lavoro fai?
Obiettivi della giornata?
Test-Driven
Development
Extreme Programming
Cost of Change
Barry Boehm
Kent Beck
Clean code that works
Simple Design
1. Passes all the tests
2. Contains no duplication
3. Express developer intent
4. Contains as little code as possible
The team keeps the design exactly suited for the
current functionality of the system.
(In this order)
“TDD doesn't drive good design. TDD gives you
immediate feedback about what is likely to be
bad design. If a test is hard to write, if a test is
non-deterministic, if a test is slow, then
something is wrong with the design.”
Kent Beck
Mechanics
TDD Rules
• Write new code only if an automated test has failed
• Eliminate duplication
TDD Phases
1. Write a test.
2. Make it compile.
3. Run it to see that it
fails.
4. Make it run.
5. Remove duplication.
The different phases have different purposes. They
call for different styles of solution, different
aesthetic viewpoints. The first three phases need to
go by quickly, so we get to a known state with the
new functionality. We can commit any number of
sins to get there, because speed trumps design, just
for that brief moment.
Now I'm worried. I've given you a license to abandon
all the principles of good design. [cut] The cycle is
not complete. A four-legged Aeron chair falls over.
The first four steps of the cycle won't work without
the fifth. Good design at good times. Make it
run, make it right.
There, I feel better. Now I'm sure you won't show
anyone except your partner your code until you've
removed the duplication.
Kent Beck, Test-Driven Development by Example
Clean code that works
Make it run, make it right
@iacoware
Learn TDD
It's all about Deliberate
Practice
The secret is life-long period of deliberate effort to improve
performance in a specific domain. The secret is what researcher
calls Deliberate Practice.
Structure of the day
10:00-11:00=>Session#1
11:00-12:00=>Session#2
12:00-13:00=>Session#3
13:00-14:30=>Lunch
14:30-15:30=>Session#4
15:30-16:30=>Session#5
16:30-17:15=>Session#6
17:15-17:45=>Retrospective
Structure of session
45’ Coding
10’ Retrospective
5’ Break
Pair Programming
Test-Driven Development
Simple Design
1. Passes all the tests
2. Contains no duplication
3. Express developer intent
4. Contains as little code as possible
The team keeps the design exactly suited for the
current functionality of the system.
(In this order)
Change Partner
Delete Your Code
The Game of Life
The Game of Life is a cellular
automaton devised by the
British mathematician John
Conway in 1970.
It’s a zero-player game.
You create an initial state
and watch how it evolves.
The universe Game of Life is an
infinite 2D grid of square
cells, each of which is in one of
two possible states, alive or
dead.
At each
generation, ev
ery cell
interacts with
its eight
neighbours, fo
llowing three
rules.
Any dead cell with exactly
three live neighbours becomes
a live cell, as if by
reproduction.
Any live cell with two or
three live neighbours lives on
to the next generation.
Otherwise, the cell dies from
either loneliness or
overcrowding.
Depending on how it's
seeded, the game board
exhibits remarkable, very
lifelike, behavior. Like a
glider.
The Game of Life demonstrates
emergent behavior.
The behavior of the system as a whole
can't be predicted solely by looking
at the behavior of the single objects
that comprise the system.
Coderetreat @ CodersTUG

More Related Content

What's hot

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Lim Chanmann
 

What's hot (19)

Is Xp still extreme?
Is Xp still extreme?Is Xp still extreme?
Is Xp still extreme?
 
General Tips
General TipsGeneral Tips
General Tips
 
Tdd
TddTdd
Tdd
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021
 
TDD & Effective Software Development
TDD & Effective Software DevelopmentTDD & Effective Software Development
TDD & Effective Software Development
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Effective QA in Scrum
Effective QA in ScrumEffective QA in Scrum
Effective QA in Scrum
 
Treinamento TDD
Treinamento TDDTreinamento TDD
Treinamento TDD
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOps
 
Test driven development(tdd)
Test driven development(tdd)Test driven development(tdd)
Test driven development(tdd)
 
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
Front-end Testing (manual, automated, you name it) - Erich Jagomägis - Develo...
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skills
 
A Software Development Approach to Help You End Up with the Product You Reall...
A Software Development Approach to Help You End Up with the Product You Reall...A Software Development Approach to Help You End Up with the Product You Reall...
A Software Development Approach to Help You End Up with the Product You Reall...
 
TDD = bra design?
TDD = bra design?TDD = bra design?
TDD = bra design?
 
Importance of test automation, excuses and TDD introduction
Importance of test automation, excuses and TDD introductionImportance of test automation, excuses and TDD introduction
Importance of test automation, excuses and TDD introduction
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018
 
Please don't test your product - Agile Testing
Please don't test your product - Agile TestingPlease don't test your product - Agile Testing
Please don't test your product - Agile Testing
 
Introducing Test Driven Development to an existing environment
Introducing Test Driven Development to an existing environmentIntroducing Test Driven Development to an existing environment
Introducing Test Driven Development to an existing environment
 
The Holistic Programmer
The Holistic ProgrammerThe Holistic Programmer
The Holistic Programmer
 

Similar to Coderetreat @ CodersTUG

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
bhochhi
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 

Similar to Coderetreat @ CodersTUG (20)

TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
TDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - OpensouthcodeTDD - Seriously, try it! - Opensouthcode
TDD - Seriously, try it! - Opensouthcode
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Tdd
TddTdd
Tdd
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
What is xp
What is xpWhat is xp
What is xp
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Test driven development and react js application go hand in hand
Test driven development and react js application go hand in handTest driven development and react js application go hand in hand
Test driven development and react js application go hand in hand
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
TDD, the way to better software | Dan Ursu | CodeWay 2015
TDD, the way to better software | Dan Ursu | CodeWay 2015TDD, the way to better software | Dan Ursu | CodeWay 2015
TDD, the way to better software | Dan Ursu | CodeWay 2015
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Pairing w developers_stpconpics
Pairing w developers_stpconpicsPairing w developers_stpconpics
Pairing w developers_stpconpics
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Pair programming and introduction to TDD
Pair programming and introduction to TDDPair programming and introduction to TDD
Pair programming and introduction to TDD
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 

More from Matteo Baglini

Legacy Coderetreat Bologna @ CodersTUG
Legacy Coderetreat Bologna @ CodersTUGLegacy Coderetreat Bologna @ CodersTUG
Legacy Coderetreat Bologna @ CodersTUG
Matteo Baglini
 
Approval Tests @ MiniIAD
Approval Tests @ MiniIADApproval Tests @ MiniIAD
Approval Tests @ MiniIAD
Matteo Baglini
 
Approval Tests @ CodersTUG
Approval Tests @ CodersTUGApproval Tests @ CodersTUG
Approval Tests @ CodersTUG
Matteo Baglini
 
Modern JavaScript Development @ DotNetToscana
Modern JavaScript Development @ DotNetToscanaModern JavaScript Development @ DotNetToscana
Modern JavaScript Development @ DotNetToscana
Matteo Baglini
 
The NoSQL movement @ DotNetToscana
The NoSQL movement @ DotNetToscanaThe NoSQL movement @ DotNetToscana
The NoSQL movement @ DotNetToscana
Matteo Baglini
 
Key-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscanaKey-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscana
Matteo Baglini
 

More from Matteo Baglini (11)

Writing Good Tests
Writing Good TestsWriting Good Tests
Writing Good Tests
 
Legacy Coderetreat Bologna @ CodersTUG
Legacy Coderetreat Bologna @ CodersTUGLegacy Coderetreat Bologna @ CodersTUG
Legacy Coderetreat Bologna @ CodersTUG
 
Approval Tests @ MiniIAD
Approval Tests @ MiniIADApproval Tests @ MiniIAD
Approval Tests @ MiniIAD
 
VS13 - Approval Tests: cosa, come, quando, perché? @ CDays
VS13 - Approval Tests: cosa, come, quando, perché? @ CDaysVS13 - Approval Tests: cosa, come, quando, perché? @ CDays
VS13 - Approval Tests: cosa, come, quando, perché? @ CDays
 
Approval Tests @ CodersTUG
Approval Tests @ CodersTUGApproval Tests @ CodersTUG
Approval Tests @ CodersTUG
 
RESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscanaRESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscana
 
Modern JavaScript Development @ DotNetToscana
Modern JavaScript Development @ DotNetToscanaModern JavaScript Development @ DotNetToscana
Modern JavaScript Development @ DotNetToscana
 
Async: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDaysAsync: scalabilità e responsiveness senza pari! @ CDays
Async: scalabilità e responsiveness senza pari! @ CDays
 
The NoSQL movement @ DotNetToscana
The NoSQL movement @ DotNetToscanaThe NoSQL movement @ DotNetToscana
The NoSQL movement @ DotNetToscana
 
Key-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscanaKey-value databases in practice Redis @ DotNetToscana
Key-value databases in practice Redis @ DotNetToscana
 
Asynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscanaAsynchronous Programming Lab @ DotNetToscana
Asynchronous Programming Lab @ DotNetToscana
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Recently uploaded (20)

WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 

Coderetreat @ CodersTUG

  • 1. Coderetreat Matteo Baglini Freelance Software Developer (and so on...) Coders TUG & DotNetToscana Co-Founder @matteobaglini matteo.baglini@gmail.com by Coders TUG
  • 2. Coders Tuscany User Group è una community di sviluppatori appassionati che credono nel collaborative learning. Il nostro obiettivo è creare un network di coders che desiderino alimentare la propria passione condividendo le proprie Learning Through Sharing
  • 3. Conosciamoci Come ti chiami? Da dove vieni? Che lavoro fai? Obiettivi della giornata?
  • 6. Cost of Change Barry Boehm Kent Beck
  • 8. Simple Design 1. Passes all the tests 2. Contains no duplication 3. Express developer intent 4. Contains as little code as possible The team keeps the design exactly suited for the current functionality of the system. (In this order)
  • 9. “TDD doesn't drive good design. TDD gives you immediate feedback about what is likely to be bad design. If a test is hard to write, if a test is non-deterministic, if a test is slow, then something is wrong with the design.” Kent Beck
  • 11. TDD Rules • Write new code only if an automated test has failed • Eliminate duplication
  • 12. TDD Phases 1. Write a test. 2. Make it compile. 3. Run it to see that it fails. 4. Make it run. 5. Remove duplication. The different phases have different purposes. They call for different styles of solution, different aesthetic viewpoints. The first three phases need to go by quickly, so we get to a known state with the new functionality. We can commit any number of sins to get there, because speed trumps design, just for that brief moment. Now I'm worried. I've given you a license to abandon all the principles of good design. [cut] The cycle is not complete. A four-legged Aeron chair falls over. The first four steps of the cycle won't work without the fifth. Good design at good times. Make it run, make it right. There, I feel better. Now I'm sure you won't show anyone except your partner your code until you've removed the duplication. Kent Beck, Test-Driven Development by Example
  • 13. Clean code that works Make it run, make it right
  • 16.
  • 17.
  • 18.
  • 19. It's all about Deliberate Practice The secret is life-long period of deliberate effort to improve performance in a specific domain. The secret is what researcher calls Deliberate Practice.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Structure of the day 10:00-11:00=>Session#1 11:00-12:00=>Session#2 12:00-13:00=>Session#3 13:00-14:30=>Lunch 14:30-15:30=>Session#4 15:30-16:30=>Session#5 16:30-17:15=>Session#6 17:15-17:45=>Retrospective
  • 26. Structure of session 45’ Coding 10’ Retrospective 5’ Break
  • 27.
  • 30. Simple Design 1. Passes all the tests 2. Contains no duplication 3. Express developer intent 4. Contains as little code as possible The team keeps the design exactly suited for the current functionality of the system. (In this order)
  • 33. The Game of Life
  • 34. The Game of Life is a cellular automaton devised by the British mathematician John Conway in 1970. It’s a zero-player game. You create an initial state and watch how it evolves.
  • 35. The universe Game of Life is an infinite 2D grid of square cells, each of which is in one of two possible states, alive or dead.
  • 36. At each generation, ev ery cell interacts with its eight neighbours, fo llowing three rules.
  • 37. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
  • 38. Any live cell with two or three live neighbours lives on to the next generation.
  • 39. Otherwise, the cell dies from either loneliness or overcrowding.
  • 40. Depending on how it's seeded, the game board exhibits remarkable, very lifelike, behavior. Like a glider.
  • 41. The Game of Life demonstrates emergent behavior. The behavior of the system as a whole can't be predicted solely by looking at the behavior of the single objects that comprise the system.