Use memoized assignmnets in CourseData.

Addes assignments to `CourseData`.

See #521.
Merge pull request #524 from bellotastudios/memoize-assignments

Use memoized assignmnets in CourseData.