- collection of instances: grab bag of instances - iterate: operate on/visit each instance in a collection - iterator - separate class that keeps track of the iteration - use it to access each object in the collection without having to know about the collection's implementation details - ItemIterator classes - for collections required by assignments - retrieve items from a collection - Iterator retrieves items of type - instance methods - return true if there are more items to visit in the collection - hasMoreItems() - hasNext() - return a previously unvisited item from the collection - nextItem() - getNext() - can't create your own instances - get an iterator as part of some pre-defined class - once hasNext() or hasMoreItems() is false, can't use nextItem() or getNext() anymore without causing an exception - algorithm: set of steps that can be completed to solve a problem - pseudo-code: English that looks similar to code, but doesn't really follow the syntax of any real programming language