Upon successful completion the students should be able to: (i) Demonstrate mastery of core programming concepts, like program structure and control, Application Program Interface(API), memory management among others; (ii) Demonstrate sufficient understanding of object oriented programming; (iii) Develop complex web and stand alone applications; (iv) Work with an Integrate Development Kit like NETBEANS with minimal difficulties; and (v) Differentiate the various programming languages (i.e., in terms of their strength and weakness)