These notes will try to discuss the basics of Object Oriented Design and its use in the development of a very general graph class for use in some interesting algorithm prototyping domains.