SlideShare a Scribd company logo
Coding Dojo: 
Bank OCR 
Austrian Institute of Technology 
September 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 
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 
Bank OCR 
● You work for a bank, which has a machine to assist in 
reading letters. The machine scans the paper 
documents, and produces a file with a number of 
entries which each look like this: 
····_··_·····_··_··_··_··_· 
··|·_|·_||_||_·|_···||_||_| 
··||_··_|··|·_||_|··||_|·_| 
··························· 
● Each entry is 4 lines long, each line has 27 characters. 
The first 3 lines contain an account number written 
using pipes and underscores, and the fourth line 
is blank. Each account number should have 9 digits, 
all of which should be in the range 1-9.
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Bank OCR 
● Write a program that can take this file 
and parse it into actual account 
numbers. 
● Find a pair. 
● Choose a programming language. 
● Set up the environment. 
● Start with creating a test.
Don't Focus on 
Getting it Done. 
F0cus on Doing 
It Perfectly.
→ Practice
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
Bank OCR considerations 
● Which algorithm did you chose? 
● How readable are your test cases? (Can you 
look at them and easily see which digits are being parsed?) 
● How do you match digits? (Are you using low 
level Ifs or high level patterns to match?) 
● Functional or imperative? (Do you use 
iteration or recursion?) 
● What if the input changes? (What about the 
style of digits, number of digits, ...)
→ Practice
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
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 
Peter Kofler 
@codecopkofler 
www.code-cop.org
PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY 
CC Images 
● Bank https://www.flickr.com/photos/bigmacsc99/4325336251 
● Dojo 
http://www.flickr.com/photos/49715404@N00/3267627038/ 
● Todos 
http://www.flickr.com/photos/kylesteeddesign/3724074594/ 
● Wants you http://www.flickr.com/photos/shutter/105497713/

More Related Content

PDF
Brutal Coding Constraints (ITAKE 2017)
PDF
Coding Dojo: Bank OCR Outside-In (2015)
PDF
Refactoring the Tennis Kata v2 (2016)
PDF
Coding Dojo Object Calisthenics (2016)
PDF
Designing Test Cases for the Gilded Rose Kata v3 (2016)
PDF
Deliberate Practice (Agile Slovenia 2015)
PDF
Coding Dojo: Asynchronous Clock-In (2016)
PDF
Pair Programming (2015)
Brutal Coding Constraints (ITAKE 2017)
Coding Dojo: Bank OCR Outside-In (2015)
Refactoring the Tennis Kata v2 (2016)
Coding Dojo Object Calisthenics (2016)
Designing Test Cases for the Gilded Rose Kata v3 (2016)
Deliberate Practice (Agile Slovenia 2015)
Coding Dojo: Asynchronous Clock-In (2016)
Pair Programming (2015)

What's hot (20)

PDF
Clean Readable Specifications (ETC 2016)
PDF
GDCR15 in Las Palmas, Gran Canaria
PDF
Mob Programming (2016)
PDF
Code Retreat Venice (2016)
PDF
Coding Dojo: Functional Calisthenics (2016)
PDF
Deliberate Practice, New Learning Styles (2015)
PDF
Refactoring the Tennis Kata (2013)
PDF
Extract Method Refactoring Workshop (2016)
PDF
Coding Dojo: Roman Numerals (2014)
PDF
Coding Dojo: Data Munging (2016)
PDF
Coding Dojo: Mars Rover (2014)
PDF
JUnit Boot Camp (GeeCON 2016)
PDF
Coding Dojo: Baby Steps Push Challenge (2021)
PDF
Java User Groups in Austria (2013)
PDF
Designing Test Cases for the Gilded Rose Kata v2 (2015)
ODP
Coding Dojo - Refactoring Tennis Kata
PDF
Coding Dojo: Naming with Dices (2021)
PDF
TDD as if You Meant It (2013)
PDF
Outside-in Test Driven Development - the London School of TDD
PDF
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Clean Readable Specifications (ETC 2016)
GDCR15 in Las Palmas, Gran Canaria
Mob Programming (2016)
Code Retreat Venice (2016)
Coding Dojo: Functional Calisthenics (2016)
Deliberate Practice, New Learning Styles (2015)
Refactoring the Tennis Kata (2013)
Extract Method Refactoring Workshop (2016)
Coding Dojo: Roman Numerals (2014)
Coding Dojo: Data Munging (2016)
Coding Dojo: Mars Rover (2014)
JUnit Boot Camp (GeeCON 2016)
Coding Dojo: Baby Steps Push Challenge (2021)
Java User Groups in Austria (2013)
Designing Test Cases for the Gilded Rose Kata v2 (2015)
Coding Dojo - Refactoring Tennis Kata
Coding Dojo: Naming with Dices (2021)
TDD as if You Meant It (2013)
Outside-in Test Driven Development - the London School of TDD
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Ad

