covers(course_topics, syllabus) returning a tuple (ok, missing) where ok is True when the course covers every syllabus topic, and missing is a sorted list of the syllabus topics the course lacks (empty when ok is True).covers(['loops', 'oop', 'sets'], ['loops', 'regex'])
(False, ['regex'])
regex is required but not covered.
Set difference syllabus - course gives the gaps.
ok is just "no gaps".