This course provided an introduction to concepts of programming from an object-oriented perspective. We covered basic software engineering principles and programming skills using Java. The topics included discussions on simple data types, control structures, array and string data structures, basic algorithms, and testing and debugging. These were structured around object-oriented programming paradigm (e.g. focusing on data with methods operating upon the object’s data, implementing interactions between objects, and emphasizing reusability through careful class design).