One they've got that down, I suggest avoiding the class of problems such as making employee payrolls or car manufacturer inventory lists. These are the type of "fake" problem sets my chosen C tutorials had me do after getting down the fundamentals. I'd say it left me in a bad place regarding what to expect from real code. Instead, I recommend you find a real problem for them to tackle. Ideas could be:
- programming a Raspberry Pi to light up only between certain hours of the day to use as a nightlight, and then actually use it
- write a program that takes daily scale measurements as input and tracks weight gain/loss over a sliding scale, and then actually use it
- gather a list of weekly chores and family members and generate "task lists" for each week so the chores are most equally distributed, and then actually use it
You'll notice the pattern is, after coding each example, the result is used in real life to solve a problem. This will teach them the real purpose of code is to solve some problem, not just to write C for the sake of it.