I've written a few tutorials in the past, some quite long. A complete book has been something I've wanted to do for awhile. And while I'm stuck in therapy, there's not a whole lot to do when I'm not exercising except to read (currently reading angels & demons).
I want to write a complete textbook in a way that's geared towards what schools would want to use. (so quizzes, homework, challenges at each chapter) I've begun my initial outline, including a comprehensive history of DB. Right now, I'm looking for feedback on the order of topics.
1. Data output (printing to screen)
2. Loop control
3. Data Types and working with variables
4. Data Input (keyboard and mouse input)
5. Arrays
6. Working with Images
7. User-Defined Types
8. Sprites
9. Files
10. Gosubs, Functions, & Including external sources (#include)
11. Sound
12. DATA statements
13. Intro to 3D; primitives, billboarding techniques, camera control, handling model animation
Chapter 13 will be broken down further. Students will construct various games while reading, including Pong and some kind of 3D game.
I have specific reasons for learning the commands in this order, but if you think you have a better strategy then please share it. My reason for learning images early on and before UDTs is because I feel they will have learned enough at that point to make simple functional programs and now they'll have the chances to add some graphics; to keep interest and push them to progress further.
I've read many instructional books that often gives examples of various concepts that hold no real world use most of the time. By carefully designing the right examples, my hope is that students will grasp real reasons for choosing the various commands where appropriate.
Beginner programmers tend to not make those simple connections that many of us would find obvious. As a very basic example, hello world demo. Maybe all they manage to see is "oh why would I want to print that on the screen?". A more functional example I think would be to instead display frame rates, something they would immediately see a use in.
What do you guys think? I do have a goal to try and see this published within a year's time.
"You're not going crazy. You're going sane in a crazy world!" ~Tick