for(Case c: [select id from case where ContactId = :UserInfo.getUserId]){
     System.debug(c.user.Name);
}


Am not able to get logged user by case 


Question: How should I design a table with nested categories for users?
Answer: From your description, I've taken the liberty to make a mockup to give you something to work on. It is a simple suggestion on how you can organize elements in groups and subgroups regarding a students life (at the university).

On the Semesters tab I suggest an accordion control to interact with the different courses in terms of assignments, reports, project and of course a link to course info.







download bmml source &ndash; Wireframes created with Balsamiq Mockups

Feel free to make comments and suggestions and I'll do my best to get your project moving forward.