Viewers also liked (6)

DOC
Ocr code
PPT
Internet banking
PPT
Data Scanning Devices
PPT
OCR
PPT
ocr with N N
PPT
optical character recognition system
Ocr code
Internet banking
Data Scanning Devices
OCR
ocr with N N
optical character recognition system
Ad

Similar to Coding Dojo: Bank OCR (2014) (15)

PDF
Deliberate Practice (2014)
PDF
Coding Dojo: String Calculator (2013)
PDF
Coding Dojo: Tic-Tac-Toe (2014)
PDF
Coding Dojo: Fun with Tic-Tac-Toe (2014)
PDF
Pair Programming (2014)
PDF
Designing Test Cases for the Gilded Rose Kata (2013)
PDF
Coding Dojo: Adding Tests to Legacy Code (2014)
PDF
Coding Dojo: Baby Steps (2014)
PDF
Code Quality Assurance v4 (2013)
PDF
The Brutal Refactoring Game (2013)
PDF
Prime Factors Code Kata - Practicing TDD (2014)
PDF
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
PDF
Software engineering going beyond the black belt
PDF
TDC 2020 - Implementing a Mini-Language
PDF
How to code in the XXI century without losing your head
Deliberate Practice (2014)
Coding Dojo: String Calculator (2013)
Coding Dojo: Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Pair Programming (2014)
Designing Test Cases for the Gilded Rose Kata (2013)
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Baby Steps (2014)
Code Quality Assurance v4 (2013)
The Brutal Refactoring Game (2013)
Prime Factors Code Kata - Practicing TDD (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Software engineering going beyond the black belt
TDC 2020 - Implementing a Mini-Language
How to code in the XXI century without losing your head

Recently uploaded (20)

PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
KodekX | Application Modernization Development
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Big Data Technologies - Introduction.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KodekX | Application Modernization Development
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Reach Out and Touch Someone: Haptics and Empathic Computing
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
MIND Revenue Release Quarter 2 2025 Press Release
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Big Data Technologies - Introduction.pptx
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology

Coding Dojo: Bank OCR (2014)

  • 1. Coding Dojo: Bank OCR Austrian Institute of Technology September 2014 Peter Kofler, ‘Code Cop’ @codecopkofler www.code-cop.org Copyright Peter Kofler, licensed under CC-BY.
  • 2. 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
  • 4. 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
  • 5. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Dojo Structure ● Introduction 15' ● Coding 45' ● Interim (Retrospective) 15' ● Break 10' ● Coding 45' ● Retrospective 15'
  • 6. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Assignment
  • 7. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Bank OCR ● You work for a bank, which has a machine to assist in reading letters. The machine scans the paper documents, and produces a file with a number of entries which each look like this: ····_··_·····_··_··_··_··_· ··|·_|·_||_||_·|_···||_||_| ··||_··_|··|·_||_|··||_|·_| ··························· ● Each entry is 4 lines long, each line has 27 characters. The first 3 lines contain an account number written using pipes and underscores, and the fourth line is blank. Each account number should have 9 digits, all of which should be in the range 1-9.
  • 8. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Bank OCR ● Write a program that can take this file and parse it into actual account numbers. ● Find a pair. ● Choose a programming language. ● Set up the environment. ● Start with creating a test.
  • 9. Don't Focus on Getting it Done. F0cus on Doing It Perfectly.
  • 11. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Bank OCR considerations ● Which algorithm did you chose? ● How readable are your test cases? (Can you look at them and easily see which digits are being parsed?) ● How do you match digits? (Are you using low level Ifs or high level patterns to match?) ● Functional or imperative? (Do you use iteration or recursion?) ● What if the input changes? (What about the style of digits, number of digits, ...)
  • 13. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Closing Circle ● What did you learn today? ● What surprised you today? ● What will you do differently in the future?
  • 14. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY Peter Kofler @codecopkofler www.code-cop.org
  • 15. PETER KOFLER, CODE-COP.ORG FANATIC ABOUT CODE QUALITY CC Images ● Bank https://www.flickr.com/photos/bigmacsc99/4325336251 ● Dojo http://www.flickr.com/photos/49715404@N00/3267627038/ ● Todos http://www.flickr.com/photos/kylesteeddesign/3724074594/ ● Wants you http://www.flickr.com/photos/shutter/105497713/