Reruns/ui

There seems to be a lot of duplicate validation logic both within this file and with the logic in index.js. I'd like to see this refactored so that the definition of a legal course configuration is only in one place.