I did it last year and the year before, so it must have been 2. I'll probably start on the 8th so that the class goes across 2 weekends and only one set of weekdays.
Tentative schedule:
- Day 1: basics
- Day 2: functions
- Day 3: operators, logic gates
- Day 4: return values*
- Day 5: loops and arrays
- Day 6: objects
- Day 7: useful functions and other useful things (finding clients, messing with strings, etc.)
- Day 8: object-oriented functions
- Day 9: datablocks and packages
- Day 10: positions, vectors, rotations, transforms, and raycast/search
- Day 11: brick events, save/load, and weapons
- Afterward?: depends on what students want; list of suggestions so far:
- setting up RTB prefs for your add-on
- minigame basics
- GUI basics
- bot basics
- object-oriented data management: scriptobject and scriptgroup
- game/website communications
* I'm having trouble coming up with homework that highlights the use of return values. On the one hand, they're not very useful until your projects get large and confusing. On the other hand, they're used so much by the other vanilla functions we're going to be using that I need to introduce them early. If anyone has any suggestions for a one-evening project for students to do with return values - one that won't make them go "why don't I just do it in the original function?" - I'd love to hear them.
If anyone has input on the outline as a whole I am open to it. Note that only the big, hard subjects that come in a single chunk have been mentioned, so for example debugging tips are sprinkled throughout.
Homework-wise, it mostly follows the format of "make anything you want as long as it uses what we learned today". People go into scripting to make very different things and since there's no reason for me to give people a grade, I'm not inclined to have any kind of "class project" or "final".