Coding Dojo: 
Roman Numerals 
July 2014 
Peter Kofler, ‘Code Cop’ 
@codecopkofler 
www.code-cop.org 
Copyright Peter Kofler, licensed under CC-BY.
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Peter Kofler 
• Ph.D. (Appl. Math.) 
• Professional Software 
Developer for 15 years 
• “fanatic about code quality” 
• I help development teams
Coding Dojo? 
Expectations?
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Coding Dojo Mindset 
● Safe place outside 
work 
● We are here to learn 
● Need to slow down 
● Focus on doing it right 
● Collaborative Game
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Rules 
● Collaborative = Pair Programming 
● “Randori“ (pairing on the projector) 
● or programming in pairs 
● Test Driven Development 
● think about test cases 
● write the test first
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Constraints 
● Challenges during a dojo or coderetreat. 
● Moving to the extreme is a way of learning 
● Examples 
● Missing Tool (No Mouse, …) 
● Missing Feature (No IFs, …)
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Dojo Structure 
● Introduction 15' 
● Coding 45' 
● Interim (Retrospective) 15' 
● Break 10' 
● Coding 45' 
● Retrospective 15'
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Assignment
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Roman Numerals 
● http://en.wikipedia.org/wiki/Roman_numerals 
“standard”, subtractive form, 1 – 3999 
● convert normal (Arabic) numbers to Roman 
numerals: 
– 1 → I 
– 4 → IV 
– 7 → VII 
– 10 → X
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Prepare 
● Find a pair. 
● Choose a programming language. 
● Set up the environment. 
● Create new project. 
● Add testing framework. 
● Check Wikipedia for requirements. 
● Implement requirements.
Don't Focus on 
Getting it Done. 
F0cus on Doing 
It Perfectly.
→ Practice
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Roman Numerals II 
● http://en.wikipedia.org/wiki/Roman_numerals 
“standard”, subtractive form, 1 – 3999 
● convert Roman numerals to normal (Arabic) 
numbers: 
– I → 1 
– IV → 4 
– VII → 7 
– X → 10
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Constraint: Ping-Pong 
● A writes a test and sees that it fails. 
● B writes the code needed to pass the test. 
● B refactors the code as needed. 
● B writes next test and sees that it fails. 
● A writes the code needed to pass the test. 
● And so on.
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Algorithm Considerations 
● No loops. 
● No table/map/switch for literal lookup. 
● Subtractive form is not a literal.
→ Practice
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Short Closing Circle 
● How did it work out? 
● How do you feel? 
● What did you 
learn and want 
to share with 
the group?
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Full Closing Circle 
● What did you learn today? 
● What surprised you today? 
● What will you do 
differently in the 
future?
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Coding Dojo Vienna 
● Biweekly Coding Dojo in Vienna 
● Every other Wednesday 6PM 
● Changing locations 
● Follow 
#CodingDojoVie 
http://codingdojovie.github.io/
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Global Day of Code Retreat 
● A world-wide event celebrating passion 
and software craftsmanship. 
● GDCR 2014: 
15th November 
● Follow #GDCR14 
http://globalday.coderetreat.org/
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Peter Kofler 
@codecopkofler 
www.code-cop.org
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
CC Images 
● Corner 
https://www.flickr.com/photos/midatlanticbulldogrescue/160531996 
● Dojo http://www.flickr.com/photos/49715404@N00/3267627038/ 
● Todos http://www.flickr.com/photos/kylesteeddesign/3724074594/ 
● Date https://www.flickr.com/photos/patmilphotos/7694314328 
● Wants you http://www.flickr.com/photos/shutter/105497713/

Coding Dojo: Roman Numerals (2014)

  • 1.
    Coding Dojo: RomanNumerals July 2014 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  • 2.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Peter Kofler • Ph.D. (Appl. Math.) • Professional Software Developer for 15 years • “fanatic about code quality” • I help development teams
  • 3.
  • 4.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Coding Dojo Mindset ● Safe place outside work ● We are here to learn ● Need to slow down ● Focus on doing it right ● Collaborative Game
  • 5.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Rules ● Collaborative = Pair Programming ● “Randori“ (pairing on the projector) ● or programming in pairs ● Test Driven Development ● think about test cases ● write the test first
  • 6.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Constraints ● Challenges during a dojo or coderetreat. ● Moving to the extreme is a way of learning ● Examples ● Missing Tool (No Mouse, …) ● Missing Feature (No IFs, …)
  • 7.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Dojo Structure ● Introduction 15' ● Coding 45' ● Interim (Retrospective) 15' ● Break 10' ● Coding 45' ● Retrospective 15'
  • 8.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Assignment
  • 9.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Roman Numerals ● http://en.wikipedia.org/wiki/Roman_numerals “standard”, subtractive form, 1 – 3999 ● convert normal (Arabic) numbers to Roman numerals: – 1 → I – 4 → IV – 7 → VII – 10 → X
  • 10.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Prepare ● Find a pair. ● Choose a programming language. ● Set up the environment. ● Create new project. ● Add testing framework. ● Check Wikipedia for requirements. ● Implement requirements.
  • 11.
    Don't Focus on Getting it Done. F0cus on Doing It Perfectly.
  • 12.
  • 13.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Roman Numerals II ● http://en.wikipedia.org/wiki/Roman_numerals “standard”, subtractive form, 1 – 3999 ● convert Roman numerals to normal (Arabic) numbers: – I → 1 – IV → 4 – VII → 7 – X → 10
  • 14.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Constraint: Ping-Pong ● A writes a test and sees that it fails. ● B writes the code needed to pass the test. ● B refactors the code as needed. ● B writes next test and sees that it fails. ● A writes the code needed to pass the test. ● And so on.
  • 15.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Algorithm Considerations ● No loops. ● No table/map/switch for literal lookup. ● Subtractive form is not a literal.
  • 16.
  • 17.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Short Closing Circle ● How did it work out? ● How do you feel? ● What did you learn and want to share with the group?
  • 18.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Full Closing Circle ● What did you learn today? ● What surprised you today? ● What will you do differently in the future?
  • 19.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Coding Dojo Vienna ● Biweekly Coding Dojo in Vienna ● Every other Wednesday 6PM ● Changing locations ● Follow #CodingDojoVie http://codingdojovie.github.io/
  • 20.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Global Day of Code Retreat ● A world-wide event celebrating passion and software craftsmanship. ● GDCR 2014: 15th November ● Follow #GDCR14 http://globalday.coderetreat.org/
  • 21.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY Peter Kofler @codecopkofler www.code-cop.org
  • 22.
    PETER KOFLER, CODE-COP.ORGFANATIC ABOUT CODE QUALITY CC Images ● Corner https://www.flickr.com/photos/midatlanticbulldogrescue/160531996 ● Dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● Todos http://www.flickr.com/photos/kylesteeddesign/3724074594/ ● Date https://www.flickr.com/photos/patmilphotos/7694314328 ● Wants you http://www.flickr.com/photos/shutter/105497713/