Sample programs to understanding Object Oriented Design Principles and Patterns