tterns help narrow the gap between the abstract views of the data structures and their concrete implementations. The smaller the gap, the higher the level action. The more abstract, the less complex the coding structure. As a result, algorithms are easier to understand and more manageable. This paper advocates teaching the above design patterns in data structures courses.