I've been TAing CECS 121, which is now our "C for Non-Majors" class, mostly for experience. The class is being handled at what I know many programmer's would consider a snail's pace, but it's an attempt to keep it at least somewhat informative and useful to a group that now includes Psychology students among others. We've spent the last few weeks on loops. A few days of "while" loops, an introduction to "for" loops as cleaner "while" loops and today a project requiring nested for loops.
It's interesting how complicated loops seem to some of the people that I'm helping. There are the few that expect "spreadsheet" and still haven't quite grasped procedural code. Not that functional programming is an answer here, if for no other reason than recursion would seem even more complex to these same people...
I had that Portal line in mind every time I admitted to a person that "Now you are thinking in loops!"