'Aggregates data from the program data structure.'

def _extend_program(self):

    cache_key = 'program.instructors.{uuid}'.format(uuid=self.data['uuid'])
    program_instructors = cache.get(cache_key)
    for course in self.data['courses']:
        self._execute('_collect_course', course)
        if (not program_instructors):
            for course_run in course['course_runs']:
                self._execute('_collect_instructors', course_run)
    if (not program_instructors):
        program_instructors = self.instructors.values()
        cache.set(cache_key, program_instructors, 3600)
    self.data['instructors'] = program_instructors
