CS101 gave you a foundation for building small programs based on API-level specifications. The focus was on writing clear, well-reasoned methods and carefully defining objects that correspond to entities of a program. You learned techniques to traverse simple data structures using recursion and iteration. Concepts of inheritance and polymorphism were introduced. A goal of CS102 is to give you a view of the world outside the programs you write. Your programs must interact with:
CS 102 builds on CS101's introduction to software systems as collections of communicating components. CS102 emphasizes more sophisticated uses of object-oriented concepts (inheritance, polymorphism, method overloading, and multiple inheritance of interfaces) and techniques for managing communication among software components. An introduction to packages, file I/O, parsing, graphical user interfaces, exception handling, threads, concurrency, synchronization, and network programming is provided. Algorithms and data structures are presented as needed to support discussion of these topics. Concepts and skills are mastered through software projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is the vehicle of exploration. Prerequisite: CS 101G or equivalent. Credit 4 units.