This course is designed for students who are already familiar with object-oriented programming concepts gained either from experience with an object-oriented language or from introductory coursework in Java. The course expands students' knowledge of object-oriented programming practices and includes such topics as java input/ouput, multithreading, graphical user interface design, and networking with Java.