For complete understanding, the idea should be shown in a variety of contexts and applications, and should be connected to as many previously learned concepts as possible. One way to provide repetition is through examples. The first examples should be easy, to make sure students grasp the idea completely and to provide confidence. More advanced examples can show the use of the idea in different contexts. When possible, examples should be spread out over multiple class periods so students have time to digest the material and generate questions.
Many new ideas are, initially, simple and straightforward.
When this is the case, introduce the idea so that students can see it is simple. Then add complexity incrementally, occasionally reminding students that the original idea was simple. Hashing is fundamentally simple, but it has expanded to the point that it is now reserved until the junior or senior level. A teacher could easily make hashing seem impossible because of its complexity and multiple variations. But the teacher could also introduce hashing by showing that it is extremely simple, and then add complexity incrementally over several class periods.