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.
Part of my anger is I don't have a good grasp of CS theory, or why we do someting a particular way? I can get things done, but I'm missing the bigger picture--in many instances?
My education into CS has just been following many steps, and listening to videos. I will go back to this free book, and give it a full read. Sorry to the Authors. I was in a bad mood?
Don't feel back about feedback :) Suggestions for improvement are always helpful, especially if you also include the stuff you do like.
Yes! I agree wholeheartedly. I took an intro to CS course at UBC which is similar to this (I talked about it in a comment thread above) and this was a big thing I loved about having new exercises created specifically for that course. I got to create space invaders (I found that super fun), newer years create a snake game. In addition, I created a simple graph crawler which used Google a lot as a way to tie in what we were creating with what Google does. Now, they create part of a client-server application which resembles Twitter or an IM program. We also created a minmax algorithm for pawns which was really cool since it showed how an NPC could ostensibly be made in a game, although that has been dropped since. It's all really cool examples that simplify something that exists in real life, and really helps engage students a lot more.