I've told my students that if you can't run the program in your head, then you simply don't understand what's going on. You haven't learned anything.
Absolutely. A coworker has a similar version of that line, which I've committed to memory:
"If you don't understand precisely what you need to do, what makes you think you can tell a computer how to do it?"
I also briefly taught programming, and that's a line I've used more often than I'd like. Another thing I've noticed is that IDEs tend to encourage beginners to perform much random fiddling of code that doesn't work, often creating a mess in the process.