tags:

views:

343

answers:

6

I've been searching the web for some time now. I am looking for small sample exercises for OOD practice (& for some internal TDD workshops).
If there is one single place, where this need is being served, please point me to it.. and close this question

Constraints:

  1. Language-agnostic real world problem
  2. Small : Something that takes an hour to two at max to solve (or has sub-parts that can fit this constraint).
  3. Not Algorithm centred : Not be focussed on just solving a computational task. (There are multiple sites that serve this category.) Involve > 2 interacting entities.
  4. Solved by multiple people, preferably yourself : Goodness verified. Links preferred. Please do not post something that may be a good exercise... subjective

Similar SO question 60109, but the answers dont meet my need here. I found that I've lost my touch (was thrashing ideas) with OOD after prolonged exposure to a day-job. Need to get it back..

Update: Are we collectively out of short OOP exercises ? I was hoping that I'd have a bunch to pick from. However my web-searches (this is a diff exercise in formulating the right search string) and the lack of responses here seem to indicate otherwise. Maybe I posted to SO at a bad time.. in which case bumping this thread for more responses.

+1  A: 

http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata

Gishu
+1 A picture tells more than a thousand words...
Lieven
A: 

Dave Thomas' CodeKata

Kindness,

Dan

Daniel Elliott
Gishu
Doing the BinaryChop exercise is a favourite of mine. The examining different approaches part is what keeps me coming back to it. I try to do it for a week or so every couple of months.Kindness,Dan
Daniel Elliott
A: 

Jeff Bay's Object Calisthenics. Following these will improve your OO skills.

kyoryu
These seem to be rules of thumb or guidelines for better OO design. I am looking for short problem statements or scenarios to try and model in an OO manner
Gishu
I see what you're saying, but they're generally presented as a set of rules to follow in the context of a ~1000 line program - developing in this manner, regardless of the problem being solved, will help your design skills. I think that for really learning, the specific problem is not as important as forcing yourself to learn new techniques in solving it.
kyoryu
A: 

Bill Wake's spreadsheet TDD challenge

Gishu
A: 

From the AGPPnP book by Robert Martin aka UncleBob
CoffeeMaker Mark IV - Page 2 has the problem statement

Gishu