What should I watch out for in these classes that are aimed at everyone? What, on the contrary, is not worth mentioning despite the temptation? How early should I show things like: systems programming, functional programming, declarative programming? How much to give discrete mathematics? At what stage should I give Lisp, C, JavaScript or Python, Wolfram Alpha? What names do I need to mention besides Claude Shannon, Alan Turing, Linus Torvalds and von Neumann? And last but not least, what should I do about the fact that I have never used smartphones (iPhone/Android) and I have no interest in them, when the vast majority of my students will only have such a "computer"?
Here are few books I am going to start from, but I have a strong feeling that a lot of CS topics are missing in the list:
Charles Petzold - Code (mandatory)
Paul Graham - Hackers and Painters (mandatory for younger students)
Alan Cooper - The Inmates Are Running the Asylum (mandatory)
Steven Strogatz - The Joy Of X (mandatory for younger students)
Fred Brooks - The Mythical Man-Month
Linus Torvalds - Just For Fun
https://missing.csail.mit.edu/ (mandatory for advanced students)
Don Knuth - TAoCP volume 1
SICP/The Land Of Lisp (?)