I am going to teach Computer Science to a group of young students, 20-30 motivated people aged 10-25 on a volunteer basis in my village without the experience of being a teacher. The task that I set for myself is to reveal to young people all the possible areas of computer science in 10-15 lessons and then divide them into smaller groups according to their interests, after which only occasionally monitor their progress. This set of lessons is going to be much broader than CS50, with much more demonstrating of electronic stuff, but with almost no homework. Because I suppose that no programming language should be mandatory to everyone but you know, everyone should know what is a bit, what is a code, and how long is a way of light travelling for one millisecond.
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 (?)
2) What is these peoples' experience level with programming and computers? You're listing a lot of good things, but you might end up going into too dense of detail for some beginners and scare them away with too theoretical of a discussion too quickly before they get their feet wet with some basic problem solving.