a mechanism for grouping and organizing data to make it easier to use
the collection of programming constructs used to implement a collection. for example, a collection might be implemented using a fixed-size structure such as an array
a way of representing and storing information. choice of data structure affects which operation can be efficiently performed