A simplistic one page approach:
The instructions will be slightly different terminology for Drupal 8 and Drupal 7. Below is one way to get it done in Drupal 8
Create a new view of content, set to the "type" that you mentioned above. Select page, and set the page display setting to your desired format, of: fields. Add the content body to "fields" , as you mentioned you wanted to display the body. Also add "Bachelor Degree" Content field to grab the Bachelor degree vocabulary. Click exclude from display, as this field is only there to grab the fields for grouping. You can also deselect link label to the referenced entity if you like.
Under the Advanced tab - add relationships, add Taxonomy term referenced from field_bachelor_degree so that you can add that relationship to what will be your term parent field.
You can now go back to fields and add the parent term taxonomy field, and use the relationship you just created. Click exclude from display, as this field is only there to grab the fields for grouping. You can also deselect link label to the referenced entity if you like.
Then under format settings use grouping fields to display the content under the term headers in your (content) view. In your case, grouping field nr. 1 should be the taxonomy term name related to parent term, and grouping field nr. 2 should be the first content taxonomy term. See second photo. Note: The second grouping field will only become available after saving the first one. You can then use Sort criteria how you want it (probably ascending).
Also, if your content type contains content not related to this view, you can add/change your filter criteria to only show the "Bachelor degree" vocabulary.
This method should do the trick for Drupal 8. I have provided a screen shot of the Drupal 8 view, the grouping fields, and the result of this below.
If you were asking for a complex paging solution, I have that too, but I removed it from this answer to make this answer more concise.
