A program is the definition of a job action. You can define a program and have that same program called from multiple jobs.
A schedule is the definition of a specific schedule. A single schedule can be used by multiple jobs.
A job can use predefined programs and schedules, or define them in line are part of the job definition. You can see the basics of the scheduler here:http://www.oracle-base.com/articles/10g ... er-10g.php