I've taught a course like that. I think your topic ideas sound good.
For the programming component, maybe look at Scratch, or perhaps do some scripting with Microsoft Office. Mobile (iOS, Android) development might be even more interesting to the students, though covering enough material in such a course to really have them do that on their own is likely implausible. You could perhaps have a mobile project already made, and, during class, show them roughly how it works, and solicit ideas on things to change -- then rebuild and run it again.
I'd almost certainly cover privacy-related topics, both technological and philosophical. You may not convince anyone to care about privacy, but at least help inform them.
It could be interesting to bring in some old computer systems, either for real or emulated, and demonstrate how things in decades gone by worked.