This course continues implementation of java programming begun in the course, Programming with Java COP 2800 . After reviewing topics of classes, objects, types, control flows, testing, debugging documenting and using java libraries, the following topics will be included: interfaces, polymorphism, event handling, inheritance, GUIs, array lists, exception handling, streams, system design, recursion, sorting and searching, and data structures. Students will be involved in hands-on experiences within class meetings and in between class meetings. Students will create programs meeting given specifications.