There is a way to do this although it depends on where you want to do it at. For example do you want MySQL to do the delimiting or do you want to push this to the server side scripting to delimit/diversify your data?
Personally I see as a possibility, querying the database one or two times with different queries to diversify your data. Such as "SELECT * FROM classes WHERE couse like e" and then potentially take the first result such as "ECON..." and on next query do perhaps "SELECT * FROM classes WHERE !(course like "ECON")"
If you want server side scripting diversification it will require querying a much larger set of data instead of the 10. Lets say 50. From this you could return 0,1,2,3,4,20,30,40,49,50 of the result set. This might not be most intelligent way and it also requires you to pull a larger data set from database.
Original SELECT:
SELECT Class_ID, Department_Code, Course_Code, Class_Code, FROM Classes WHERE REPLACE(REPLACE(REPLACE(CONCAT(Department_Code, Course_Code, Class_Code), '-', ''), '(', ''), ')', '') LIKE '%". $q ."%' LIMIT 10
Diversify Query: (I will use to replace the above original to keep it shorter)
<originalQuery> UNION SELECT * FROM Classes WHERE SUBSTRING(<originalQuery>,1,1) LIKE '%".$q."%'
This might not be exactly it, but basic idea is you want your original result set (left side of the union) along with the second query where I take the result and call a substring on it so in your example probably "E" is like the user query. Hopefully this would give make a mixed set, I feel its not quite right but it should give you an idea of what you can do.