This presentation was first delivered at Anjuman College for Polytechnic Final Year students on premises of Anjuman Engineering College, Sadar, Nagpur. The audience was students who have learned only Java in their curriculum. UPDATE (19 July 2014) Added some more information, added SOLID principles reference