Upon completion of the course, the student should be able to: (i) Demonstrate mastery of basic programming concepts, like program structure and control, Application Program Interface (API), memory management among others; (ii) Demonstrate sufficient understanding of Java as a programming language; (iii) Develop simple web and stand alone applications in Java; (iv) Work with an Integrate Development Kit like NETBEAN Switch minimal difficulties; and (v) Differentiate the various programming languages (i.e., in terms of their strength and weakness).