Engaging students in active exploration of programming worked examples