This course presents the concepts of object orientation and object-oriented programming techniques using Java programming language. It provides students with a thorough look at the basic constructs of the Java programming language such as its basic data types and operations. It also emphasizes on the use of standard Java APIs that allow students to develop text-based as well as GUI applications. It also covers: abstractions, class relationships, inheritance, polymorphism and exception handling.