This course teaches the fundamental concepts underlying the object-oriented approach to programming through the widely-used Java programming language. Concentrating on aspects of Java that best demonstrate object-oriented principles and good practice, students gain a solid basis for further study of the Java language, and of object-oriented software development. -- Course Website