Priority Queue practice vs examples
Let them be creative and try to think of a use for a priority queue, and let them implement that usage on their own.


If you want something to stick, heed your own advice in bold: "Let them be creative ... on their own."

When students can use their own creative powers to synthesize everything they've been taught, then they've truly learned it. "Show and discuss" is not necessarily a bad approach, but it won't have nearly the same long-lasting effect as putting the onus on students. If you're the one working, you're the one learning, so if you're the own showing, you're really the one doing most of the work.

Plus, why not do both? Start with option #2 then analyze their own work with option #1. As with most things, it's not either/or. Imagine if the efficiency conversation were about their own implementations, not some you had shown them. That would be a powerful set of lessons.

One heuristic I apply to my own lesson planning is this: is this lesson giving students the option to take ownership of the material? When you challenge them to create, you are giving them that opportunity to -- and challenging them to -- take ownership of their learning.