Appointments can be made at other times as well. In order to cope with the complexity of writing large programs, it is desirable to express them as combinations of components whose behavior can be understood independently from their implementation. In CS111, you learned how methods provide an abstraction barrier between the caller and implementer of a method. We will study how to compose programs out of such components. Programs are often judged by how effectively they make use of resources such as space and time.
Algorithmic complexity is a tool for analyzing the efficiency of algorithms.
We will use this tool to evaluate various approaches to implementing data structures. These ideas will be explored in the context of a variety of fundamental structures used in Computer Science, including lists, stacks, queues, priority queues, trees, graphs, and tables. We will use Java as the language for describing implementations of these structures. Prerequisites The prerequisite for CS230 is CS111, Computer Programming and Problem Solving. There are two 70-minute lectures each week that will introduce the main content of the course.