You're creating a lot of variables here, and the naming is inconsistent across your setup methods.  Would it be possible to use a list or dict here instead to make the structure less ad hoc?

Something like:

    self.homework_dict['h1p1'] = ...