Outjobs are a specific file type that define different sorts of outputs that can be generated from a project. Gerbers, schematic prints, STEP files, BOM, basically any sort of output that Altium can generate can be defined in an outjob and assigned to a specific container (PDF file or file folder). From the outjob, you can generate all of the required outputs for a given container in one step.
For the design rules, it's probably easiest to give your students a PCB template file that already has the proper design rules defined so that the students can design the board with them in place. You can then re-import your design rules before doing final DRC and fab outputs to ensure they haven't changed the design rules to allow something naughty.
Scripting all of that may be possible, but

. From the little bit of time I've spent on scripting, the documentation is pretty lackluster and is inconsistent between scripting languages (actually, I think the *API* is inconsistent between scripting languages) and there are a number of frustrating limitations.