So, I wish I had the time to sketch this out but I'll see if I can describe it. First off, you're going to need more than just a table.
The student information is the parent of all the other. Have that be the head section of your page, it should stay constant and as the main "breadcrumb" of the data. Then, use the semesters (if you're tracking years, use those first) as containers for the classes.
For the semesters, you could use tabs. Under the student information you could tab across each semester to see the class listing. This could be a table list view or an accordion. There are lots of options here.
From the list view, I would have a detail view that you could bring in with a number of different interactions for the assignments (modals, accordions, etc). Depending on if the assignments are actionable or not; are they an archive of completed assignments or a way to get to current assignment information? That would change how you show them I think.
I know that's hard to process in words, so I'd take a look at other UI that's have similar issues. Ones that come to mind are project tracking or high-end todo list apps. I'd look at those and see what patterns they use to help guide you. @Michael Lai also had great advice about grabbing paper and pencil and quickly starting to explore ideas. Just breaking out of the constraint of the original idea for a bit to sketch can often produce great answers.