Interessante Aufgabe. Ich würde die Lösung mit Bitoperatoren für UND//OR angehen. Hierfür muss für jeden Kurstype ein numerischer Basiswert aus dem Dualsystem überlegt werden und zwar so daß die Verknüpfung einen eindeutigen Wert ergibt aus dem die darin enthaltenen Kurstypen erkenntlich sind.
MFG