Computer programming concepts and problem solving are explored using an object-oriented programming language. Topics include use of predefined classes, creation of objects and classes, encapsulation using visibility modifiers, inheritance, class hierarchies, polymorphism, interfaces, exceptions, and steam I/O. Graphics and graphical user interfaces (GUIs) are explored. Depending on the selected language, some language-specific features are introduced. Includes two hours of lecture and one hour of lab per week.