Beginners in CS will generally benefit from changing and expanding their thinking skills. Some of our thought processes may not be intuitive to a beginner and exercises can help them expand their thinking tool box.
Lectures that make these new ways of thinking explicit can help, of course, but exercises can deepen and reinforce the knowledge. Especially helpful are exercises that lead a student to an a-ha moment in which that was unclear has become clear.
In the context of extending their thinking and problem solving skills, what particular puzzle problems and exercises would you suggest to use at the high schoolnovice level for teaching computer science?
In discussions in the CSEducators Classroom it was originally noted that "puzzle problems" may be especially helpful in this regard - especially those problems for which a person's ordinary intuition might not be helpful, but which lead the student to a deeper understanding of the essence of CS thinking.