The course lays the conceptual foundation of object-oriented programming. Topics include data types, control structures, API usage, encapsulation, and other abstractions. The course also covers the software development process using a modern object-oriented language (Java) with emphasis on software engineering principles and style. Three lecture hours and one Lab per week. -1