That said, this course suffers from so many CS courses.
1. It's too wordy!
2. As usual, I don't like the layout.
3. Funnel your subjects. (I'll give that a B.)
4. Funnel your paragraphs, or eliminate most of them?
5. Most people(students) find this material extremely dry. Introductory books should be "tight"! They should go through numerous edits? Take out every non-essential word?
6. I haven't yet read an introductory CS text that gets it right?
7. As to exercises? Try to use excercises that the student might have some immediate interest in, or can use in their daily life? For example, instead of some cute game example, show the student how a simple reminder application is programmed? How Google works?(just the basics). Or, how their spellcheck program works?
8. If I was going to write a introductory computer course, after explaining the hardware(that's usually sitting in front of them), I would explain an how operating systems stores their information--"The use, and location of Folders."
I would want my students competent in the Command Line before we did any Programming. I would want them to know they can have two folders named the same, but located in different sections of the hard-drive. I would want them competent in finding them, and manipulating them.