Presents programming, documentation, and software-design methodologies using Java. Includes a brief review of control structures, methods and arrays as students rapidly progress to object-oriented programs of moderate complexity. Advanced topics include: inheritance, polymorphism, exceptions, graphics, graphical-user interfaces, files, streams, threads, and dynamic data structures. Prepares students for CS 21 and CS 24. May be offered in a distance-learning format. C-ID: CS 19 + CS 20J = C-ID COMP 122.