This course introduces the fundamental concepts of programming from an object-oriented perspective. Topics are drawn from classes and objects, abstraction, encapsulation, data types, calling methods and passing parameters decisions, loops, arrays and collections, documentation, testing and debugging, exceptions, design issues, inheritance and polymorphic variables and methods. The course emphasizes modern software engineering and design. Students are expected to be sufficiently proficient in mathematics such that they are ready to take Calculus I (MATH 01130).