It might be a good idea to create a class or struct of type schoolCourse or something like that which has one or more of some type of variable to keep track of what category it is in (e.g. language, biology, science) and break it up as much or as little as you need to with those classifications/keywords, which can be integers, enumerated types, etc. or strings (which would be playing it a little bit looser since they don't compare as nicely). It should also have a string to hold the class name and any other information you need to know about the class.
Fill an array of type schoolCourse with the information for each of your available classes.
Then, when the user inputs the search key, just go through the array of schoolCourses and compare the search key with the keyword/classification.