the default value of your select list is passing the value -1:
<option value="-1" selected>Select your course(s)...</option>
this is not going to fail required validation.
your default value, should have a blank value:
<option value="" selected>Select your course(s)...</option>
by using -1, a selection is actually being made and passing validation. Use an empty value to fail validation if the default is selected.