Some notes are available online. As you saw from some of the algorithms we visited last week, the way that you organize your information can have a significant effect on the running time of your algorithms. Hence, we often define data structures that help us organize information. As you might guess, there is a close relationship between data structures and algorithms. Typically, we use data structures to create efficient implementations of the operations needed by algorithms.
Some data structures suggest new algorithms.
As in many other cases, we separate the implementation implementation and specification when talking about ways to organize information. We will almost always use interfaces for ADTs. Data Structure is the term typically used for the implementation. We will almost always use classes for data structures. But people are casual with terminology.