The aim of this unit is to provide the learner with the programming skills and logic needed to develop a game or multimedia project with more advanced code, gameplay, mechanics and AI. This unit will help the learner learn abstract OOP concepts through a more visual and pragmatic approach. It Is envisaged that during lectures OOP concepts like abstraction, encapsulation, inheritance, polymorphism, are presented using practical and visual game examples. Learners will be required to practice hands-on the different OOP concepts learnt in class, by developing their own game projects.