Hidden Slide Slower
Hidden Slide Slower
November 14, 2015, Skopje
Global Day of Coderetreat
@dnasevic
Slide 2
Slide 2 text
Hidden Slide Slower
Hacklab Kika 2011
Slide 3
Slide 3 text
Hidden Slide Slower
Hacklab Kika 2012
Slide 4
Slide 4 text
Hidden Slide Slower
MediaLab 2013
Slide 5
Slide 5 text
Hidden Slide Slower
Ever-Near 2014
Slide 6
Slide 6 text
Sponsor + 2015 Host
Hidden Slide Slower
Slide 7
Slide 7 text
What is Coderetreat?
Hidden Slide Slower
Codereatreat is a day-long, intensive practice event,
focusing on the fundamentals of software
development and design.
●
Experiment in Safe environment
●
Deliberate Practice
●
Get Out of the Comport Zone
Slide 8
Slide 8 text
Format
Hidden Slide Slower
●
Problem: Conway's Game of Life
●
Pair Programming
●
Length of Session: 45 minutes
●
Prefer using Test-Driven Development (TDD)
●
After each session, pairs should be swapped
●
After each session, code must be deleted
Slide 9
Slide 9 text
Goals for the day
Hidden Slide Slower
●
Language agnostic
●
Try not to finish the problem
●
Try learn new things
●
Focus on practice and experiment
●
Have Fun
Slide 10
Slide 10 text
Hidden Slide Slower
●
Devised by the British mathematician
John Horton Conway in 1970
●
Zero-player game
●
Initial state
●
Evolves based on 4 rules
Conway's Game of Life
Slide 11
Slide 11 text
Hidden Slide Slower
Examples
Slide 12
Slide 12 text
Hidden Slide Slower
Seal
Slide 13
Slide 13 text
Hidden Slide Slower
Any live cell with fewer than two live neighbours
dies, as if caused by under-population.
Rule 1
■
Slide 14
Slide 14 text
Hidden Slide Slower
■ ■
■
■ ■
■
Any live cell with two or three live neighbours
lives on to the next generation.
Rule 2
Slide 15
Slide 15 text
Hidden Slide Slower
■ ■
■ ■
■
■ ■
■
■
Any live cell with more than three live neighbours
dies, as if by overcrowding.
Rule 3
Slide 16
Slide 16 text
Hidden Slide Slower
■ ■
■
■
■
Any dead cell with exactly three live neighbours
becomes a live cell, as if by reproduction.
Rule 4
Slide 17
Slide 17 text
Hidden Slide Slower
■
■
■
■ ■ ■
Blinker Example
Slide 18
Slide 18 text
Good code
Hidden Slide Slower
What are the characteristics of good code?
Slide 19
Slide 19 text
Static qualities
Hidden Slide Slower
●
Easy to read and understand what it does
●
Easy to find the code to change
●
Easy to change
1. Getting familiar with the problem
2. TDD
3. Ping-Pong Pairing
4. Methods with max 4 lines and no primitives across
method boundaries
5. No in-method branching statements
6. No return values
Constraints
Hidden Slide Slower
Slide 23
Slide 23 text
●
What, if anything, did you learn today?
●
What, if anything, surprised you today?
●
What, if anything, will you do differently moving forward?
Retrospective
Hidden Slide Slower