Programming assignments may be given to students so that they can better understand the concepts of object oriented programming such as objects, classes, class-relationships, association, aggregation, inheritance, polymorphism etc.